DFN027 - Importazione orari¶
Nome programma DFN027 Linkage section UTILAGPRG - Linkage comune Id processo: 51027 Nome processo: DFN027 Tabelle principali gestite
| AREA | Direzione | AREAGATE |
|---|---|---|
| COGORARI | ----> | DFORARI |
Logica generale Importazione degli orari di apertura dal db frontiera ad Area Esportazione Non prevista Importazione Importazione di tutti i record aggiornati dal gestionale host Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| dbfront | db-conn-string | |
| dbfront | db-log-level | |
| abilita | attiva-areaapp | |
| areaapp | cod-azienda | |
| areaapp | agg-postgres-online |
Elaborazione Operazioni:
| Operazione | Descrizione |
|---|---|
| " " | Importazione standard |
B - Apertura B.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: DFORARI. Se fallita inviare una Segnalazione grave e chiudere. Tentare l'apertura della tabella semaforo: DFSEMAFORO. Se fallita inviare una Segnalazione grave e chiudere. B.2 Blocco semaforo Lettura del record DFSEMAFORO:
| Nome campo | Note |
|---|---|
| DF_SMF_TABELLA | DFORARI |
Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF_SMF_USO_HOST = 1) Informazione sul log e chiudere. Dopodichè aggiornare il semaforo impostando:
| Nome campo | Note |
|---|---|
| DF_SMF_USO_AREA | 1 |
| DF_SMF_VERSIONE | Versione attuale: 1 |
C - Sincronizzazione (Importazione) (Operazione " ") Diamo per scontato che per questa tabella non sia stata prevista l'opzione "Massiva". Quindi diamo per scontato che i record cancellati lo siano logicamente. C.1 Selezione record da importare Tramite un comando SQL specifico, estrazione di tutti i record aggiornati dall'HOST: SELECT * FROM DFORARI WHERE DF_ORA_AGG_HOST = 1 C.2 Controllo record Per ciascun record letto, verificare la correttezza delle informazioni contenute Controllo DF_ORA_APPLICAZIONE Questo campo per ora dovrà contenere: * "C" (cliente) * "D" (destinazione) altrimenti segnalare Errore e skippare, indicando la chiave del record errato Controllo DF_ORA_ANA_HOST Questa informazione deve essere significativa altrimenti segnalare Errore . Cercare se corrisponde ad un cliente o fornitore, con una ricerca su COGANAPP.AAP2-CHIA2, impostando * AAP2-RACCORDO = DF_IND_ORA_HOST Se il raccordo non esiste, il cliente a cui è collegata non è stato ancora acquisito: Informazione e skippare: "DF_ORA_KEY collegato ad anagrafica non ancora importata : DF_ORA_ANA_HOST" Controllo DF_ORA_IND_HOST Campo obbligatorio, se DF-ORA-APPLICAZIONE = "D". Se indicato dovrà corrispondere ad un indirizzo di spedizione raccordato in AREA: scorrere COGDEST2 per le destinazioni collegate all'anagrafica raccordata a DF_ORA_ANA_HOST; dovrebbe esistere una destinazione con DST2-CODICE-HOST = DF_ORA_IND_HOST; altrimenti segnalare Errore e skippare "DF_ORA_KEY collegato ad indirizzo non ancora importato : DF_ORA_IND_HOST (anagrafica DF_ORA_ANA_HOST)" Controllo DF_ORA_FL_CANC Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "DF_ORA_KEY con DF_ORA_VAL errato: DF_ORA_VAL". Controllo DF_ORA_GIO Controllare che questo campo contenga un valore previsto tra: * LU * MA * ME * GI * VE * SA * DO altrimenti segnalare Errore e skippare, indicando la chiave del record errato Controllo DF_ORA_PROG Controlliamo che il progressivo sia compreso tra 1 e 3, altrimenti segnalare Errore e skippare, indicando la chiave del record errato C.3 Importazione record Se tutti i controlli sono superati, proseguire con l'inserimento/variazione/cancellazione del record Cercare l'esistenza di un record su COGORARI
| Nome campo | Contenuto |
|---|---|
| ORA-ANA | Il cliente corrispondente a DF_ORA_ANA_HOST |
| ORA-DST | La destinazione corrispondente a DF_ORA_IND_HOST, se presente |
| ORA-GIO | DF-ORA-GIO |
| ORA-PROG | DF-ORA-PROG |
C.3.1 Record cancellato Se DF-ORA-FL-CANC = "C": * Se il record su COGORARI non esiste, inserire una segnalazione informativa sul log e skippare * Se il record su COGORARI esiste, cancellarlo inserendo una segnalazione informativa sul log C.3.2 Inserimento/aggiornamento Se il record su COGRARI non esiste, verrà inserito. Poi aggiornare il record, solo se i dati risultano diversi:
| Nome campo | Contenuto |
|---|---|
| ORA-INI | DF-ORA-INI |
| ORA-FIN | DF-ORA-FIN |
C.4 Aggiornamento stato record Aggiornare il record DFORARI impostando:
| Nome campo | Contenuto |
|---|---|
| DF_ORA_AGG_HOST | 0 |
| DF_ORA_AGG_AREA | 0 |
F - Chiusura F.1 Rilascio semaforo Aggiornare il record semaforo relativo a DFORARI, impostando
| Nome campo | Note |
|---|---|
| DF_SMF_USO_AREA | 0 |
F.2 Chiusura tabelle Chiudere le tabella DFORARI e DFSEMAFORO F.3 Aggiornamento stato Aggiornamento dello stato sul record specifico; in particolare:
| Dato | Contenuto |
|---|---|
| DBFST-STATO | "A" |
| DBFST-ERRORI | Numero di errori rilevati |
| DBFST-MSG-ERRORE | Ultimo errore rilevato |
| DBFST-LOG-PROCEDURA | Codice procedura di gestione log |
Estratto da documentazione interna ClickUp