Posizione nel menu
Programma non a menu
Linkage section
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 |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
|
dbfront |
|
Elaborazione
Operazioni:
Operazione |
Descrizione |
" " |
|
"SETTIMANALE" |
Tipi di segnalazione:
Vedi Tipi di segnalazione
A - 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 |