Vai al contenuto

DBF008 - Sincronizzazione gruppi sconto per anagrafica

Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune Nome processo: CONTATTI Tabella: DFANAGRSCONTI - Sconti su listino Logica generale Sincronizzazione del collegamento tra clienti e gruppi sconto 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
" " Vedi Raccordo anagrafiche/gruppi sconto (DBF008)
"SETTIMANALE" Vedi Raccordo anagrafiche/gruppi sconto (DBF008)

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

Se il record non esiste inserirlo. Se risulta bloccato dal gestionale 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 " ") C.1 Selezione record da importare Tramite un comando SQL specifico, estrazione di tutti i record aggiornati dall'HOST: SELECT * FROM DFANAGRSCONTI WHERE DF_AGS_AGG_HOST = 1 C.2 Controllo record Per ciascun record letto, verificare la correttezza delle informazioni contenute Controllo DF_AGS_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_AGS_ANA_HOST Se il raccordo: * Esiste: l'anagrafica trovata dovrà essere un cliente: altrimenti segnalare Errore "DF_AGS_ANA_HOST collegato ad anagrafica FORNITORE, non ammessa. * Non esiste: l'anagrafica a cui è collegati il contatto non è stato ancora acquisita: Informazione e skippare: "DF_AGS_KEY_HOST collegato ad anagrafica non ancora importata : DF_AGS_ANA_HOST" Controllo DF_AGS_GSC_HOST Codice gruppo sconto: deve corrispondere ad un gruppo sconto presente su DFGRUPPISCONTO, e già collegato ad un gruppo sconto acquisito sul gestionale: Cercare l'esistenza su DFGRUPPISCONTO di un record avente DF_GSC_KEY_HOST = DF_AGS_GSC_HOST: se non esiste, segnalare Errore: "DF_AGS_GSC_HOST; DF_AGS_GSC_HOST non esiste su DFGRUPPISCONTO" Cercare l'esistenza su COGGRSCT, usando GST-CHIA2, di un record avente:

Dato Contenuto
GST-CODICE-HOST DF_AGS_GSC_HOST

Se trovato, GST-COD è il codice gruppo sconto su cui dovremo aggiornare questa condizione; se non trovato, segnalare Informazione sul log: DF_AGS_GSC_HOST; DF_AGS_GSC_HOST non ancora importato" Se trovato e corrisponde ad un gruppo sconto "Cliente" (GST-TIP = 'C') non deve essere collegato, per due motivi: * Il programma di calcolo listini considera gli sconti cliente a prescindere * Il programma che mostra i gruppi sconto del cliente COGE59 farebbe vedere questo gruppo, e darebbe la possibilità di cancellarlo. Controllo DF_AGS_VAL Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "DF_AGS_KEY con DF_AGS_VAL errato: DF_AGS_VAL". C.3 Importazione record Se tutti i controlli sono superati, proseguire con l'inserimento/variazione della dettaglio gruppo sconto, a seconda dei controlli precedenti. C.3.1 Cancellazione Nel caso in cui DF_AGS_VAL = 'C' è necessario cercare e marcare come cancellato un record su COGANAGS:

Nome campo Contenuto
AGS-ANA-TIP "C"
AGS-ANA-COD Il cliente collegato a DF_AGS_ANA_HOST
AGS-GS-TIP GST-TIP
AGS-GS-COD GST-COD

Se il record esiste, impostare "C" su AGS-VAL; altrimenti Informazione sul log.: "richiesta cancellazione di un raccordo non esistente: 'AGS-CHIA1'" C.3.2 Inserimento/aggiornamento Cercare l'esistenza di un record su COGANAGS, come descritto sopra per il punto C.3.1. In questo caso se il record non esiste, verrà inserito. Se il record è già presente ma "cancellato" logicamente, verrà riattivato. C.4 Aggiornamento stato record Aggiornare il record DFANAGRSCONTI impostando:

Nome campo Contenuto
DF_AGS_AGG_HOST 0
DF_AGS_AGG_AREA 0

D - Sincronizzazione (esportazione) Fase non prevista in questo programma E - Confronto e cancellazione record non trovati (Operazione "SETTIMANALE") E.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

E.2 Elaborazione Lo scopo di questa fase è di trovare eventuali record non presenti su COGANAGS, e marcarli quindi come cancellati; questo serve nel caso in cui il gestionale host esegua un aggiornamento di massa su DFANAGRSCONTI. Rispetto alla versione standard, questa operazione potrebbe essere sensibilmente più lenta. Scorrere tutto il contenuto di COGANAGS; per ciascun record trovato scartare i record cancellati (AGS-VAL = "C"); Eseguire la ricerca della testata del gruppo sconto trovato su COGGRSCT:

Nome campo Contenuto
GST-TIP AGS-GS-TIP
GST-COD AGS-GS-COD

Il record dovrebbe esistere, altrimenti emettere una segnalazione di errore e skippare il record. Conterrà il codice "gruppo sconto HOST" assegnato al gruppo sconto Eseguire quindi una lettura corrispondente su DFANAGRSCONTI usando un comando SQL (non esiste una chiave diretta specifica)

Nome campo Contenuto
DF_AGS_ANA_HOST Il codice raccordato a AGS-ANA
DF_AGS_GSC_HOST GST-CODICE-HOST

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

Nome campo Contenuto
AGS-VAL "C"

E.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

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

Nome campo Note
DF_SMF_USO_AREA 0

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