Vai al contenuto

DBF021 - Importazione scadenzario extracontabile

Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune Nome processo: DFSCADEX Tabella: DFSCADENZARIO - Scadenzario Logica generale Importazione dello scadenzario extracontabile dal DB frontiera ad AREA. * DFSCADENZARIO -> COGSCDEX 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 Elaborazione Operazioni:

Operazione Descrizione
" " Vedi Scadenzario extracontabile (DBF021)
"SETTIMANALE" Vedi Vedi Scadenzario extracontabile (DBF021)

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: DFSCADENZARIO. 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 DFSCADENZARIO

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) (Operazione " ") 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 (COGBKORD) 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 DFSCADENZARIO WHERE DF_SCD_AGG_HOST = 1 C.2 Controllo record Per ciascun record letto, verificare la correttezza delle informazioni contenute Controllo DF_SCD_KEY_HOST Questa informazione deve essere significativa altrimenti segnalare Errore Controllo DF_SCD_DATA_DOC Questa informazione deve essere significativa altrimenti segnalare Errore Controllo DF_SCD_DATA_SCAD Questa informazione deve essere significativa altrimenti segnalare Errore Controllo DF_SCD_ANA_FAT_HOST Informazione obbligatoria.Cercare se corrisponde ad un cliente o fornitore, con una ricerca su COGANAPP.AAP2-CHIA2, impostando * AAP2-RACCORDO = DF_SCD_ANA_FAT_HOST Se il raccordo: * Esiste: il documento sarà collegato all'anagrafica trovata * Non esiste: l'anagrafica a cui è collegati il contatto non è stato ancora acquisita: Informazione e skippare: "DF_SCD_KEY collegato ad anagrafica non ancora importata : DF_SCD_ANA_FAT_HOST" Controllo DF_SCD_ANA_DST_HOST Informazione non obbligatoria.Cercare se corrisponde ad un cliente o fornitore, con una ricerca su COGANAPP.AAP2-CHIA2, impostando * AAP2-RACCORDO = DF_SCD_ANA_DST_HOST Se il raccordo: * Esiste: il documento sarà collegato all'anagrafica trovata * Non esiste: l'anagrafica a cui è collegati il contatto non è stato ancora acquisita: Informazione e skippare: "DF_SCD_KEY collegato ad anagrafica non ancora importata : DF_SCD_ANA_DST_HOST" Controllo DF_SCD_DIVISA Informazione obbligatoria. Per il momento è consentito "E" o "EU". Controllo DF_SCD_DAREAVERE Informazione obbligatoria. Può valere "D" o "A" Controllo DF_SCD_VAL Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "DF_SCD_KEY con DF_SCD_VAL errato: DF_SCD_VAL". C.3 Importazione record Se tutti i controlli sono superati, proseguire con l'inserimento/variazione della scadenza, a seconda dei controlli precedenti. C.3.1 Inserimento/aggiornamento Cercare l'esistenza di un record su COGSCDEX

Nome campo Contenuto
SCDE-PARTITA DF-SCD-KEY-HOST
SCDE-PARTITA-PROG DF-SCD-PROG-SCADENZA

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

Nome campo Contenuto
SCDE-PARTITA-AREA DF_SCD_ORDINE_HOST
SCDE-ANA-FAT L'anagrafica collegata a DF_SCD_ANA_FAT_HOST
SCDE-ANA-DST L'anagrafica collegata a DF_SCD_ANA_DST_HOST
SCDE-DATA-DOC DF_SCD_DATA_DOC
SCDE-DATA-SCAD DF_SCD_DATA_SCAD
SCDE-DIVISA "E"
SCDE-IMP-TOTALE DF_SCD_IMPORTO_TOTALE
SCDE-IMP-PAGATO DF_SCD_IMPORTO_PAGATO
SCDE-SEGNO DF_SCD_DAREAVERE
SCDE-FL-CANC DF_SCD_VAL
SCDE-NOTE DF_SCD_NOTE

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

Nome campo Contenuto
DF_SCD_AGG_HOST 0
DF_SCD_AGG_AREA 0

C.5 Memorizzazione cliente aggiornato Su un apposito file di transito interno al programma, registrare la combinazione "Cliente fatturazione/cliente destinazione" trovata sul record in elaborazione. D - Confronto e cancellazione record non trovati (Operazione " ") 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 COGSCDEX per i clienti aggiornati, e marcarli quindi come cancellati; questo serve nel caso in cui il gestionale host esegua un aggiornamento di massa su DFSCADENZARIO. Rileggere il file di transito creato in precedenza, che conterrà quindi quale combinazione "Cliente fatturazione/cliente destinazione" è stato aggiornato. Per ciascun record, scorrere il contenuto di COGSCDEX con SCDE-CHIA2 per tutti i record pari a:

Nome campo Contenuto
SCDE-ANA-FAT Il cliente di fatturazione
SCDE-ANA-DST Il cliente destinatario

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

Nome campo Contenuto
DF-SCD-KEY-HOST SCDE-PARTITA
DF-SCD-PROG-SCADENZA SCDE-PARTITA-PROG

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

Nome campo Contenuto
SCDE-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 - Confronto e cancellazione record non trovati (Operazione "SETTIMANALE") Lo scopo di questa fase è di trovare eventuali record non presenti su COGSCDEX per i tutti i clienti, e marcarli quindi come cancellati; questo serve nel caso in cui il gestionale host esegua un aggiornamento di massa su DFSCADENZARIO. Rispetto alla versione standard, questa operazione potrebbe essere sensibilmente più lenta. Scorrere tutto il contenuto di COGSCDEX; per ciascun record trovato scartare i record cancellati (SCDE-FL-CANC = "C"); Per i record validi eseguire una lettura corrispondente su DFSCADENZARIO:

Nome campo Contenuto
DF_SCD_KEY_HOST SCDE-PARTITA
DF_SCD_PROG_SCADENZA SCDE-PARTITA-PROG

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

Nome campo Contenuto
SCDE-FL-CANC "C"

F - Chiusura F.1 Rilascio semaforo Aggiornare il record semaforo relativo a DFSCADENZARIO, impostando

Nome campo Note
DF_SMF_USO_AREA 0

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

Keyword index No index entries found.


Estratto da documentazione interna ClickUp