Vai al contenuto

SWA024 - Sincronizzazione fascicoli CRM

Le fasi principali del processo sono, nell'ordine: * E - Semaforo rosso * B - Importazione * C - Esportazione documenti cancellati * A - Esportazione documenti inseriti/variati * D - Aggiornamento APSTATOSYN e semaforo verde Percorso server FTP Nei casi in cui si dovrà effettuare un download/upload sul server FTP, dove si fa riferimento al documento FTP, si farà riferimento ad un documento sul server FTP il cui nome sarà sul campo A-SKDF-DOC, e il percorso sul server sarà: azienda/_fascicoli/_PathFascicolo * azienda: codice azienda in elaborazione * fascicoli: percorso fisso * PathFascicolo: sottocartella formata dai campi della chiave di ARPSKDATF separati da "-", escludendo gli spazi non significativi:

Nome campo Esempio Si usa
A-SKDF-ORIGINE "C" "C"
A-SKDF-CLASSE " " "FA" (fisso)
A-SKDF-OGGETTO "00001234" "00001234"
A-SKDF-PAGINA "0001" "0001"
A-SKDF-PROG "0042" "0042"

(il tutto convertito in lower) In questo esempio, il percorso risultante potrebbe essere: /c03961/fascicoli/c-fa-00001234-001-0042 /c03961/fascicoli = nuove configurazioni ('areaapp' - 'swa024-codice-server-ftp' - 'swa024-path-spedizione' - 'swa024-crea-ftp') e gestite dal programma "FTP" (vedi anche configurazioni 'ftp' ...)

Note generiche su elaborazione Il programma dovrà essere provvisto di un log elaborazione, che deve tracciare tutte le parti dell'elaborazione, in modo che sia utilizzabile per una verifica di eventuali problemi. Il log dovrà essere gestito su due livelli: * Livello base: viene registrato sempre, e traccia per ciascun documento elaborato il tipo di elaborazione effettuata (ad esempio "Esportato su KPN", "Inserito da mobile", "Aggiornato da mobile", "cancellato da mobile") * Livello "debug": viene registrato se il valore della configurazione "cogesys"-"debug" vale "S" per il programma in elaborazione. Qui si registrano realmente tutte le operazioni nel dettaglio (vedi log importazione interventi). Note su archiviazione remota Se per la classe "Fascicoli CRM" è attiva l'archiviazione remota, l'esecuzione di questo programma viene bypassata: anche se è stata appena attivata, i documenti non ancora remoti saranno sincronizzati e trasferiti dall'apposito processo incluso in ARC005. E - Semaforo rosso Aggiornare il record APSTATOSYN relativo a:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPSKDATF"

Se A-SYN-SEMAFORO = "A" significa che una APP sta occupando la tabella per effettuare agggiornamenti; quindi attendere 5 secondi. Ripetere il processo per 5 volte; dopo l'ultima se ancora il record non risulta libero, uscire dall'elaborazione. Quando abbiamo trovato il record libero alzare il semaforo

Dato Contenuto
A-SYN-SEMAFORO "G"

B - Importazioni Come scritto sopra, per il momento questa parte viene ignorata Scorrere ARPSKDATF eseguendo una apposita query che permetta di restituire i record aggiornati da mobile (A-SKDF-AGG-APP <> "N"). B.1 - Inserimento nuovo documento (A-SKDF-AGG-APP = "I") B.1.1 - DOWNLOAD documento dal server FTP Prelevare il documento trovato sul server FTP, come spiegato all'inizio, e portarlo nella cartella TMP-DIR B.1.2 - Ricerca progressivo libero Cercare il primo progressivo di documento libero per il fascicolo in elaborazione, con una start all'indietro su COGIMAGE attraverso IMG-CHIA2, impostando:

Nome campo Contenuto
IMG-TIP-DOC "PF"
IMG-DC-PF-NOM Codice nominativo (A-SKDF-OGGETTO)
IMG-DC-PF-INF Codice informazione (A-SKDF-INF-COD)
IMG-DC-PF-PROG 9999

Il primo record trovato che corrisponde ai campi in grassetto è l'ultimo progressivo di documento sul fascicolo. B.1.3 - Archiviazione documento Poi chiamata a COGU06 con i parametri:

Dato Contenuto
U06-OPE Inserisci-file
U06-FL-INTERNO "D"
U06-TIP-DOC "PF"
U06-DOC-COGE IMG-DOC-COGE, dopo averlo formato con:



U06-DO-OGGETTO A-SKDF-DES
U06-FILE Nome del file su EXT-TMP-DIR completo
U06-SILENT-MODE "S"

B.1.4 - Rimozione documento su KPN Il documento archiviato su mobile è da considerarsi come provvisorio, quindi va rimosso.

Quindi eseguire: * cancellazione del documento sul server FTP e su EXT-TMP-DIR (vedi SWA014, dopo la call a COGU06 per l'archiviazione) * rimozione del record elaborato su ARPSKDATF B.2 - Cancellazione documento (A-SKDF-AGG-APP = "C") B.2.1 - Rimozione lato gestionale Eseguire una chiamata a COGU06:

Dato Contenuto
U06-OPE "Elimina-doc"
U06-FL-INTERNO "D"
U06-TIP-DOC "PF"
U06-DOC-COGE IMG-DOC-COGE, dopo averlo formato con:



B.2.2 - Rimozione lato web Quindi eseguire: * cancellazione del documento sul server FTP: il nome del documento è su A-SKDF-DOC * rimozione del record elaborato su ARPSKDATF B.3 - Modifica documento (A-SKDF-AGG-APP = "A") Per la modifica del documento, eseguiamo in sequenza: * B.2.1 - Rimozione lato gestionale * B.1.1 - Download dal server FTP * B.1.3 - Archiviazione documento: il progressivo di documento sarà quello presente in A-SKDF-PROG-DOC B.3.1 - Aggiornamento ARPSKDATF Aggiornare il record di origine impostando:

Dato Descrizione
A-SKDF-AGG-APP "N"

C - Esportazione documenti cancellati Eseguire una ricerca su COGEVLOG usando EVL-CHIA4, per tutti i record con

Dato Descrizione
EVL-TIP k-evl-canc-doc-fascicolo (in "costanti-cogevlog.cpy")
EVL-VISTO "N"

(vedi SWA004) Ciascun record trovato corrisponde ad un documento cancellato su un fascicolo CRM. Quindi è necessario marcare il corrispondente record su ARPSKDATF come cancellato. C.1 - Ricerca e aggiornamento Scomporre EVL-CHIAVE su IMG-CHIA2, quindi eseguire la ricerca della posizione del dato sulla scheda crm, come spiegato in A.1 Quindi cercare ARPSKDATF con chiave:

Nome campo Contenuto
A-SKDF-ORIGINE "C"
A-SKDF-CLASSE " "
A-SKDF-OGGETTO IMG-DC-PF-NOM
A-SKDF-PAGINA SKI-PAG
A-SKDF-PROG SKI-PROG
A-SKDF-PROG-DOC IMG-DC-PF-PROG

Se trovato, aggiornare impostando:

Nome campo Contenuto
A-SKDF-FL-CANC "S"

C.2 - Cancellazione "vista" Aggiornare il record di COGEVLOG impostando EVL-VISTO = "S" in ogni caso A - Esportazione documenti inseriti/aggiornati Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "ARPSKDATF"; se il record non esiste, crearlo impostando

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

Qui otterremo una informazione importante: * Data/ora ultima esportazione da gestionale a postgres (A_SYN_DA_GES_DATA e A_SYN_DA_GES_ORA) Ricerca record da esportare TEMPO549 x aggiungere nuova chiave 11 al file: COGARIDX (+ COGE03) * Scorrere COGARIDX x chiave 11 ; per ciascun record letto considerare solo quelli dove ARX-DA-DATA+ARX-DA-TIME sono >= a A_SYN_DA_GES_DATA+A_SYN_DA_GES_ORA (fare il confronto normalizzando e unendo i campi in un unico campo di 8+4 caratteri: AAAAMMGGHHMI) * Per ciascun record, leggere il corrispondente record di COGIMAGE: * IMG-PROTOCOLLO = ARX-PROTOCOLLO * Considerare solo i record con IMG-TIP-DOC = 'PF' (documenti relativi ai fascicoli) A.1 - Ricerca riferimento documento Per il record trovato è necessario trovare a quale tipologia CRM appartiene e di conseguenza alle coordinate sulla scheda: * Ricerca del nominativo CRM: lettura su CRMANAGR, usando IMG-DC-PF-NOM: su CRA-TIP è presente il tipo scheda; * Ricerca della posizione scheda per l'informazione: ricerca su CRMSKINF usando SKI-CHIA2, impostando: * SKI-INF = IMG-DC-PF-INF * SKI-TCL = CRA-TIP * Se trovato, il record identifica la posizione della scheda in cui è presente il fascicolo A.2 - Estrazione documento Eseguire una chiamata a COGU06:

Dato Contenuto
U06-OPE "Estrai-da-doc"
U06-FL-INTERNO "D"
U06-TIP-DOC "PF"
U06-DOC-COGE IMG-DOC-COGE, dopo averlo formato con:



U06-SILENT-MODE "S"

All'uscita dal programma, U06-FILE conterrà il nome del file estratto (in formato server) Ricavare dal nome del file l'estensione (esaminare i caratteri a partire da dx fino al primo ".") A.3 - Upload del documento Usando l'apposito sottoprogramma, eseguire l'upload del documento U06-FILE sul server FTP, nella cartella definita all'inizio di questo documento (Percorso server FTP). Il nome del file sarà IMG-DC-PF-PROG ".estensione" ====> NO : il Nome del File sara' : U06-FILE A.4 - Esportazione documento * Per ciascun record considerato cercare l'esistenza di un record su ARPSKDATF avente:

Dato Descrizione
A-SKDF-AZIENDA Codice azienda
A-SKDF-ORIGINE "C"
A-SKDF-CLASSE " "
A-SKDF-OGGETTO IMG-DC-PF-NOM
A-SKDF-PAGINA SKI-PAG
A-SKDF-PROG SKI-PROG
A-SKDF-PROG-DOC IMG-DC-PF-PROG

Se non esiste, inserirlo. Se esiste: * Cancellazione del documento precedente, che corrisponde al nome del file presente in A-SKDF-DOC prima della modifica * Aggiornare il record: * se pero' A_SKDF_AGG_APP <> "N", inserire una segnalazione sul file di log (significa che nel frattempo una app ha aggiornato il dato). Informazioni con cui inserire/aggiornare un record su ARPSKDATF:

Dato Descrizione
A-SKDF-AZIENDA Codice azienda
A-SKDF-ORIGINE "C"
A-SKDF-CLASSE " "
A-SKDF-OGGETTO IMG-DC-PF-NOM
A-SKDF-PAGINA SKI-PAG
A-SKDF-PROG SKI-PROG
A-SKDF-PROG-DOC IMG-DC-PF-PROG
A-SKDF-INF-COD IMG-DC-PF-INF
A-SKDF-DES IMG-OGGETTO
A-SKDF-DOC (IMG-DC-PF-PROG ".estensione") U06-FILE
A-SKDF-FL-CANC "N"
A-SKDF-AGG-APP "N"
A-SKDF-NOME-ORIGINALE ARP-NOME-ORIGINALE

D - Aggiornamento APSTATOSYN e semaforo verde Aggiornare il record APSTATOSYN relativo a:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPSKDATF"

e aggiornare i dati:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPSKDATF"
A_SYN_DA_GES_DATA Data/ora di aggiornamento maggiore trovata sui record esportati
A_SYN_DA_GES_ORA
A-SYN-SEMAFORO " "

Estratto da documentazione interna ClickUp