Vai al contenuto

SWN070 - Clienti

Nome programma SWN070 Linkage section UTILAGPRG - Linkage comune Id processo: 70 Nome processo: CLIENTI Tabelle principali gestite

AREA AREAGATE Direzione
COGGEANA ARPANAGR ------>
<------

Versione tabella: 4 Logica generale Sincronizzazione dell'anagrafica clienti Esportazione Esportazione di tutti i record effettivamente modificati (con dati variati). Importazione L'importazione viene effettuata in alcune condizioni particolari descritte di seguito Configurazioni possibili

Gruppo Parametro Note
abilita attiva-areaapp
areaapp cod-azienda
areaapp db-conn-string
areaapp agg-postgres-online
clienti inf-rating
clienti inf-multiplo-standard
clienti inf-raggr-statistico
clienti inf-raggr-stat-2
clienti inf-raggr-stat-3
clipot info-account
assist info-crm-area-tecnica Codice informazione CRM per area tecnica (lettura tramite CRMS06)

Elaborazione Tipi di segnalazione: Vedi Tipi di segnalazione A - Controllo di esecuzione Vedi Controllo di esecuzione A.1 - Aggiornamento KEEP-ALIVE Per il momento non lo eseguiamo: il keep-alive viene tenuto aggiornato dal thread autonomo di aglancio; se il programma venisse chiamato in "tempo reale" dal programma di gestione, non necessita comunque del keep-alive. A.2 - Apertura A.2.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: ARPANAGR Se fallita inviare una Segnalazione critica e chiudere. Controllo versione

Versione attuale Attività
< 4 Viene forzata l'esportazione di tutte le anagrafiche, escludendo momentaneamente l'importazione (deve essere fatta solo un'esportazione prima di effettuare qualunque importazione)

C - Importazione aggiornamenti Effettuare una query per estrarre tutti gli elementi aggiornati su APP: SELECT * FROM ARPANAGR WHERE rana_azi = azienda AND (rana_agg_app = 'A') Ogni cliente trovato viene considerato come aggiornato (in questo momento non è prevista la cancellazione); l'importazione di un nuovo cliente è gestita da apposito processo che preleva da ARPCLIECOM C.1 - Importazione elemento aggiornato Fare una ricerca su COGGEANA impostando:

Dato Contenuto
ANA-CHIA1 RANA-CODANA

Il cliente deve esistere. Quindi proseguire con l'aggiornamento di COGGEANA; i dati attualmente aggiornabili sono:

Dato Contenuto
ANA-NOME
ANA-NOME2
RANA-NOME: splittare la ragione sociale nei due campi in modo analogo a quanto fatto in esportazione
ANA-IND RANA-INDI
ANA-CAP RANA-CAP
ANA-LOCA RANA-LOCA
ANA-PROV RANA-PROV
ANA-PIVA RANA-PIVA
ANA-COFI RANA-COFI
ANA-EMAIL RANA-EMAIL
ANA-RIFLISTINO RANA-LISTINO
ANA-PADRE RANA-PADRE (2:5)
ANA-FASCIA-TRF RANA-FASCIA-TRF
ANA-ZONA RANA-ZONA

Inserire/aggiornare COGAPPOG:

Dato Contenuto
APP-TEL RANA-TEL
APP-FAX RANA-FAX

Inserire/aggiornare COGANAPP:

Dato Contenuto
AAP-LOCA RANA-LOCA
APP-CAP RANA-CAP
APP-NS1-INI RANA-CHIUSURA-1-DA
APP-NS1-FIN RANA-CHIUSURA-1-A
APP-NS2-INI RANA-CHIUSURA-2-DA
APP-NS2-FIN RANA-CHIUSURA-2-A

Inserire/aggiornare COGANCAP: (solo se latitudine e longitudine sono = 0)

Dato Contenuto
ANC-LATITUDINE RANA-LATITUDINE
ANC-LONGITUDINE RANA-LONGITUDINE

Esecuzione di una chiamata a COGS44 per le stringhe di ricerca, se il nome è diverso B - Esportazione elementi aggiornati * ID SINCRO: gestito * Esportazione differenziale: gestita ma non ottimizzata: non esiste una chiave diretta per ottenere solo i record aggiornati * Cancellazione logica: non gestita In questa fase si dovrà tenere conto di * Limite record * Limite errori * "Esporta tutto" B.1 - Stato sincronizzazione Sulla tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPANAGR"; se il record non esiste, crearlo impostando

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPANAGR"
A_SYN_DA_GES_DATA 0
A_SYN_DA_GES_ORA 0
A_SYN_DA_ID_SINCRO 1

Qui otterremo due informazioni importanti: * Data/ora ultima esportazione da gestionale a postgres (A_SYN_DA_GES_DATA e A_SY_DA_GES_ORA) * Prossimo ID sincronizzazione da memorizzare sulla tabella (A_SYN_ID_SINCRO) B.2 - Ricerca record da esportare B.2.1 Ricerca record da esportare

Tipo di elaborazione Condizione Cosa fare
Singolo record AGPRG-KEY <> " "
(conterrà ANA-CHIA1)
Si legge direttamente il record da aggiornare su COGGEANA
Verrà eseguita se agg-postgres-online è attiva
Se viene sincronizzato un record cancellato, verrà effettuata la cancellazione logica
Esportazione totale AGPRG-ESPORTA-TUTTO = "S" Si scorrono tutti i record di COGGEANA; ogni record va considerato, ignorando il controllo sulla variazione dei record
Ora vengono esportati anche i fornitori (ANA-TIPO = 'F')
In ambiente CAP, si deve effettuare un controllo aggiuntivo: il cliente va esportato solo se


Esportazione standard Si scorrono tutti i record di COGANCAP a partire da data/ora ultimo aggiornamento
Pulizia AGPRG-OPE = "PULIZIA" Eseguire solo il giro di cancellazione logica B.3 quindi uscire

Per ciascun record valido si cercano tutti i record collegati: * COGGEANA * COGAPPOG * COGANAPP * COGANAP2 * COGANCAP B.2.2 Verifica ed esportazione record Dopodichè si effettua la ricerca dell'informazione su ARPANAGR

Dato Contenuto
RANA-AZI Codice azienda
RANA-CODANA ANA-CHIA

Se non esiste, inserirlo. Se esiste, aggiornarlo l'aggiornamento del record deve avvenire solo se almeno un dato tra quelli da modificare è diverso. NB: se è stata richiesta l'esportazione completa (AGPRG-ESPORTA-TUTTO = "S") allora il record dovrà essere esportato a prescindere dal confronto Se la versione tabella è <= 3, l'esportazione dei fornitori deve essere completa (senza effettuare il confronto di data/ora: questo serve per effettuare la prima esportazione completa dei fornitori. Suggerimento Invece di popolare direttamente i dati del record di destinazione, portarli su delle copie in w/s. Al termine confrontare i dati sulla destinazione con la copia in w/s. Aggiornamento NB: se a questo punto RANA-AGG-APP vale "A", significa che nel lasso di tempo tra la fase di importazione e questa, qualcuno ha aggiornato il record su APP: quindi segnalare sul log e ignorare l'esportazione.

Dato Contenuto
(Clienti)
Contenuto
(Fornitori)
Confronto?
RANA-AZI Codice azienda Codice azienda
RANA-CODANA ANA-CHIA1 ANA-CHIA1
RANA-TIMBRO "N" se il cliente è nuovo
Invariato se il cliente è esistente
"N"
RANA-NOME (*)
ANA-NOME + ANA-NOME2

ANA-NOME + " " + ANA-NOME2

ANA-NOME + ANA-NOME2

ANA-NOME + " " + ANA-NOME2
Si
RANA-INDI (*) ANA-IND ANA-IND Si
RANA-LOCA (*) APP-LOCA se significativo, altrimenti ANA-LOCA APP-LOCA se significativo, altrimenti ANA-LOCA Si
RANA-PROV ANA-PROV ANA-PROV Si
RANA-CAP (*) AAP-CAP se significativo, altrimenti ANA-CAP AAP-CAP se significativo, altrimenti ANA-CAP Si
RANA-EMAIL (*) ANA-EMAIL ANA-EMAIL Si
RANA-NAZIONE ANA-ST-COD ANA-ST-COD Si
RANA-VAL ANA-VAL ANA-VAL Si
RANA-AGENTE ANA-AGENTE " " Si
RANA-PADRE ANA-TIPO + ANA-PADRE ANA-TIPO + ANA-PADRE Si
RANA-PAG-COD ANA-PAG1 ANA-PAG1 Si
RANA-PAG-TIP ANA-RB ANA-RB Si
RANA-TEL (*) APP-TEL APP-TEL Si
RANA-FAX (*) APP-FAX APP-FAX Si
RANA-TIPOLOGIA APP-TIP-STT " " Si
RANA-DATA-AGG Data sistema Data sistema Si
RANA-LISTINO ANA-RIFLISTINO 0 Si
RANA-ZONA ANA-ZONA " " Si
RANA-COD-RIF ANA-COD-RIF ANA-COD-RIF Si
RANA-NR-KM-CLIENTE AAP-NR-KM-CLIENTE 0 Si
RANA-TIPO-TRASPORTO AAP-TRASP-CURA AAP-TRASP-CURA Si
RANA-STATO-CONTENZIOSO AAP2-STATO-CONTENZIOSO " " Si
RANA-SCONTO-FIN AAP2-SCONTO-FIN " " Si
RANA-INCOTERMS AAP2-INCOTERMS " " Si
RANA-ORDINE-MINIMO AAP2-ORDINE-MINIMO 0 Si
RANA-CODICE-HOST (*) AAP2-RACCORDO AAP2-RACCORDO Si
RANA-CLIENTE-LISTINO " "; se AAP2-CLIENTE-LISTINO <> 0:
ANA-TIPO + AAP2-CLIENTE-LISTINO
" " Si
RANA-IBAN Se APP-C-CORR è significativo, unire i campi:






Altrimenti " "
Se APP-C-CORR è significativo, unire i campi:






Altrimenti " "
Si
RANA-RATING Se la rispettiva configurazione è significativa, si cerca il contenuto dell'informazione tramite CRMS06
inf-rating
inf-multiplo-standard
inf-raggr-statistico
inf-raggr-stat-2
inf-raggr-stat-3
info-account
Altrimenti è vuoto
" " Si
RANA-MULTIPLO-STANDARD Si
RANA-GRP-STAT-1 Si
RANA-GRP-STAT-2 Si
RANA-GRP-STAT-3 Si
RANA-ACCOUNT Si
RANA-FASCIA-TRF ANA-FASCIA-TRF " " Si
RANA-IMP-TRASFERTA Se ANA-FASCIA-TRF significativo, si ricerca il record ASNFRIMB collegato, e da qui si calcola l'importo trasferta:
AFRI-TIPO-CALCOLO = "F"

AFRI-TIPO-CALCOLO <> "F"

Altrimenti è 0
0 Si
RANA-LATITUDINE ANC-LATITUDINE ANC-LATITUDINE Si
RANA-LONGITUDINE ANC-LONGITUDINE ANC-LONGITUDINE Si
RANA-COFI ANA-COFI ANA-COFI Si
RANA-PIVA ANA-PIVA ANA-PIVA Si
RANA-FIDC-ESPOSIZIONE
Consorzi



0 Si
RANA-FIDC-SCADUTO
RANA-FIDC-EFFETTI
RANA-FIDC-RB
RANA-FIDC-ASCAD
RANA-FIDC-FATTU
RANA-FIDC-CONVENZIONE
RANA-FIDC-BOLLE
RANA-FIDC-NO-VALUTA
RANA-FIDC-ORDINI
RANA-FIDC-FATTURATO-ANNO
RANA-FIDC-FIDO In ambiente Consorzi, leggere il record COGCNDCF collegato all'anagrafica:






0
RANA-NOMINATIVO-CRM Inserire qui il codice nominativo CRA-COD trovato cercando su CRMANAGR il cliente attraverso CRA-CHIA3 Inserire qui il codice nominativo CRA-COD trovato cercando su CRMANAGR il cliente attraverso CRA-CHIA3 Si
RANA-AREA-TECNICA Valore dell'informazione CRM configurata in assist/info-crm-area-tecnica, letto tramite CRMS06 " " Si
RANA-CONTO-ANAGRAFICO ANA-RIFCONTO ANA-RIFCONTO Si
RANA-AGG-AREA "A" "A"
RANA-ID-SINCRO Prossimo id sincro Prossimo id sincro
RANA-AGG-APP Se latitudine e longitudine sono diversi, viene impostato a " "; altrimenti si lascia invariato (?) Se latitudine e longitudine sono diversi, viene impostato a " "; altrimenti si lascia invariato (?)
RANA-FTE-COD-DEST AAP2-FTE-COD-DEST " "
RANA-FTE-PEC-PRINCIPALE L'indirizzo di posta contenuto nel contatto con tipologia "*P" " "
RANA-SEDE AAP2-SEDE " "
RANA-CHIUSURA-1-DA APP-NS1-INI 0
RANA-CHIUSURA-1-A APP-NS1-FIN 0
RANA-CHIUSURA-2-DA APP-NS2-INI 0
RANA-CHIUSURA-2-A APP-NS2-FIN 0

Per i campi contrassegnati con (*) effettuare il parsing tramite GESSTR, come già fatto negli altri programmi di sincronizzazione In questa fase tenere memoria di data+ora dell'ultimo record di input considerato. B.3 Verifica record cancellati Sulla tabella di origine COGGEANA esiste esiste il flag di cancellazione logica, ma è possibile anche effettuare la cancellazione fisica. Quindi si opererà come segue: 1. Scorrere tutti i record di ARPANAGR per l'azienda, dove RANA-VAL = " " 2. Ricerca, per ciascuno, del corrispondente record su COGGEANA A questo punto la situazione potrebbe essere la seguente:

COGGEANA trovato? ANA-VAL Cosa fare
Si "C" Aggiornare ARPANAGR impostando


Si " " Nessuna operazione
No / Aggiornare ARPANAGR impostando


B.9 - Aggiornamento id syncro Al termine dell'elaborazione, aggiornare il record APSTATOSYN:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPANAGR"
A_SYN_DA_GES_DATA Data/ora dell'ultimo record aggiornato
A_SYN_DA_GES_ORA
A_SYN_DA_ID_SINCRO Ultimo id sincro + 1
A_SYN_VERSIONE 4

Estratto da documentazione interna ClickUp