Vai al contenuto

SWA029 - Sincronizzazione ordini

Logica generale Import/export delle ordini di vendita tra gestionale e database KPN Il programma nasce principalmente per l'importazione degli ordini da e-commerce, potrà essere espanso in futuro. Vedi Esempi operativi sincronizzazione con e-commerce Configurazioni possibili

Gruppo Parametro Note
ecommerce causale-ordine
ecommerce magazzino-ordine
ecommerce tipo-pagamento-pagato
ecommerce cond-pag-pagato
ecommerce brand
ecommerce ricalcolo-prezzi-ordini
ecommerce shop-attivo
commesse codifica-automatica
commesse tipo-dossier-commessa
preventivi

Importazione ordini A - APSTATOSYN Aggiornare il record APSTATOSYN relativo a:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPORTES"

Se il record non esiste crearlo. Qui si potrà prelevare l'id sincronizzazione, potrà servire in fase di esportazione ordini verso Postgres, quando implementato. B - Importazione nuovi ordini Come prima cosa viene innescato SWA030 - Importazione nuovi clienti: renderà disponibili i nuovi clienti sul gestionale. Scorrere ARPORTES eseguendo una apposita query che permetta di restituire gli ordini non ancora importati dal gestionale (A-ORTES-TOR-CHIA = " "). Filtri * Gli ordini non devono essere in stato "I" (Invalidato) (usato per la Pasticceria Modenese) -> Nel programma non c'è questo controllo, perchè? * Gli ordini non devono essere in stato (a_ortes_stato) = "V" (da vistare): sono ordini creati dalla APP clienti che devono essere validati (APP clienti Pieri) * I "Pre-ordini" (A-ORTES-ORD-TIP = "P") verranno acquisiti solo per Pieri Come prima cosa, verificare se il cliente associato all'ordine è presente (A-ORTES-CLIENTE <> " "): se presente saltare il punto B.1.1 B.0.1 - Destinazione provvisoria su cliente definitivo L'ordine potrebbe essere collegato ad una destinazione provvisoria: in questo caso ci sarà: * A-ORTES-DST-ID-DISP > 0 * A-ORTES-DST-IDD-PROG > 0 In questo caso prima di procedere verifichiamo se la destinazione è effettivamente ancora provvisoria, tramite una lettura diretta su APCOGDESTI:

Dato Contenuto
A-DST-AZI Azienda
A-DST-ID-DISPOSITIVO A-ORTES-DST-ID-DISP
Attenzione alla conversione!! Per un errore di definizione tabella, A-DST-ID-DISPOSITIVO è alfanumerico. Quindi è necessario togliere gli "0" non significativi
A-DST-IDD-PROG A-ORTES-DST-IDD-PROG
A-DST-ANA A-ORTES-CLIENTE
A-DST-ID-TIP " "
A-DST-ID-IDX 0

B.0.1.1 - Destinazione ancora provvisoria Se il record esiste, la destinazione è ancora provvisoria. Quindi, dando per scontato che al rilascio di questa modifica sarà a rilascio anche la nuova sincronizzazione destinazioni SWN041, in questo caso skippiamo l'ordine mettendo una segnalazione sul log. B.0.1.2 - Destinazione diventata definitiva Altrimenti cerchiamo l'id ufficiale della destinazione, che nel frattempo sarà già stata trasformata in definitiva anche su KPN. In questo caso usiamo una query: SELECT * FROM apcogdesti WHERE a_dst_azi = azienda AND a_dst_id_dispositivo = ' ' A_ND_ a_dst_idd_prog = 0 A_ND_ a_dst_id_tip = 'M' A_ND_ a_dst_ana = A-ORTES-CLIENTE AND a_dst_idd_orig = A-ORTES-DST-ID-DISP AND a_dst_idd_prog_orig = A-ORTES-DST-IDD-PROG La query dovrebbe restituire 1 solo record: se trovato impostiamo * A_ORTES_DST-IDX = A_DST_ID_IDX e proseguiamo con l'importazione al punto B.1 Se invece la query non restituisce nessun record segnalare sul log come errore critico-es2000 e skippiamo il record B.1 - Creazione ordine su gestionale Come prima cosa, verificare se il cliente associato all'ordine è presente (A-ORTES-CLIENTE <> " "): se presente saltare il punto B.1.1 B.1.1 - Importazione cliente Operazione da eseguire quando si sta inserendo un ordine su un cliente nuovo (non ancora acquisito). In questo caso sull'ordine ci sarà A-ORTES-CLIENTE vuoto, e sarà invece presente A-ORTES-ID-UTENTE Quindi, eseguire una lettura su ARPCLIECOM, per vedere a quale cliente ora risulta associato l'utente che ha creato l'ordine (il cliente ora dovrebbe essere presente, poichè abbiamo lanciato SWA030 all'inizio del programma):

Dato Contenuto
A-CLCOM-AZI Azienda
A-CLCOM-ID-UTENTE A-ORTES-ID-UTENTE

Se il record esiste e A-CLCOM-CLIENTE è significativo, allora salvarlo su ARPORTES e proseguire. Altrimenti registrare una segnalazione opportuna sul file di log e saltare l'ordine. B.1.1.1 - Nuovo cliente con nuova destinazione Se A-ORTES-ID-UTENTE-USA-DEST = 1, significa che il nuovo cliente era stato codificato con una nuova destinazione, che sarà stata acquisita da SWA030 alla pari del cliente. In questo caso sull'ordine forzare: * A-ORTES-DST-IDX = 1 e proseguire Criticità: in rari casi potrebbe succedere che l'ordine viene inserito nel tempo che intercorre tra l'esecuzione di SWA030, e questa fase... Sarebbe bene ripristinare l'esecuzione di SWA030 anche qui. E' stato commentato ma non so perchè. B.1.1.2 - Nuova commessa-nuovo dossier Se A-ORTES-FL-CREA-COMMESSA = 1, durante l'inserimento ordine è stato richiesto di creare una commessa-dossier da collegare all'ordine. Quindi se c'è questa esigenza proseguire per questa strada Attenzione: se la configurazione codifica-automatica è diversa da "A", segnalare nel log "La numerazione commesse configurata non è compatibile con l'inserimento automatico" e skippare questa parte B.1.1.2.1 - Attribuzione numero commessa e creazione testata Inserire un record su COGTESCM

Dato Contenuto
TSC-COD Diamo per scontato che sia configurata la codifica automatica progressiva delle commesse (vedi sopra)
Quindi cerchiamo il numero commessa dall'apposito numeratore, vedi COGG52
TSC-PROGETTO " "
TSC-DES-BREVE "Ordine: " chiave editata ordine
TSC-ANA A-ORTES-CLIENTE
TSC-DATA-ACQ Data sistema
TSC-DATA-APE Data sistema
TSC-DATA-CHI 0
TSC-DATA-CNT 0
TSC-STATO "A"
TSC-FL-CONS "N"
TSC-FL-LOTTO "N"
TSC-DIVISA Divisa di conto
TSC-IMP-PRV 0
TSC-TIPO " " (per ora)
TSC-SOT-DEF " "
TSC-SOT-OBB "N"
TSC-DATA-CONS 0
TSC-DATA-ESTR 0
TSC-RAGGR " " (per ora)

Inserire un record su COGTCMAG

Dato Contenuto
TSCA-COD TSC-COD
TSCA-CLI-ASS-TIP " "
TSCA-CLI-ASS-COD 0
TSCA-DST-TIP Se A-ORTES-DST-IDX > 0, impostare "D", altrimenti " "
TSCA-DST-IDX A-ORTES-DST-IDX
TSCA-DATA-INI-EFF 0
TSCA-DATA-FIN-EFF 0
TSCA-TOT-MANODOPERA 0
TSCA-AGENTE Prelevato dal cliente TOR-CLIFOR
Se pero' A-ORTES-AGENTE-COD è significativo, sarà usato in modo prevalente.
(vedi TOR-AGENTE (1))

B.1.1.2.2 - Creazione dossier Chiamata a CRMS10:

Dato Contenuto
CRMS10-OPE "SCRIVI"
CRMS10-NOM 0
CRMS10-ANA A-ORTES-CLIENTE
CRMS10-TDO tipo-dossier-commessa
CRMS10-ID "COM-" + TSC-COD
CRMS10-DES "Ordine: " chiave editata ordine
CRMS10-NOM-2 0
CRMS10-DATA-APE Data sistema

B.1.1.2.3 - Modifica riferimenti commessa su ARPORTES Ora su ARPORTES aggiorniamo alcuni campi:

Dato Contenuto
A-ORTES-FL-CREA-COMMESSA 2
A-ORTES-COMMESSA TSC-COD
A-ORTES-SOTTOCOMMESSA " "

In questo momento non è necessario aggiornare, poichè verrà fatto anche successivamente B.1.2 COGTESOR

Dato Contenuto
TOR-VALIDITA Validità ordine
Verificare se usato
TOR-TIPO "C"
TOR-ANNO Anno ordine prelevato da A-ORTES-DATA
TOR-NUMERO Numero prelevato dall'apposito numeratore
TOR-PROGR 0

"C"

A-ORTES-CLIENTE

TOR-ANNO

A-ORTES-DATA
TOR-CODPAG1 Se A-ORTES-PAGAMENTO vale


TOR-RIFLIS Prelevato dal cliente TOR-CLIFOR
TOR-VET-COD Prelevato dal cliente TOR-CLIFOR
TOR-TRA-TIP " "
TOR-STATO-WEB "1"
TOR-RB Se A-ORTES-PAGAMENTO vale


TOR-CAUSALE Da configurazione causale-ordine
TOR-PORTO Prelevato dal cliente TOR-CLIFOR; se vuoto: "FRANCO"
TOR-ACURA Prelevato dal cliente TOR-CLIFOR
TOR-VETTORE1 Riempire con i dati del vettore, se presente
TOR-VETTORE2
TOR-VETTORE3
TOR-DOVE "T"
TOR-DESCR A-ORTES-NOTE-ORDINE
TOR-DESCR1
TOR-DESTINA 0
TOR-DASCAD TOR-DATDECOR
TOR-VALUNI "A"
TOR-CHIU " "
TOR-RAGRFAT 0
TOR-IMPEGNO "SI"
TOR-MAGAZ


az-main-mag
TOR-OFFERTA "N"
TOR-CURRENCY W-CURRENCY-CONTO

(elemento 1)

Prelevato dal cliente TOR-CLIFOR
Se pero' A-ORTES-AGENTE-COD è significativo, sarà usato in modo prevalente.

Se l'agente è significativo, dalla tabella agenti (vedi HTIM01)


TOR-OPE Operatore attivo
TOR-DATA-OPE Data odierna
TOR-OPE-INS Operatore attivo
TOR-PRV-CONV
TOR-DST-ID-TIP Se A-ORTES-DST-IDX > 0, impostare "D", altrimenti " "
TOR-DST-ID-IDX A-ORTES-DST-IDX
TOR-ORD-TIP A-ORTES-ORD-TIP
TOR-DESCR
TOR-DESCR1
A-ORTES-NOTE-ORDINE
TOR-CNF-NUM
TAR-CNF-NUM
A-ORTES-CONFERMA
TOR-CNF-DATA A-ORTES-DATA-CONFERMA

B.1.2.1 COGTORAG

Dato Contenuto
TAR-TESTA TOR-CHIA
TAR-SPED-UNITARIA "N"
TAR-BRAND Da configurazione brand
TAR-ID-WEB A-ORTES-ID-PUB
TAR-MODO-VENDITA A-ORTES-MODO-VENDITA
TAR-PROVENIENZA A-ORTES-PROVENIENZA
TAR-BLOCCO-AMM A-ORTES-BLOCCO-AMM
TAR-BLOCCO-COM A-ORTES-BLOCCO-COM
TAR-ORD-LISTINO-SCONTI A-ORTES-TOR-LISTINO-SCONTI

B.1.2.2 COGGENER Se i dati A-ORTES-CIG e/o A-ORTES-CUP sono significativi, importarli in un apposito record di COGGENER:

Dato Contenuto
GNR-TIP "OI"
GNR-PARTE-1 TOR-CHIA
GNR-PARTE-2 " "
GNR-DES Unire il contenuto di A-ORTES-CIG e A-ORTES-CUP

(vedi COGO55W) B.1.2.3 COGDESCR Se il dato A-ORTES-NOTE-COMMERCIALI è significativo, salvarlo nelle apposite "Note operative" dell'ordini, vedi COGO55W; corrisponde ad un record di COGDESCR:

Dato Contenuto
CDE-TIP "OO"
CDE-COD TOR-CHIA
CDE-PRO 0
CDE-LEN La lunghezza del contenuto di A-ORTES-NOTE-COMMERCIALI
CDE-DES A-ORTES-NOTE-COMMERCIALI

Se il dato A-ORTES-NOTE-LOGISTICA è significativo, salvarlo nelle apposite "Note magazzino" dell'ordine, vedi COGO55W; corrisponde ad un record di COGDESCR:

Dato Contenuto
CDE-TIP "OO"
CDE-COD TOR-CHIA
CDE-PRO 1
CDE-LEN La lunghezza del contenuto di A-ORTES-NOTE-LOGISTICA
CDE-DES A-ORTES-NOTE-LOGISTICA

B.1.4 dettaglio Eseguire un'estrazione di tutti i record di collegati al record ARPORTES in elaborazione. Per ciascun record creare COGRIGOR

Dato Contenuto
ROR-TESTA TOR-CHIA
ROR-MERCE A-ORDET-MERCE
ROR-RIG-PRO Numero progressivo di riga all'interno dell'ordine
Ora viene usato direttamente A-ORDET-ID-CARRELLO, che dovrebbe essere progressivo all'interno dell'ordine
ROR-QTAORD A-ORDET-QTA
ROR-QTACONS 0
ROR-CURRENCY TOR-CURRENCY
ROR-PREZ A-ORDET-PREZZO-LORDO
ROR-SCONTO-1 A-ORDET-SCO-1
ROR-SCONTO-2 A-ORDET-SCO-2

COGRORAG

Dato Contenuto

TOR-CHIA

ROR-RIG-PRO

COGRORA2

Dato Contenuto
RA2-TESTA TOR-CHIA

ROR-RIG-PRO
RA2-IMPORTO Importo totale riga ordine
RA2-CAUSALE-PRODOTTO A-ORDET-CAUSALE-PRODOTTO
RA2-TIPO-OMAGGIO A-ORDET-TIPO-OMAGGIO
RA2-FL-PROMO A-ORDET-FL-PROMO
RA2-FL-SCONTO-AGENTE A-ORDET-SCONTO-AGENTE
RA2-MOTIVAZIONE-RESO A-ORDET-MOTIVAZIONE-RESO
RA2-SCONTO-AGENTE A-ORDET-SCONTO-AGENTE
RA2-CAMPAGNA-SEL A-ORDET-CAMPAGNA-SEL

COGDESOR Se il campo A-ORDET-NOTE è significativo, importarlo su COGDESOR. Come prima cosa si divide in righe usando GESSTR, operazione "SCOMPONI-NOTE".

Quindi ogni riga risultante viene registrata su COGDESOR:

Dato Contenuto
DOR-TIP "O"
DOR-KEY ROR-CHIA
DOR-PRO Progressivo di riga
DOR-DES Riga di note

B.1.4.1 Ricalcolo prezzi Se la configurazione ricalcolo-prezzi-ordini vale "S", prima di memorizzare COGRIGOR effettuare il ricalcolo dei prezzi con una chiamata a COGS01, identica a quella fatta in COGO05W. Dopodichè aggiornare i dati:

Dato Contenuto
ROR-PREZ S01-PREZZO
ROR-SCONTO-1 S01-SCO-1
ROR-SCONTO-2 S01-SCO-2

In questo caso aggiornare anche ARPORDET con i prezzi ricalcolati:

Dato Contenuto
A-ORDET-PREZZO-LORDO S01-PREZZO
A-ORDET-SCO-1 S01-SCO-1
A-ORDET-SCO-2 S01-SCO-2
A-ORDET-PREZZO-NETTO S01-PRE-NET

NB: Per il momento il ricalcolo non tiene conto dello sconto agente, poichè è nato solo con lo scopo di esportarlo sul db frontiera. B.1.4.2 Impegno merce Per ciascuna riga eseguire una chiamata a COGU12 con cui aggiornare la quantità impegnata per la merce. Vedi COGU12. B.1.4.3 Collegamento a commessa Se A-ORTES-COMMESSA è significativo, l'ordine dovrà essere collegato alla commessa indicata,e e di conseguenza le singole righe. In questo caso quindi inserire un record su COGRIGCM:

Dato Contenuto
RGC-TSC A-ORTES-COMMESSA
RGC-SOT A-ORTES-SOTTOCOMMESSA
RGC-TIP "OR"
RGC-CHIAVE ROR-CHIA1

B.1.5 Consegna Per l'inserimento della consegna, effettuare una chiamata a COGO16C:

Dato Contenuto
O16-OPE "ins-auto"
O16-TIP TOR-TIPO
O16-ANN TOR-ANNO
O16-NUM TOR-NUMERO
O16-PRO TOR-PROGR

B.1.5.1 Gestione data consegna Se una delle due date: * A-ORTES-DATA-CONS-GENERICA * A-ORTES-DATA-CONS-TASSATIVA sono diverse da "00010101" (verificare!!), allora scorrere le righe consegna create (COGCONOR) usando COR-CHIA2, e per ciascuna aggiornare:

Dato Contenuto
COR-DATA A-ORTES-DATA-CONS-GENERICA
COR-DATA-GAR A-ORTES-DATA-CONS-TASSATIVA

B.1.6 Elementi di fatturazione Eseguire un'estrazione di tutti i record di ARPORELFT collegati al record ARPORTES in elaborazione. Per ciascun record creare COGDELFT

Dato Contenuto
DEFT-DOC-CLASSE k-doc-tip-ordine-cliente
DEFT-DOC-KEY TOR-CHIA1
DEFT-ELFT-CODICE A-OEFT-ELFT-CODICE
DEFT-PERCENTUALE A-OEFT-PERCENTUALE
DEFT-IMPORTO A-OEFT-IMPORTO
DEFT-VAL A-OEFT-VAL

B.3 - Aggiornamento ARPORTES Aggiornare il record di origine impostando:

Dato Descrizione
A-ORTES-ID-SINCRO Ultimo id sincro + 1
A-ORTES-ACK-GEST 1
A-ORTES-TOR-CHIA TOR-CHIA

C - Esportazione aggiornamento ordini Si dovranno esportare tutti gli ordini aggiornati a partire dall'ultima sincronizzazione (A-SYN-DA-GES-DATA+A-SYN-DA-GES-ORA). Ora l'esportazione viene effettuata per tutti gli ordini, senza valutare la provenienza. * Scorrere quindi COGTESAP (COGTORAG) usando TAR-CHIA3, partendo dalla data/ora ultima sincronizzazione. * Per ciascun record cercare l'esistenza del record corrispondente su ARPORTES: * Se esiste eseguire C.1.1 (cancellazione) * Poi in tutti i casi C.1.2 (inserimento/reinserimento) * Alla fine di questa fase eseguire C.2 per la gestione degli ordini cancellati C.1.1 - Esportazione ordini aggiornati Aggiornare ARPORTES:

Dato Descrizione
A-ORTES-ID-SINCRO Ultimo id sincro + 1
A-ORTES-STATO

A-ORTES-CONFERMA TOR-CNF-NUM
TAR-CNF-NUM

C.1.2 - Esportazione ordini non esistenti Ordine creato da AREA; occorre creare la struttura su ARPORTES/ARPORDET Questa fase va eseguita se la configurazione shop-attivo vale "S". C.1.2.1 - Ricerca id pubblico Eeguire una lettura su APSTATOSYN:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPORTES"

Verificare se il flag "semaforo" è libero: se A-SYN-SEMAFORO = "A" significa che è in corso una esportazione da APP o WEB, quindi è necessario attendere: * Attendere 1 secondo e ritentare -> Segnalare sul log * Ritentare fino a 10 volte, poi uscire con un errore sul log Quando il semaforo è libero: * Prelevare A-SYN-ID-PUB attuale * Aggiornare APSTATOSYN

Dato Contenuto
A_SYN_ID_PUB Numero attuale + 1
A_SYN_SEMAFORO "G"

Per avere la certezza che l'id pubblico prelevato non esiste, tramite una query effettuare una lettura su ARPORTES:

Dato Contenuto
A-ORTES-AZI Codice azienda
A-ORTES-ID-PUB Id pubblico attuale

Se esiste almeno un record, significa che nel frattempo l'id è stato usato; quindi ripetere dall'inizio il punto C.1.2.1 C.1.2.2 - Inserimento ARPORTES

Dato Contenuto
A-ORTES-AZI Codice azienda
A-ORTES-ID-PUB Id pubblico attuale
A-ORTES-TOR-CHIA TOR-CHIA
A-ORTES-CONFERMA TOR-CNF-NUM
TAR-CNF-NUM
A-ORTES-ID-INT 0
A-ORTES-ACK-STORE 0
A-ORTES-ACK-GEST 1
A-ORTES-ACK-APP 0
A-ORTES-PROV-TIPO "G"
A-ORTES-PROV-ID 0
A-ORTES-AUTORE-TIPO "O"
A-ORTES-AUTORE-COD TOR-OPE-INS
Solo se in precedenza era vuoto
A-ORTES-ID-SINCRO Ultimo id sincro + 1
A-ORTES-DATA TOR-DATDECOR
A-ORTES-ID-UTENTE 0
A-ORTES-CLIENTE TOR-TIPO1 + TOR-CLIFOR
A-ORTES-PAGAMENTO "S"
A-ORTES-MSG-PAYPAL " "
A-ORTES-DST-IDX TOR-DST-ID-IDX
A-ORTES-STATO

A-ORTES-DIVISA TOR-CURRENCY
A-ORTES-DATA-ACQ TOR-DATDECOR
A-ORTES-ORA-ACQ 0
A-ORTES-MODO-VENDITA "1"
A-ORTES-CIG " "
A-ORTES-CUP " "
A-ORTES-ORD-TIP " "
A-ORTES-NOTE-ORDINE TOR-DESCR + TOR-DESCR1
A-ORTES-NOTE-COMMERCIALI Da COGDESCR, vedi B.1.2.3
A-ORTES-MAGAZZINO "1"
A-ORTES-DATA-CONS-GENERICA COR-DATA (*)
A-ORTES-DATA-CONS-TASSATIVA COR-DATA-GAR (*)
A-ORTES-COMMESSA RGC-COM (#)
A-ORTES-SOTTOCOMMESSA RGC-SOT (#)
A-ORTES-ORD-LISTINO-SCONTI TAR-ORD-LISTINO-SCONTI

(*) Cercare la prima riga consegna collegata all'ordine. (#) Cercare il collegamento a una commessa per la prima riga ordine C.1.2.3 - Inserimento ARPORDET Per ciascuna riga ordine inserire un record su ARPORDET

Dato Contenuto
A-ORDET-AZI Codice azienda
A-ORDET-ID-PUB A-ORTES-ID-PUB
A-ORDET-ID-CARRELLO 0
A-ORDET-RIGA ROR-RIG-PRO
A-ORDET-MERCE ROR-MERCE
A-ORDET-QTA ROR-QTA
A-ORDET-QTA-EVASA ROR-QTACONS
A-ORDET-PREZZO-LORDO ROR-PREZ
A-ORDET-SCO-1 ROR-SCONTO-1
A-ORDET-SCO-2 ROR-SCONTO-2
A-ORDET-PREZZO-NETTO Da calcolare in base a prezzo lordo - sconti
A-ORDET-IMPORTO RA2-IMPORTO
A-ORDET-IVA-COD MER-CODIVA (prelevato da A-ORDET-MERCE)
A-ORDET-TIPO-OMAGGIO RA2-TIPO-OMAGGIO
A-ORDET-FL-PROMO RA2-FL-PROMO
A-ORDET-SCONTO-AGENTE RA2-FL-SCONTO-AGENTE
A-ORDET-RIGA-PADRE 0
A-ORDET-MOTIVAZIONE-RESO RA2-MOTIVAZIONE-RESO
A-ORDET-CAUSALE-PRODOTTO RA2-CAUSALE-PRODOTTO
A-ORDET-SCONTO-AGENTE RA2-SCONTO-AGENTE
A-ORDET-NOTE Descrizioni aggiuntive riga ordine, trovate su COGDESOR

C.1.2.4 - Inserimento ARPORELFT Effettuare la ricerca dei record di COGDELFT collegati all'ordine:

Dato Contenuto
DEFT-DOC-CLASSE k-doc-tip-ordine-cliente
DEFT-DOC-KEY TOR-CHIA

Per ciascun record trovato inserire un record su ARPOREFT

Dato Contenuto
A-OEFT-AZI Codice azienda
A-OEFT-ID-PUB A-ORTES-ID-PUB
A-OEFT-ELFT-CODICE DEFT-ELFT-CODICE
A-OEFT-PERCENTUALE DEFT-PERCENTUALE
A-OEFT-IMPORTO DEFT-IMPORTO
A-OEFT-VAL DEFT-VAL

C.1.2.4 - Sblocco semaforo Aggiornare nuovamente APSTATOSYN:

Dato Contenuto
A_SYN_SEMAFORO " "

C.2 - Esportazione ordini cancellati Si dovranno esportare tutti gli eventi di cancellazione degli ordini; scorrere COGEVLOG usando chiave EVL-CHIA4, impostando

Dato Descrizione
EVL-TIP K-EVL-CANC-COGTESOR (copy costanti-cogevleg.cpy)
EVL-VISTO "N"

Per ciascun record: EVL-CHIAVE contiene la chiave dell'ordine cancellato; quindi cercare su ARPORTES il record corrispondente, usando una select diretta; se il record esiste aggiornarlo impostando:

Dato Descrizione
A-ORTES-ID-SINCRO Ultimo id sincro + 1
A-ORTES-STATO "X"

Poi variare il record COGEVLOG impostando

Dato Descrizione
EVL-VISTO "S"

D - Aggiornamento APSTATOSYN Aggiornare il record APSTATOSYN relativo a:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPORTES"

e aggiornare i dati:

Dato Contenuto
A_SYN_AZIENDA Codice azienda
A_SYN_TABELLA "ARPORTES"
A_SYN_DA_GES_DATA Data/ora di aggiornamento maggiore trovata sui record esportati
A_SYN_DA_GES_ORA
A_SYN_DA_ID_SINCRO Ultimo id sincro salvato su ARPORTES + 1
A-SYN-SEMAFORO " "

Estratto da documentazione interna ClickUp