Vai al contenuto

DBF016 - Sincronizzazione set tipico

Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune Nome processo: CONTATTI Tabella: DFSETTIPICO - Set tipico prodotti acquistati dal cliente Logica generale Sincronizzazione del set tipico 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 Operazioni:

Operazione Descrizione
" " Elaborazione standard:


"SETTIMANALE" Controllo approfondito dati importati
Dopo il punto 1 dell'elaborazione standard, invece di scorrere solo i record dei clienti aggiornati, scorre tutto il contenuto del set tipico su AREA, e per ciascun record non più presente su DBF lo marca su AREA come cancellato

Vedi Tipi di segnalazi 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: DFSETTIPICO. 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 DFSETTIPICO

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) Per questa elaborazione non si ha la certezza di come il gestionale host è in grado di effettuare gli aggiornamenti: * Aggiornando i soli record realmente aggiornati * Esportando in massa i record per i clienti dove c'e' stata una modifica * Esportando in massa tutti i record Per questo motivo, dopo la prima elaborazione, che rispecchia il metodo usato negli altri programmi di importazione, sarà effettuata una seconda elaborazione che tenta di sistemare i problemi dovuti all'importazione per singolo record. Il motivo per cui non si effettua un aggiornamento di massa, che sarrebbe sicuramente più semplice, è per ottimizzare gli aggiornamenti, dato che la tabella su cui si va a scrivere (COGSETTP) dovrà essere esportata sul DB APP. C.1 Selezione record da importare Tramite un comando SQL specifico, estrazione di tutti i record aggiornati dall'HOST: SELECT * FROM DFSETTIPICO WHERE DF_STT_AGG_HOST = 1 C.2 Controllo record Per ciascun record letto, verificare la correttezza delle informazioni contenute Controllo DF_STT_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 non esiste, il cliente a cui è collegata non è stato ancora acquisito: Informazione e skippare: "DF_STT_KEY collegato ad anagrafica non ancora importata : DF_STT_ANA_HOST" Controllo DF_STT_IND_HOST Campo non obbligatorio. Se indicato dovrà corrispondere ad un indirizzo di spedizione raccordato in AREA: scorrere COGDEST2 per le destinazioni collegate all'anagrafica raccordata a DF_STT_ANA_HOST; dovrebbe esistere una destinazione con DST2-CODICE-HOST = DF_STT_IND_HOST; altrimenti segnalare Errore e skippare "DF_STT_KEY collegato ad indirizzo non ancora importato : DF_STT_IND_HOST (anagrafica DF_STT_ANA_HOST)" Controllo DF_STT_MPR_HOST Se significativa, questa informazione contiene il codice merce avanzato di una merce. Quindi, cercare su COGRACMC; se non esiste segnalare Errore "DF_STT_KEY; trovata condizione su merce non esistente: DF_STT_MPR_HOST" Controllo DF_STT_VAL Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "DF_STT_KEY con DF_STT_VAL errato: DF_STT_VAL". C.3 Importazione record Se tutti i controlli sono superati, proseguire con l'inserimento/variazione del record di set tipico, a seconda dei controlli precedenti. C.3.1 Inserimento/aggiornamento Cercare l'esistenza di un record su COGSETTP

Nome campo Contenuto
STT-ANA Il cliente corrispondente a DF_STT_ANA_HOST
STT-DST-ID La destinazione corrispondente a DF_STT_ANA_HOST, se presente
STT-MERCE La merce corrispondente a DF_STT_MPR_HOST

In questo caso se il record non esiste, verrà inserito. Poi aggiornare il record, solo se i dati risultano diversi:

Nome campo Contenuto
STT-QTA-TOTALE DF_STT_QTA_TOTALE
STT-IMP-TOTALE DF_STT_IMP_TOTALE
STT-IMP-ULTIMO DF_STT_IMP_ULTIMO
STT-DATA-ULTIMO DF_STT_DATA_ULTIMO
STT-FL-CANC DF_STT_FL_CANC

C.4 Aggiornamento stato record Aggiornare il record DFSETTIPICO impostando:

Nome campo Contenuto
DF_STT_AGG_HOST 0
DF_STT_AGG_AREA 0

C.5 Memorizzazione cliente aggiornato Su un apposito file di transito interno al programma, registrare la combinazione "Cliente/destinazione" trovata sul record in elaborazione. D - Confronto e cancellazione record non trovati (Operazione " ") Lo scopo di questa fase è di trovare eventuali record non presenti su COGSETTP per i clienti/destinazione aggiornati, e marcarli quindi come cancellati; questo serve nel caso in cui il gestionale host esegua un aggiornamento di massa su DFSETTIPICO. Rileggere il file di transito creato in precedenza, che conterrà quindi quale cliente/destinazione è stato aggiornato. Per ciascun record, scorrere il contenuto di COGSETTP per tutti i record che corrispondono a:

Nome campo Contenuto
STT-ANA Il cliente sul file di transito
STT-DST-ID La destinazione sul file di transito

Per ciascun record trovato, eseguire una lettura corrispondente su DFSETTIPICO:

Nome campo Contenuto
DF_STT_ANA_HOST STT-ANA
DF_STT_IND_HOST STT-DST-ID
DF_STT_MPR_HOST STT-MERCE

A questo punto, se il record non esiste, marcare il record su COGSETTP come cancellato, impostando

Nome campo Contenuto
STT-FL-CANC "C"

D - Confronto e cancellazione record non trovati (Operazione "SETTIMANALE") D.1 Blocco semaforo Lettura del record DFSEMAFORO:

Nome campo Note
DF_SMF_TABELLA MASSIVO

Se il record non esiste inserirlo. Se risulta bloccato dal gestonale host (DF_SMF_USO_HOST = 1) segnalare sul log e chiudere. Dopodichè aggiornare il semaforo impostando:

Nome campo Note
DF_SMF_USO_AREA 1
DF_SMF_VERSIONE Versione attuale: 1

D.2 Elaborazione Lo scopo di questa fase è di trovare eventuali record non presenti su COGSETTP per i tutti i clienti/destinazione, e marcarli quindi come cancellati; questo serve nel caso in cui il gestionale host esegua un aggiornamento di massa su DFSETTIPICO. Rispetto alla versione standard, questa operazione potrebbe essere sensibilmente più lenta. Scorrere tutto il contenuto di COGSETTP; per ciascun record trovato eseguire una lettura corrispondente su DFSETTIPICO:

Nome campo Contenuto
DF_STT_ANA_HOST STT-ANA
DF_STT_IND_HOST STT-DST-ID
DF_STT_MPR_HOST STT-MERCE

A questo punto, se il record non esiste, marcare il record su COGSETTP come cancellato, impostando

Nome campo Contenuto
STT-FL-CANC "C"

D.3 Rilascio semaforo Lettura del record DFSEMAFORO:

Nome campo Note
DF_SMF_TABELLA MASSIVO

Dopodichè aggiornare il semaforo impostando:

Nome campo Note
DF_SMF_USO_AREA 0

E - Sincronizzazione (esportazione) Fase non prevista in questo programma F - Chiusura F.1 Rilascio semaforo Aggiornare il record semaforo relativo a DFSETTIPICO, impostando

Nome campo Note
DF_SMF_USO_AREA 0

F.2 Chiusura tabelle Chiudere le tabella DFSETTIPICO 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