DBF008 - Sincronizzazione gruppi sconto per anagrafica

Navigation:  »No topics above this level«

DBF008 - Sincronizzazione gruppi sconto per anagrafica

Return to chapter overview

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