DFN100 - Import/export documenti di magazzino¶
Posizione nel menu Programma non a menu Linkage section UTILDBFPRG - Linkage comune Nome processo: CONTATTI Tabella: DFDOCTES - Testata documenti + DFDOCDET - Dettaglio documenti Logica generale Sincronizzazione dei documenti di magazzino tra AREA e il DB frontiera. Questo processo funziona in IMPORT e EXPORT Configurazioni possibili
| Gruppo | Parametro | Note |
|---|---|---|
| dbfront | sincro-attiva | |
| dbfront | email-segnalazioni | |
| dbfront | db-tipo | |
| dbfront | db-conn-string | |
| dbfront | db-log-level | |
| dbfront | inverto-segno-sconti | |
| dbfront | magazzino-esp-interventi | Usato per modificare il magazzino dei documenti la cui sede è il magazzino configurato |
| dbfront | periferica-stampa-ricevimenti | |
| dbfront | doc-exp-escludi-causali | Causali da escludere nell'esportazione |
Elaborazione Tipi di segnalazione: Vedi Tipi di segnalazione A - Controllo di esecuzione Vedi Controllo di esecuzione A.1 - Controllo log COGTESBO Per l'esecuzione di questo programma è necessario aver attivato il log sul file COGTESBO, altrimenti risulta impossibile tracciare le cancellazioni dei documenti. Di conseguenza, il log del file si potrà usare anche per tracciare gli inserimenti e le variazioni. Quindi se il dato TLF-CO-LOG (7) è diverso da "X", inviare una Segnalazione grave e chiudere. B - Apertura B.1 Apertura tabelle Tentare l'apertura della tabella da sincronizzare: DFDOCTES. Se fallita inviare una Segnalazione grave e chiudere. Tentare l'apertura della tabella da sincronizzare: DFDOCDET. 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 | DFDOCTES |
Se il record non esiste inserirlo. Se risulta bloccato dal gestonale 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 |
Ripetere l'operazione per la tabella DFDOCDET 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) Se DBFST-FL-ATTIVAZIONE = 'E' (solo esportazione). segnalare Informazione sul log e skippare questa fase. C.1 Selezione documenti da importare Tramite un comando SQL specifico, estrazione di tutte le testate dei documenti aggiornati dall'HOST: SELECT * FROM DFDOCTES WHERE DF_DTES_AGG_HOST = 1 and DF_DTES_CLASSE = 'DM' I documenti trovati in questo modo potrebbero essere: * Documenti inseriti dall'HOST * Documenti inseriti dall'HOST e successivamente variati * Documenti inseriti su AREA che sono stati acquisiti dall'HOST e successivamente variati: potrà essere effettuata una variazione in funzione della presenza del raccordo su COGGENER (vedi sotto) C.2 Controllo record di testata Per ciascun record letto, verificare la correttezza delle informazioni contenute Controllo DF_DTES_VAL Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "DF_DTES_KEY con DF_DTES_VAL errato: DF_DTES_VAL". Se un record risulta cancellato skippare tutti i controlli successivi, e passare direttamente alla fase di cancellazione come spiegato sotto. Controllo DF_DTES_KEY_HOST Questa informazione, in fase di importazione deve essere significativa, altrimenti segnalare Errore . Controllo DF_DTES_ORIGINE Questa informazione potrà contenere "A" o "H", altrimenti segnalare Errore e skippare: "DF_DTES_KEY con DF_DTES_ORIGINE errato: DF_DTES_ORIGINE". Se contiene "A" significa che il documento è stato generato da AREA; per il momento ignoriamo le variazioni su questi documenti, quindi Informazione sul log e skippare il record. Controllo DF_DTES_CLASSE La classe documento attualmente potrà essere solo "DM", altrimenti segnalare Errore e skippare: "DF_DTES_KEY con DF_DTES_CLASSE errato: DF_DTES_CLASSE". Controllo DF_DTES_KEY_AREA Se presente, significa che il documento è già stato acquisito da AREA, e siamo in caso di variazione: verificare quindi l'esistenza su COGTESBO del documento: se manca, segnalare Errore: "DF_DTES_KEY; DF_DTES_KEY_AREA non esistente: DF_DTES_KEY_AREA" IMPORTANTE in alcuni casi, il gestionale host in caso di variazione non è in grado di mantenere il raccordo con il nostro documento scritto qui. Per questo motivo, prima di considerare un documento come "Nuovo" si dovrà controllare l'esistenza di un eventuale raccordo su COGGENER, con GNR-TIPO = "DH" Controllo DF_DTES_DATA Data documento: questo campo dovrà essere significativo e contenere una data valida, altrimenti segnalare Errore e skippare. Controllo DF_DTES_MAG_MAIN_HOST Campo obbligatorio. Si dovrà cercare su COGMAGAG se esiste già un magazzino con MAGG-CODICE-HOST = DF_DTES_MAG_MAIN_HOST. Se non esiste, segnalare Errore e skippare: "DF_DTES_KEY con DF_DTES_MAG_MAIN_HOST non esistente: DF_DTES_MAG_MAIN_HOST". Controllo DF_DTES_MAG_TRASF_HOST Campo non obbligatorio. Se presente, si dovrà cercare su COGMAGAG se esiste già un magazzino con MAGG-CODICE-HOST = DF_DTES_MAG_TRASF_HOST. Se non esiste, segnalare Errore e skippare: "DF_DTES_KEY con DF_DTES_MAG_TRASF_HOST non esistente: DF_DTES_MAG_TRASF_HOST". Controllo DF_DTES_CAUSALE Campo obbligatorio. Si dovrà cercare sulla tabella causali se ne esiste una con EUTA-CB-CODICE-HOST = DF_DTES_CAUSALE. Se non esiste, segnalare Errore e skippare: "DF_DTES_KEY con DF_DTES_CAUSALE non esistente: DF_DTES_CAUSALE". Controllo DF_DTES_PAGAMENTO Campo non obbligatorio. Se indicato dovrà corrispondere ad un codice raccordato con i nostri "tipo e codice pagamento, vedi DBF001. Controllo DF_DTES_ANA_FAT_HOST Questa informazione potrebbe non essere significativa (in caso di documento interno tipo "prima nota magazzino". Se significativa, cercare se corrisponde ad un cliente o fornitore, con una ricerca su COGANAPP.AAP2-CHIA2, impostando * AAP2-RACCORDO = DF_DTES_ANA_FAT_HOST Se il raccordo: * Esiste: il documento sarà collegato all'anagrafica trovata; il tipo anagrafico dovrà essere congruente con il tipo anagrafico della causale bolla (vedi COGV14W o COGV50W) * Non esiste: l'anagrafica a cui è collegati il contatto non è stato ancora acquisita: Informazione e skippare: "DF_DTES_KEY collegato ad anagrafica non ancora importata : DF_DTES_ANA_FAT_HOST" Controllo DF_DTES_ANA_DST_HOST Come sopra Controllo DF_DTES_IND_HOST Se indicato dovrà corrispondere ad un indirizzo di spedizione presente in DFINDIR (fare la ricerca su DF_IND_KEY_HOST). Se non presente segnalare Errore e skippare. Se presente questo indirizzo deve essere già stato importato e collegato su AREA: dovrà quindi avere DF_IND_AREA_PROG valorizzato. Altrimenti segnalare Informazione e skippare: "DF_DTES_KEY collegato ad indirizzo non ancora importata : DF_DTES_IND_HOST" Controllo DF_DTES_VAL Questo campo potrà contenere "C" o " " altrimenti segnalare Errore e skippare: "DF_DTES_KEY con DF_DTES_VAL errato: DF_DTES_VAL". Controllo DF_DTES_DIVISA Se vale "EU" diventerà "E" e viceversa C.3 Controlli dettaglio documento Tramite un comando SQL specifico, estrazione di tutte le righe del documento in elaborazione: SELECT * FROM DFDOCDET WHERE DF_DDET_KEY_HOST = DF_DTES_KEY_HOST Per ciascun record letto i controlli sono i seguenti: Controllo DF_DDET_SEGNO Questo campo potrà contenere "E" o "U" altrimenti segnalare Errore e skippare: "Riga: DF_DDET_KEY_HOST : DF_DDET_RIG_HOST con DF_DDET_SEGNO errato: DF_DDET_SEGNO". Controllo DF_DDET_MPR_HOST questa informazione contiene il codice merce avanzato di una merce (che corrisponde al codice articolo HOST).. Quindi, cercare su COGRACMC; se non esiste segnalare Errore ""Riga: DF_DDET_KEY_HOST : DF_DDET_RIG_HOST; merce non esistente: DF_DDET_MPR_HOST" C.4 Importazione record Se tutti i controlli sono superati, proseguire con l'inserimento/aggiornamento del documento. Se DF_DTES_KEY_AREA è vuoto, cercare il raccordo su AREA, su COGGENER, usando GNR-CHIA2, impostando:
| Nome campo | Contenuto |
|---|---|
| GNR-TIPO | "DH" |
| GNR-PARTE-2 | DF_DTES_KEY_HOST |
Se il record * esiste, GNR-PARTE-1 conterrà il riferimento ad un documento di AREA; cercarne quindi l'esistenza su COGTESBO: * se non esiste, cancellare il record, e procedere con l'inserimento * se esiste, siamo in caso di Variazione * non esiste, siamo in Inserimento Riepilogo situazioni possibili
| DF_DTES_KEY_HOST | Raccordo COGGENER | Situazione |
|---|---|---|
| Vuoto | Esiste, GNR-PARTE-2 esiste | Variazione |
| Vuoto | Esiste, GNR-PARTE-2 non esiste | Cancellazione raccordo su COGGENER Inserimento |
| Vuoto | Non esiste | Inserimento |
| Non vuoto | / | Variazione |
C.4.1 Cancellazione Nel caso in cui DF_DTES_VAL = 'C' è necessario cercare e cancellare l'intero documento di magazzino: C.4.1.1 Cancellazione di documento non importato Se DF_DTES_KEY_AREA è vuoto: significa che il documento non era mai stato importato: marcare il record come "elaborato":
| Nome campo | Contenuto |
|---|---|
| DF_DTES_AGG_HOST | 0 |
| DF_DTES_AGG_AREA | 0 |
segnalare Informazione e skippare: "DF_DTES_KEY documento cancellato ma non ancora importato" C.4.1.2 Cancellazione di documento importato Se DF_DTES_KEY_AREA non è vuoto: significa che il documento era già stato importato; Cercare su COGTESBO, usando DF_DTES_KEY_AREA. Se non esiste segnalare Errore e skippare: "DF_DTES_KEY documento da cancellare non esistente: DF_DTES_KEY_AREA" Altrimenti effettuare la cancellazione usando COGU11 NB: COGU11 è nato per la cancellazione di DDT, in realtà dovrebbe essere possibile usarlo anche per la cancellazione di altri documenti come entrate di magazzino o prime note magazzino. Provare anche con documenti di questi tipi. Dopodichè marcare il record come "elaborato":
| Nome campo | Contenuto |
|---|---|
| DF_DTES_AGG_HOST | 0 |
| DF_DTES_AGG_AREA | 0 |
| DF_DTES_KEY_AREA | " " |
C.4.2 Inserimento¶
Come prima cosa dobbiamo determinare quale tipo documento creare, a seconda della causale e della presenza di una anagrafica collegata.
| DF_DTES_ANA_FAT_HOST | EUTA-CB-FL-EU | Tipo documento |
|---|---|---|
| Presente (Cliente) | "U" | DDT tipo "I" |
| Presente (Cliente) | "E" | DDT entrata tipo "R" |
| Presente (Fornitore) | "U" | DDT tipo "I" |
| Presente (Fornitore) | "E" | DDT entrata tipo "C" |
| Non presente | Ininfluente | Prima nota "P" |
Per l'inserimento del documento useremo COGS26 C.4.2.1 Linkage (dati di testata)
| Dato | Contenuto |
|---|---|
| COGS26-OPE | "Inserimento" |
| COGS26-NOTE-1 | DF_DTES_NOTE |
| COGS26-NOTE-2 | |
| COGS26-DATA | DF_DTES_DATA |
| COGS26-MAG | Il codice magazzino collegato a DF_DTES_MAG_MAIN_HOST |
| COGS26-FL-LINK | "N" |
| S26-FL-GIA | "S" |
| S26-DOCUMENTO-LINK | " " |
| S26-DOCUMENTO-CANC | " " |
| S26-QTA-PRD | 0 |
| S26-FL-PROD | "N" |
| S26-ANA-RIF | Dati anagrafici da passare al documento quando necessario |
| Tipo e codice anagrafico collegato a DF_DTES_ANA_FAT_HOST | |
| Codice anagrafico collegato a DF_DTES_ANA_DST_HOST | |
| 0 | |
| S26-FL-MATRICOLE | " " |
| S26-PROD-RAPIDA | "N" |
| S26-TRS-ID | " " |
| S26-CAUSALE | Causale collegata a DF_DTES_CAUSALE |
| S26-USA-PREZZI | "S" |
| S26-FL-TRASFERIMENTO | Se DF-DTES-MAG-TRASF è: |
| S26-MAG-ENT | DF-DTES-MAG-TRASF se non vuoto |
| S26-DOC-TIPO | Il tipo documento ricavato dalla tabella qui sopra (I/R/C/P) |
| S26-PAG-TIP | Tipo e codice pagamento ricavati da DF_DTES_PAGAMENTO |
| S26-PAG-COD | |
| S26-DST-IDX | Id destinazione ricavato da DF_DTES_IND_HOST |
| S26-DIVISA | DF_DTES_DIVISA |
C.4.2.2 TRAN-S26 (movimenti)
| Tabella: TRAN-S26 |
|---|
| Nome campo |
| TRS-S26-RIGA |
| TRS-S26-MERCE |
| TRS-S26-QTA |
| TRS-S26-SEGNO |
| TRS-S26-PREZZO |
| TRS-S26-SCO-1 |
| TRS-S26-SCO-2 |
| TRS-S26-PREZZO-LORDO |
| TRS-S26-IMPORTO |
Al termine aggiornare il record di testata documento:
| Nome campo | Contenuto |
|---|---|
| DF_DTES_AGG_HOST | 0 |
| DF_DTES_AGG_AREA | 0 |
| DF_DTES_KEY_AREA | Chiave del documento creato |
C.4.2.3 Raccordo su COGGENER Creare un raccordo su COGENER
| Nome campo | Contenuto |
|---|---|
| GNR-TIPO | "DH" |
| GNR-PARTE-1 | DF_DTES_KEY_AREA |
| GNR-PARTE-2 | DF_DTES_KEY_HOST |
| GNR-PROG | 0 |
C.4.3 Aggiornamento Se DF_DTES_KEY_AREA non è vuoto: significa che il documento era già stato importato; quindi si dovrà procedere con un aggiornamento: * Cancellazione: come al punto C.4.1 * Inserimento: come al punto C.4.2, passando però a COGS26 il riferimento al numero documento da creare. C.4.4 Modula In tutti i casi di aggiornamento di un documento (inserimento/variazione/cancellazione), effettuare le chiamate a COGD53 - Invio liste a Modula, seguendo le indicazioni spiegate in "Nuova logica di funzionamento" C.4.5 Stampa documento Se il documento inserito o aggiornato è di entrata (tipo "C" o "R"), e la configurazione periferica-stampa-ricevimenti è significativa, effettuare la stampa dell'entrata usando COGD42. D - Sincronizzazione (esportazione) Se DBFST-FL-ATTIVAZIONE = 'I' (solo importazione). segnalare Informazione sul log e skippare questa fase. D.1 Documenti cancellati In questa fase dovremo controllare i documenti di magazzino che sono stati cancellati, usando il log su COGTESBO. Quindi, si dovrà scorrere LOGAGREC usando LGR-CHIA3, a partire dall'ultimo aggiornamento effettuato.
| Nome campo | Contenuto |
|---|---|
| LGR-FILE | "cogtesbo" |
| LGR-DATA | DBFST-UA-DATA |
| LGR-ORA | DBFST-UA-ORA |
Per ciascun record letto cerchiamo il corrispondente record LOGIDREC:
| Nome campo | Contenuto |
|---|---|
| LRR-FILE | "cogtesbo" |
| LGR-ID | LGR-ID-RECORD |
In LRR-CHIAVE troveremo la chiave del documento, corrispondente a TES-CHIA3. Consideriamo i record con LGR-OPERAZIONE = "C" (cancellazione). Verifichiamo se il documento cancellato è già stato esportato, con una ricerca diretta su DFDOCTES, usando DF_DTES_CHIA3, impostando:
| Nome campo | Contenuto |
|---|---|
| DF_DTES_CLASSE | "DM" |
| DF_DTES_KEY_AREA | TES-CHIA3 |
Se il record non esiste, allora il documento non è mai stato esportato, Informazione sul log e skippare. Se il record esiste, allora è già stato esportato: però se è stato generato dall'HOST (DF_DTES_ORIGINE = "H") lo dobbiamo ignorare: Informazione sul log e skippare. Altrimenti dovremo aggiornare DFDOCTES:
| Nome campo | Contenuto |
|---|---|
| DF_DTES_VAL | "C" |
| DF_DTES_AGG_AREA | 1 |
D.2 Esportazione Loop su COGTESAP usando TSA-CHIA2, impostando
| Nome campo | Contenuto |
|---|---|
| TSA-FL-ESPORTATO | " " |
Ciascun record letto corrisponde ad un documento da trattare. D.2.1 Controlli sui documenti da esportare In caso di esclusione di un documento, effettuare comunque l'aggiornamento di TSA-FL-ESPORTATO prima di passare al successivo D.2.1.1 Magazzino Se è configurato il magazzino magazzino-esp-interventi, significa che per il gestionale host i magazzini collegati a questo non esistono; sono i magazzino dove MAGZ-SEDE = magazzino-esp-interventi Quindi, non dovranno essere esportati i trasferimenti tra: * Sede <-> magazzino collegato alla sede * Magazzino collegato alla sede <-> Magazzino collegato alla sede Prima di procedere, verificare se il documento è un trasferimento; se si cercare il documento collegato, e se il trasferimento cade in una di queste due casistiche, skippare il record marcando il documento come esportato. D.2.1.2 Causale documento Se è presente almeno una causale configurata in doc-exp-escludi-causali, i documenti con TES-CAUSALE corrispondente ad una di esse devono essere esclusi D.2.2 Esportazione singolo documento Verifichiamo se il documento inserito/aggiornato è già stato esportato, con una ricerca diretta su DFDOCTES, usando DF_DTES_CHIA3, impostando:
| Nome campo | Contenuto |
|---|---|
| DF_DTES_CLASSE | "DM" |
| DF_DTES_KEY_AREA | TES-CHIA3 |
Se il record esiste, allora è già stato esportato: però se è stato generato dall'HOST (DF_DTES_ORIGINE = "H") lo dobbiamo ignorare: Informazione sul log e skippare. Altrimenti dovremo aggiornare DFDOCTES, quindi cancellare DFDOCDET per tutti i record usando una query, e quindi reinserire DFDOCDET. Se il record non esiste, allora il documento non è mai stato esportato, quindi dovremo inserire DFDOCTES, e quindi inserire DFDOCDET. Verificare se il documento è: * Un documento di chiusura intervento di assistenza * Se raccordato a ASNINDMG con ACIM-TIP = "D" D.2.2.1 Aggiornamento DFDOCTES
| Nome campo | Note |
|---|---|
| DF_DTES_KEY_HOST | in inserimento è vuoto, altrimenti lasciare invariato (potrebbe essere stato già importato dall'HOST e quindi collegato) |
| DT_DTES_ORIGINE | "A" |
| DF_DTES_CLASSE | "DM" |
| DF_DTES_KEY_AREA | TES-CHIA3 |
| DF_DTES_DATA | TES-DATA |
| DF_DTES_MAG_MAIN_HOST | MAGG-CODICE-HOST, trovato leggendo COGMAGAG con: Documento di chiusura intervento assistenza TES-MAG In tutti gli altri casi TES-MAG Applicare lo stesso ragionamento per qualunque documento dove il magazzino: Se vuoto, inviare una Email informativa e skippare |
| DF_DTES_MAG_TRASF_HOST | " " (per ora) |
| DF_DTES_CAUSALE | EUTA-CB-CODICE-HOST, trovato leggendo il record COGTABEL della causale usando TES-CAUSALE Se vuoto, inviare una Email informativa e skippare |
| DF_DTES_PAGAMENTO | Usando TES-RB e TES-PAG1, cercare il corrispondente codice di raccordo su COGGENER, vedi COGD12. Se non trovato, inviare una Email informativa e skippare |
| DF_DTES_FL_FAT | EUTA-CB-CON-FAT (S/N) |
| DF_DTES_ORIG_CLASSE | |
| DF_DTES_ORIG_KEY | A seconda di DF_DTES_ORIG_CLASSE: |
| DF_DTES_ANA_FAT_HOST | se TES-NONNO <> 0 (quindi per tutti i documenti cliente/fornitore), eseguire una ricerca su DFANAGR con una ricerca sulla chiave 3, impostando: Se non trovato inviare una Email informativa e skippare. Altrimenti qui si imposta DF_ANA_KEY_HOST |
| DF_DTES_ANA_DST_HOST | Come sopra, usando TES-PADRE |
| DF_DTES_IND_HOST | se TES-DST-ID-IDX <> 0 eseguire una ricerca su DFINDIR con una ricerca sulla chiave 3, impostando: Se non trovato inviare una Email informativa e skippare. Altrimenti qui si imposta DF_ind_KEY_HOST |
| DF_DTES_ALTRO_TRASF | " " (per ora) |
| DF_DTES_NOTE | TES-DESCR + TES-DESCR1 |
| DF_DTES_DIVISA | TES-CURRENCY |
| DF_DTES_AGENTE_1 | Esportare il codice di raccordo COGANAP2.AAP2-RACCORDO trovato su TES-AGENTE |
| DF_DTES_AGENTE_2 | Esportare il codice di raccordo COGANAP2.AAP2-RACCORDO trovato su TES-AGE2 |
| DF_DTES_VAL | " " |
| DF_DTES_AGG_AREA | 1 |
D.2.2.1 Aggiornamento DFDOCDET In caso di aggiornamento, cancellazione di tutti i record collegati al documento. Poi per ciascuna riga documento (COGMOMAG), inserire una nuova riga:
| Nome campo | Note |
|---|---|
| DF_DDET_KEY_HOST | DF_DTES_KEY_HOST |
| DF_DDET_CLASSE | DF_DTES_CLASSE |
| DF_DDET_KEY_AREA | DF_DTES_KEY_AREA |
| DF_DDET_PROG_AREA | MAG-PROG |
| DF_DDET_SEGNO | MAG-ENTRUSC |
| DF_DDET_MPR_HOST | Codice merce avanzato della merce Cercare su DFMERCIPREST se esiste su DF_MPR_KEY_HOST; se non esiste Se non trovato inviare una Email informativa ma proseguire |
| DF_DDET_QTA | MAG-QTAMAGAZ |
| DF_DDET_PREZZO_LORDO | MAG-PRE-NO-SCO |
| DF_DDET_SCONTO_1 | MAG-SCO1 |
| DF_DDET_SCONTO_2 | MAG-SCO2 |
| DF_DDET_SCONTO_3 | 0 |
| DF_DDET_PREZZO_NETTO | MAG-PREZZO |
| DF_DDET_IMPORTO | MAG-VALORE |
| DF_DDET_NOTE | Descrizioni aggiuntive trovate sulla riga |
| DF_DDET_PROVV_AGENTE_1 | MOA2-PROV-AGE1 |
| DF_DDET_PROVV_AGENTE_2 | MOA2-PROV-AGE2 |
D.2.2.3 Aggiornamento flag esportazione Aggiornare COGTESAP per il documento in elaborazione, impostando
| Nome campo | Note |
|---|---|
| TSA-FL-ESPORTATO | "E" |
E - Chiusura E.1 Rilascio semaforo Aggiornare i record semaforo relativi a DFDOCTES e DFDOCDET, impostando
| Nome campo | Note |
|---|---|
| DF_SMF_USO_AREA | 0 |
E.2 Chiusura tabelle Chiudere le tabella DFDOCTES, DFDOCDET e DFSEMAFORO E.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 |
| DBFST-UA-DATA | Data/ora dell'ultimo record cancellato trovato Se non e' stata effettuata alcuna cancellazione, non aggiornare queste informazioni |
| DBFST-UA-ORA |
Estratto da documentazione interna ClickUp