DBF002 - Sincronizzazione destinazioni

Navigation:  »No topics above this level«

DBF002 - Sincronizzazione destinazioni

Return to chapter overview

Posizione nel menu*

Programma non a menu

 

Linkage section

 

UTILDBFPRG - Linkage comune

 

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

sincro-attiva

 

dbfront

email-segnalazioni

 

dbfront

db-tipo

 

dbfront

db-conn-string

 

dbfront

db-log-level

 

 

 

Elaborazione

 

Tipi di segnalazione:

Vedi Tipi di segnalazione

 

A - Controllo di esecuzione

Vedi 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