Posizione nel menu*
Programma non a menu
Linkage section
Nome processo: INDIR
Tabella: DFINDIR - Indirizzi di spedizione
Logica generale
Sincronizzazione dell'anagrafica destinazioni diverse (indirizzi) tra AREA e il DB frontiera.
Per il momento funziona solo in IMPORT
Configurazioni possibili
Gruppo |
Parametro |
Note |
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
Elaborazione
Tipi di segnalazione:
Vedi Tipi di segnalazione
A - Controllo di esecuzione
B - Apertura
B.1 Apertura tabelle
Tentare l'apertura della tabella da sincronizzare: DFINDIR. 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 |
DFINDIR |
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 |
B.3 Aggiornamento stato
Aggiornamento dello stato sul record specifico; in particolare:
Dato |
Contenuto |
DBFST-STATO |
"I" |
DBFST-ATT-DATA |
Data sistema |
DBFST-ATT-ORA |
Ora sistema |
DBFST-SCHED-DATA |
Sommare il tempo di attesa a data/ora sistema |
DBFST-SCHED-ORA |
|
DBFST-ERRORI |
0 |
DBFST-MSG-ERRORE |
" " |
DBFST-LOG-PROCEDURA |
" " |
C - Sincronizzazione (Importazione)
C.1 Selezione record da importare
Tramite un comando SQL specifico, estrazione di tutti i record aggiornati dall'HOST:
SELECT * FROM dfindir WHERE df_ind_agg_host = 1
C.2 Controllo record
Per ciascun record letto, verificare la correttezza delle informazioni contenute:
Controllo DF_IND_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_ANA_HOST
Se il raccordo:
➢Esiste: il codice anagrafico collegato dovrebbe essere quello presente in DF_IND_AREA_TIP/COD: se non è cosi', segnalare Errore e skippare: "DF_IND_KEY_HOST collegato ad anagrafica diversa: ANA-CHIA"
➢Non esiste: Il cliente a cui è collegata non è stato ancora acquisito: Informazione e skippare: "DF_IND_KEY_HOST collegato ad anagrafica non ancora importata : DF_IND_ANA_HOST"
Controllo DF_IND_KEY_HOST
Questa informazione deve essere significativa altrimenti segnalare Errore .
Verificare se risulta già collegata ad una destinazione su COGDEST2: quando abbiamo in linea l'anagrafica a cui è collegata, eseguire una ricerca sequenziale su COGDEST2 a parità di anagrafica collegata (non esiste una chiave diretta su DST2-CODICE-HOST).
Se risulta raccordato, la chiave dovrebbe corrispondere all'indieme di DF_IND_AREA_COD+DF_IND_AREA_PROG (a meno che non siano vuoti, al che verranno collegati automaticamente).
Vedi anche Attività sistemistiche
Controllo DF_IND_AREA_COD
Controllo DF_IND_AREA_PROG
A seguito dell'introduzione del raccordo su COGDEST2, questo raccordo viene lasciato solo come campo informativo: verrà aggiornato in fase di importazione, ma non viene controllato.
Controllo DF_IND_NOME
Controllo DF_IND_IND
Questi due campi dovranno essere significativi, altrimenti segnalare Errore e skippare.
Controllo DF_IND_PROV
Se significativa, la provincia dovrà esistere nella apposita tabella, altriumenti segnalare Errore e skippare: "DF_IND_KEY_HOST con provincia non trovata: DF_IND_PROV"
Controllo DF_IND_COMUNE
Se significativo, cercare l'esistenza su COGTBCOM, usando TCI-CHIA5, impostando:
Nome campo |
Contenuto |
TCI_COD_FISCALE |
DF_IND_COMUNE |
Se non trovato segnalare Errore e skippare: "DF_IND_KEY_HOST con comune non trovato: DF_IND_COMUNE"
Controllo DF_IND_NAZIONE
Se significativo, cercare se raccordato ad una nazione presente sulla tabella in AREA; scorrere quindi la tabella nazione, e verificare se ne esiste una con EUTA-ST-CODICE-HOST = DF_IND_NAZIONE; se non esiste segnalare Errore e skippare: "DF_IND_KEY_HOST con nazione non raccordata: DF_IND_NAZIONE"
Controllo DF_IND_VAL
Questo campo potrà valere: " " o "C"; se è presente un valore diverso segnalare Errore e skippare: "DF_IND_KEY_HOST; DF-IND-VAL contiene un valore errato: DF_IND_VAL"
Controllo DF_IND_ZONA
Se significativo, cercare se raccordato ad una zona presente sulla tabella in AREA; scorrere quindi la tabella zone, e verificare se ne esiste una con EUTA-ZON-CODICE-HOST = DF_IND_ZONA; se non esiste segnalare Errore e skippare: "DF_IND_KEY_HOST con zona non raccordata: DF_IND_ZONA"
C.3 Importazione record
Se tutti i controlli sono superati, proseguire con l'inserimento/variazione della destinazione; quindi se DF_IND_AREA_PROG è:
➢Presente: Variazione
➢Non presente: Inserimento con attribuzione di un nuovo codice progressivo.
I record da aggiornare sono:
COGDESTI |
|
Nome campo |
Note |
DST-ANA-TIP |
DF_IND_AREA_TIP o ANA-TIPO, se siamo in inserimento |
DST-ANA-COD |
DF_IND_AREA_COD o ANA-COD, se siamo in inserimento |
DST-ID-TIP |
"D" |
DST-ID-IDX |
DF_IND_AREA_PROG, o un nuovo progressivo, se siamo in inserimento |
DST-RAG-SOC |
DF_IND_NOME |
DST-IND |
DF_IND_INDI |
DST-CAP |
DF_IND_CAP (se numerico) |
DST-LOCA |
DF_IND_LOCA |
DST-PROV |
DF_IND_PROV |
DST-FL-CANC |
DF_IND_VAL |
DST-EMAIL |
DF_IND_EMAIL |
DST-CAP-ALFA |
DF_IND_CAP |
COGDEST2 |
|
Nome campo |
Note |
DST2-ANA-TIP |
DST-CHIA1 |
DST2-ANA-COD |
|
DST2-ID-TIP |
|
DST2-ID-IDX |
|
DST2-RAG-SOC |
DF_IND_NOME2 |
DST2-NAZIONE |
DF_IND_NAZIONE |
DST2-TELEFONO |
DF_IND_TEL |
DST2-EMAIL |
DF_IND_EMAIL |
DST2-ZONA |
DF_IND_ZONA |
DST2-LATITUDINE |
DF_IND_LATITUDINE |
DST2-LONGITUDINE |
DF_IND_LONGITUDINE |
DST2-AGENTE |
DF_IND_AGENTE (Il codice fornitore corrispondente a questo, che è il suo codice HOST) |
C.4 Aggiornamento stato record
Aggiornare il record DFINDIR impostando:
Nome campo |
Contenuto |
DF_IND_AGG_HOST |
0 |
DF_IND_AGG_AREA |
0 |
In caso di inserimento dobbiamo anche raccordare la nuova destinazione a questo record, quindi aggiorneremo:
Nome campo |
Contenuto |
DF_IND_AREA_TIP |
DST-ANA-TIP |
DF_IND_AREA_COD |
DST-ANA-COD |
DF_IND_AREA_PROG |
DST-ID-IDX |
DF_IND_AGG_AREA |
1 |
D - Sincronizzazione (esportazione)
Fase non prevista in questo programma
E - Chiusura
E.1 Rilascio semaforo
Aggiornare il record semaforo relativo a DINDIR, impostando
Nome campo |
Note |
DF_SMF_USO_AREA |
0 |
E.2 Chiusura tabelle
Chiudere le tabella DFINDIR e DFSEMAFORO
E.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 |