Vai al contenuto

SWA052 - Esportazione ddt x documentazione Siderpress

Logica generale Estrazione della documentazione x certificazione a fronte dei ddt ancora da estrarre. L'elaborazione sarà divisa in 2 distinte fasi: Fase 1 * Ricerca dei ddt con il flag "da estrarre" * Per ciascun ddt si determinano gli allegati da produrre a fronte del documento, come spiegato in dettaglio successivamente * Una parte di elaborazione verrà fatta direttamente da COGD76SP * Per ciascun allegato da produrre: * Si inserisce/aggiorna un record su COGAREXP * Si determina se l'allegato è producibile, e se è completo * Se è producibile * Si estrae nella cartella di configurazione path-sync-allegati * Si archivia l'allegato * Chiamata a COGD76P che effettua la stessa operazione sugli allegati specifici relativi alle certificazioni Fase 2 * Scansione su COGAREXP degli allegati che devono essere ancora prodotti/esportati, e se le condizioni sono cambiate, si effettuano le operazioni mancanti: * Si determina se l'allegato è producibile, e se è completo * Se è producibile * Si estrae nella cartella di configurazione path-sync-allegati * Si archivia l'allegato * Se è esportabile: * Si esporta l'allegato In sintesi: * Per ciascun ddt elaborazione per la generazione degli allegati, collegati al ddt stesso e agli ordini collegati, secondo le logiche già esistenti in TGL303 e COGD76SP * Estrazione degli stessi allegati nella cartella di sincronizzazione configurata, e creazione della base dati necessaria su KPN, composta da: * ARPALLEGATI - Allegati su documenti * ARPALLPAG - Pagine su allegati * ARPALLDOCUMENTI - Documenti per allegati * ARPALLRACCORDI - Raccordi documenti / allegati Configurazioni possibili

Gruppo Parametro Note
ecommerce path-sync-allegati
abilita taglio-lamiere
arc-ott path-apri-file

Procedure collegate Documentazione certificazione Elaborazione Limitazioni Per il momento questo programma è dedicato a Siderpress: quindi se la configurazione taglio-lamiere non è attiva, uscire. Stato sincronizzazione Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "SWA052"; se il record non esiste, crearlo impostando

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

Per il momento non è necessario l'uso dello stato sincronizzazione, e anche data/ora sono funzionali solo a vedere immediatamente quando il processo è girato. A - Selezione documenti da esportare Il programma dovrà considerare i soli ddt emessi negli ultimi due anni (come data limite 1/1/2017), e considerare quelli non ancora esportati: Scansione di COGTESBO usando la chiave TES-CHIA3, impostando TES-DATA = 2 anni prima di data sistema. Considerare solo: * I ddt di vendita (TES-TIPOB = "I") * Solo i documenti con causale da fatturare a cliente: * EUTA-CB-CON-FAT = "SI" * EUTA-CLIFOR = "C" Cercare quindi COGTESAP. Se il record non esiste, o se esiste e TSA-FL-ALLEGATI-ESP = " ", allora il documento va considerato, e si prosegue nell'elaborazione. Altrimenti il documento si scarta. B - Elaborazione di un singolo documento B.1 Cancellazione logica allegati collegati Si effettua una ricerca su COGAREXP di tutti i record collegati al documento, specificatamente per gli allegati gestiti direttamente da SWA052:

Dato Contenuto
AREX-DOC-TIP K-DOC-TIP-DOC-MAG-CLIENTE (da costanti-tipi-documento.cpy)
AREX-DOC-KEY TES-CHIA3
AREX-ALL-TIP

Per ciascun record trovato si effettua la cancellazione logica B.1 Aggiornamento documento DDT inserire o aggiornare un record su COGAREXP:

Dato Contenuto
AREX-DOC-TIP K-DOC-TIP-DOC-MAG-CLIENTE (da costanti-tipi-documento.cpy)
AREX-DOC-KEY TES-CHIA3
AREX-ALL-TIP "DDT"
AREX-ALL-ID TES-CHIA3
AREX-ARX-PROGRESSIVO Invariato (0 se nuovo)
AREX-FL-PRONTO "S"
AREX-FL-ARCHIVIATO "N"
AREX-FL-ESPORTATO "S"
AREX-FL-COMPLETO "S"
AREX-FL-CANC " "
AREX-NOTE " "

Inserire o aggiornare un record su ARPALLDOCUMENTI:

Dato Contenuto
A_ALD_AZIENDA L'azienda in elaborazione
A_ALD_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALD_DOC_CHIAVE_OR TES-CHIA3
ad esempio "12018I000100"
A_ALD_DOC_CHIAVE_ED TES-CHIA3 editato
ad esempio "1/2018/I/000100"
A_ALD_DOC_DATA TES-DATA
A_ALD_ANA Il riferimento al cliente di fatturazione
A_ALD_ANA_DOC_KEY " "
A_ALD_ANA_DOC_DATA " "
A_ALD_VAL " "
A_ALD_FL_SCARICATO "N"

B.1.1 Rimozione raccordi Se il record ARPALLDOCUMENTI era già presente, potrebbero quindi già esserci raccordi con allegati che andranno rimossi tramite una apposita query: "DELETE FROM arpalldocumenti WHERE a_alr_doc_tipo = k-tipo-doc-mag-cliente AND a_alr_doc_chiave_or = chiave ddt" B.2.1 - Ricerca materie prime (questa parte è sintetica ma molte parti possono essere copiate da TGL303) Scansione delle righe del ddt (COGMOMAG). Per ciascuna riga: * * Ricerca dell'ordine collegato usando COGU09 * Con la riga ordine, ricerca dei nesting usati per il taglio dei particolari collegati alla riga (TGLLNCDT->TGLLNCNS) * Per ciascun nesting trovato, viene memorizzato il codice della materia prima utilizzata in una apposita tabella in cui memorizzare il collegamento a due livelli: * Codice merce materia prima * Chiave ordine a cui è collegato Potrà risultare quindi che ci saranno materie prime collegate a più ordini, ad esempio:

Materia prima Ordine
MP 00001 C201800000010
MP 00002 C201800000010
MP 00002 C201800000020
MP 00003 C201800000030

In questo caso sono state trovate 3 materie prime, collegate in modo diverso a 3 diversi ordini B.2.1.0 - Documento 'ordine' Per ciascun ordine considerato nell'elaborazione, verificare se è presente già il record relativo su ARPALLDOCUMENTI; se non esiste crearlo:

Dato Contenuto
A_ALD_AZIENDA L'azienda in elaborazione
A_ALD_DOC_TIPO k-doc-tip-ordine-cliente
A_ALD_DOC_CHIAVE_OR TOR-CHIA
ad esempio "C201800001230"
A_ALD_DOC_CHIAVE_ED TOR-CHIA editato
ad esempio "C/2018/0000123/0"
A_ALD_DOC_DATA TOR-DATDECOR
A_ALD_ANA Il riferimento al cliente di fatturazione
A_ALD_ANA_DOC_KEY TOR-CNF-NUM
A_ALD_ANA_DOC_DATA TOR-CNF-DATA
A_ALD_VAL " "
A_ALD_FL_SCARICATO "N"

Per ciascun ordine inserire o aggiornare un record su COGAREXP:

Dato Contenuto
AREX-DOC-TIP K-DOC-TIP-DOC-MAG-CLIENTE (da costanti-tipi-documento.cpy)
AREX-DOC-KEY TES-CHIA3
AREX-ALL-TIP "ORC"
AREX-ALL-ID TOR-CHIA1
AREX-ARX-PROGRESSIVO Invariato (0 se nuovo)
AREX-FL-PRONTO "S"
AREX-FL-ARCHIVIATO "N"
AREX-FL-ESPORTATO "S"
AREX-FL-COMPLETO "S"
AREX-FL-CANC " "
AREX-NOTE " "

B.2.1.1 - Estrazione certificati Scansione delle righe della tabella che contiene le materie prime considerate, creata in precedenza B.2.1.2 - Controllo se il certificato è già esportato Per ciascun certificato inserire o aggiornare un record su COGAREXP:

Dato Contenuto
AREX-DOC-TIP K-DOC-TIP-DOC-MAG-CLIENTE (da costanti-tipi-documento.cpy)
AREX-DOC-KEY TES-CHIA3
AREX-ALL-TIP "CM"
AREX-ALL-ID Codice interno merce; es. "MP 00001"
AREX-ARX-PROGRESSIVO Invariato (0 se nuovo)
AREX-FL-PRONTO "S"
AREX-FL-ARCHIVIATO In
AREX-FL-ESPORTATO "S"
AREX-FL-COMPLETO "S"
AREX-FL-CANC " "
AREX-NOTE " "

Se il certificato è già esportato, sarà già presente nella tabella ARPALLEGATI - Allegati su documenti: fare quindi una ricerca tramite query su questa tabella:

Dato Contenuto
A-ALL-AZIENDA Azienda attiva
A-ALL-IMG-TIP-DOC "AM"
A-ALL-IMG-DOC-COGE "_GGSSCCCCC_IM9000" dove


Se il record viene trovato, significa che l'allegato è già stato esportato. Potrebbe pero' non essere più lo stesso: se ad esempio lo stesso documento viene cancellato e reinserito, il riferimento al documento è lo stesso ma progressivo e protocollo sono diversi. Quindi proseguiamo ugualmente fino ad arrivare all'estrazione del singolo certificato. Per ciascun certificato inserire o agiornare un record su COGAREXP:

Dato Contenuto
AREX-DOC-TIP K-DOC-TIP-DOC-MAG-CLIENTE (da costanti-tipi-documento.cpy)
AREX-DOC-KEY TES-CHIA3
AREX-ALL-TIP "CM"
AREX-ALL-ID Codice interno merce; es. "MP 00001"
AREX-ARX-PROGRESSIVO 0
AREX-FL-PRONTO "S"
AREX-FL-ARCHIVIATO "N"
AREX-FL-ESPORTATO "N"
AREX-FL-COMPLETO "S"
AREX-FL-CANC " "
AREX-NOTE " "

B.2.1.3 - Estrazione singolo certificato Per ciascuna merce, viene estratto il certificato dall'archiviazione ottica con una apposita chiamata a COGU06

Dato Contenuto
U06-OPE "ESTRAI-DA-DOC"
U06-FL-INTERNO "D"
U06-TIP-DOC "AM"
U06-DOC-COGE "_GGSSCCCCC_IM9000" dove


Se l'operazione riesce, verrà restituito in U06-FILE il nome del documento estratto, e il progressivo in U06-PROGRESSIVO B.2.1.3.1 - Timbro Usando PDFMDL, al file estratto viene applicato il timbro. Questo rende il documento univoco, e non può essere riutilizzato B.2.1.4 - Inserimento/aggiornamento record ARPALLEGATI e ARPALLPAG Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE "DO" (documento)
A_ALL_SOTTOCLASSE "CM" (certificato merce)
A_ALL_ARX_PROGRESSIVO Vuoto: il documento non corrisponde ad un documento archiviato
A_ALL_IMG_PROTOCOLLO
A_ALL_DES U06-DO-OGGETTO
A_ALL_NUMERO_INTERNO DDT+"-"+MERCE; es:
"12018I001105-MP 09767"
A_ALL_IMG_TIP_DOC "DM" (Documento + merce)
A_ALL_IMG_DOC_COGE A_ALL_NUMERO_INTERNO
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Sottocartella nella forma ANA-tnnnnn
dove tnnnnn è la chiave anagrafica del cliente collegato al DDT.
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. Se tutte le operazioni sono andate a buon fine, aggiornare il record di COGAREXP:

Dato Contenuto
AREX-DOC-TIP K-DOC-TIP-DOC-MAG-CLIENTE (da costanti-tipi-documento.cpy)
AREX-DOC-KEY TES-CHIA3
AREX-ALL-TIP "CM"
AREX-ALL-ID Codice interno merce; es. "MP 00001"
AREX-ARX-PROGRESSIVO 0 (il documento esportato NON corrisponde al documento archiviato poichè è stato applicato il timbro)
AREX-FL-PRONTO "S"
AREX-FL-ARCHIVIATO "N"
AREX-FL-ESPORTATO "S"
AREX-FL-COMPLETO "S"
AREX-FL-CANC " "
AREX-NOTE " "

L'ID allegato deve essere memorizzato in una seconda tabella interna al programma che contiene la relazione tra le materie prime e l'id allegato su cui è stato salvato B.2.1.5 - Collegamento allegato a documenti AREA (ARPALLRACCORDI) L'allegato ora dovrà essere collegato con i documenti interessati: B.2.1.5.1 - Collegamento allegato al ddt

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALR_DOC_CHIAVE_OR TES-CHIA3
ad esempio "12018I000100"
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.2.1.5.2 - Collegamento allegato all'ordine

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-ordine-cliente
A_ALR_DOC_CHIAVE_OR Chiave ordine
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.2.1.5.3 - Esempio Se il ddt elaborato è "12018I000123", facendo riferimento all'esempio indicato sopra al punto B.2.1, su APALLRACCORDI potremmo avere:

A-ALR-DOC-TIPO A-ALR-DOC-CHIAVE-OR A-ALR-ALL-ID Note
DMC 12018I000100 1 Raccordi tra il ddt e gli allegati delle 3 materie prime
DMC 12018I000100 2
DMC 12018I000100 3
ORC C201800000010 1 Raccordi tra gli ordini e gli allegati delle 3 materie prime
ORC C201800000010 2
ORC C201800000020 2
ORC C201800000030 3

B.2.1.6 - Spostamento del file allegato Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati, usando il nome A_ALP_FILE_NAME B.2.2 - Elaborazione modelli certificazione Come prima cosa effettuare una chiamata a COGD76, con i seguenti parametri

Dato Contenuto
COGD76-DOC-TIP "D"
COGD76-DOC Chiave del ddt in elaborazione
COGD76-OPERAZIONE "ESTR-WEB"
COGD76-FILE-TRANSITO Nome del file di transito da creare, comprensivo di data+ora sistema

All'interno del programma saranno eseguite una serie di elaborazioni che: * Generano i documenti PDF necessari alla certificazione nella cartella configurata path-sync-allegati, * Archiviano i documenti nei dossier degli ordini * Creano un file di transito chiamato T-ALLEGATI con l'elenco dei documenti interessati (vedi Operazione "ESTR-WEB" ) Se l'esito dell'elaborazione è negativo, segnalare un errore critico e skippare il documento. Quindi ora dovremo scorrere T-ALLEGATI: ciascun record corrisponde ad un documento da esportare. Per ciascun record quindi ripetere il processo B.2.3 B.2.3 - Esportazione allegato B.2.3.1 - Controllo se l'allegato è già esportato Se l'allegato è già esportato, sarà già presente nella tabella ARPALLEGATI - Allegati su documenti: fare quindi una ricerca tramite query su questa tabella:

Dato Contenuto
A-ALL-AZIENDA Azienda attiva
A-ALL-IMG-TIP-DOC T-ALL-IMG-DOC-TIP
A-ALL-IMG-DOC-COGE T-ALL-IMG-DOC-COGE

Se il record viene trovato, significa che l'allegato è già stato esportato. Potrebbe pero' non essere più lo stesso: se ad esempio lo stesso documento viene cancellato e reinserito, il riferimento al documento è lo stesso ma progressivo e protocollo sono diversi. Quindi proseguiamo ugualmente fino ad arrivare all'estrazione del singolo certificato. B.2.3.2 - Estrazione singolo certificato Chiamata a COGU06:

Dato Contenuto
U06-OPE "ESTRAI-DA-DOC"
U06-FL-INTERNO "D"
U06-TIP-DOC T-ALL-IMG-DOC-TIP
U06-DOC-COGE T-ALL-IMG-DOC-COGE

Se l'operazione riesce, verrà restituito in U06-FILE il nome del documento estratto, e il progressivo in U06-PROGRESSIVO Quindi, se il record su ARPALLEGATI non è stato trovato, o se è stato trovato e A-ALL-PROGRESSIVO <> U06-PROGRESSIVO, è necessario procedere con l'esportazione. B.2.3.3 - Inserimento/aggiornamento record ARPALLEGATI e ARPALLPAG Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE U06-DOC-CLASSE
A_ALL_SOTTOCLASSE U06-DOC-SUBCLASSE
A_ALL_ARX_PROGRESSIVO U06-PROGRESSIVO
A_ALL_IMG_PROTOCOLLO U06-PROTOCOLLO-MANUALE
A_ALL_DES U06-DO-OGGETTO
A_ALL_NUMERO_INTERNO U06-DO-NUM-INT
A_ALL_IMG_TIP_DOC U06-TIP-DOC
A_ALL_IMG_DOC_COGE U06-DOC-COGE
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato l'ordine (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. B.2.3.4 - Collegamento allegato a documenti AREA (ARPALLRACCORDI) L'allegato ora dovrà essere collegato con i documenti interessati: B.2.3.4.1 - Collegamento allegato al ddt

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALR_DOC_CHIAVE_OR TES-CHIA3
ad esempio "12018I000100"
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

Caso particolare: in caso di collegamento tra un allegato "M1801" e il ddt, creo un solo raccordo per ciascun tipo (EXC1...EXC4) B.2.3.4.2 - Collegamento allegato all'ordine

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-ordine-cliente
A_ALR_DOC_CHIAVE_OR T-ALL-ORDINE
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.2.3.5 - Spostamento del file allegato Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati, usando il nome A_ALP_FILE_NAME B.3 - Esportazione stampa ddt Al termine dell'esportazione degli allegati, dobbiamo esportare la stampa del ddt. B.3.1 - Creazione stampa ddt (Questa sezione può essere copiata da ASN575, X-ARCHIVIA-E-STAMPA B.3.1.1 - Preparazione file da archiviare Definire una variabile W-PRINTER, che deve essere valorizzata con il nome del ddt: EXT-TMP-DIR EX-OS-SLASH TES-CHIA3 ".pcl" Assegnare il nome del file alla stampante: set environment "printer" to w-printer Effettuare la cancellazione del file W-PRINTER usando COPIAF, e al termine per avere la certezza che tutto sia corretto, eseguire la FILEINFO sempre con COPIAF, e verificare l'esito. Se negativo, segnalare sul file di log e skippare tutta la fase B.3. B.3.1.2 - Creazione file di stampa Chiamata a COGV52:

Dato Contenuto
V52-FL-ARCHIVIA "ARCHIVIA"
V52-CALLED "COGV52-CALLED"
V542-BOLLA TES-CHIA3

All'uscita con COPIAF testare l'esistenza del file creato (W-PRINTER). Se il file non esiste, segnalare sul file di log e skippare il resto della fase B.3 B.3.1.3 - Esportazione: creazione ARPALLEGATI e ARPALLPAG Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE " "
A_ALL_SOTTOCLASSE " "
A_ALL_ARX_PROGRESSIVO 0
A_ALL_IMG_PROTOCOLLO 0
A_ALL_DES "DDT N. " chiave editata
A_ALL_NUMERO_INTERNO TES-CHIA3
A_ALL_IMG_TIP_DOC "BU"
A_ALL_IMG_DOC_COGE TES-CHIA3
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato l'ordine (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. B.3.1.4 - Esportazione: creazione ARPALLRACCORDI Inserire o aggiornare il raccordo

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALR_DOC_CHIAVE_OR TES-CHIA3
ad esempio "12018I000100"
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.3.1.5 - Spostamento file Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati \ A_ALP_SUBPATH, usando il nome A_ALP_FILE_NAME B.4 - Esportazione stampa conferma d'ordine Per ciascun ordine considerato nell'elaborazione dobbiamo esportare la stampa della conferma d'ordine. B.4.1 - Creazione stampa conferma d'ordine Eseguire una chiamata a COGO65M:

Dato Contenuto
O65M-ORDINE Testata ordine
O65M-OPERAZIONE "ARCHIVIA"
O65M-PROG-MODELLO 0
O65M-NOME-FILE path-apri-file "\ORDINE-" tor-chia ".pdf"

Al termine dell'elaborazione, verificare con COPIAF, operazione "fileinfo" se il file richiesto esiste. Se non esiste, segnalare sul log e skippare il resto dell'elaborazione. B.4.2 - Esportazione: creazione ARPALLEGATI e ARPALLPAG Verificare se esiste l'allegato relativo alla stampa della conferma ordine; ricerca su ARPALLEGATI con una query impostando:

Dato Contenuto
A_ALL_AZIENDA Azienda attiva
A_ALL_IMG_TIP_DOC "OC"
A_ALL_IMG_DOC_COGE TOR-CHIA

Se non esiste deve essere inserito, altrimenti aggiornato. Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE " "
A_ALL_SOTTOCLASSE " "
A_ALL_ARX_PROGRESSIVO 0
A_ALL_IMG_PROTOCOLLO 0
A_ALL_DES "Ordine N. " tor-chia editato
A_ALL_NUMERO_INTERNO TOR-CHIA
A_ALL_IMG_TIP_DOC "OC"
A_ALL_IMG_DOC_COGE TOR-CHIA
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato l'ordine (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. B.4.3 - Esportazione: creazione ARPALLRACCORDI Inserire o aggiornare il raccordo

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-ordine-cliente
A_ALR_DOC_CHIAVE_OR TOR-CHIA
ad esempio "C201800001230"
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.4.4 - Spostamento file Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati \ A_ALP_SUBPATH, usando il nome A_ALP_FILE_NAME B.5 - Esportazione packing list Le packing list sono praticamente le stampe i buoni di prelievo usati durante la preparazione dei pallet per la spedizione dei tubi (i bdp vengono usati anche per le lamiere ma in modo diverso e per il momento non sono considerati). Scansione di COGGENER usando la chiave primaria, impostando

Dato Contenuto
GNR-TIP "BB"
GNR-PARTE-1 TES-CHIA3

Per ciascun record trovato, GNR-PARTE-2 contiene la chiave del BDP. Leggere quindi la prima riga collegata al bdp su COGRIGBP, e valutare RBP-MERCE: se il codice merce inizia per "PR", il bdp riguarda profilati ed è da considerare, altrimenti si passa al successivo. B.5.1 - Creazione stampa packing list Eseguire una chiamata a COGP64:

Dato Contenuto
P64-OPERAZIONE "ARCHIVIA"
P64-FL-STA " "
P64-CALLED "COGP64-CALLED"
P64-BUONO tbp-chia1
P64-NOME-FILE path-apri-file "\BDP-" tbp-chia1 ".pdf"

Al termine dell'elaborazione, verificare con COPIAF, operazione "fileinfo" se il file richiesto esiste. Se non esiste, segnalare sul log e skippare il resto dell'elaborazione. B.5.2 - Esportazione: creazione ARPALLEGATI e ARPALLPAG Verificare se esiste l'allegato relativo alla stampa del buono di prelievo; ricerca su ARPALLEGATI con una query impostando:

Dato Contenuto
A_ALL_AZIENDA Azienda attiva
A_ALL_IMG_TIP_DOC "BP"
A_ALL_IMG_DOC_COGE TBP-CHIA1

Se non esiste deve essere inserito, altrimenti aggiornato. Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE " "
A_ALL_SOTTOCLASSE " "
A_ALL_ARX_PROGRESSIVO 0
A_ALL_IMG_PROTOCOLLO 0
A_ALL_DES "Packing list n. " tbp-chia1 editato
A_ALL_NUMERO_INTERNO TBP-CHIA1
A_ALL_IMG_TIP_DOC "BP"
A_ALL_IMG_DOC_COGE TBP-CHIA1
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato il ddt (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. B.5.3 - Esportazione: creazione ARPALLRACCORDI Inserire o aggiornare il raccordo con il ddt

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALR_DOC_CHIAVE_OR TES-CHIA3
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.5.4 - Spostamento file Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati \ A_ALP_SUBPATH, usando il nome A_ALP_FILE_NAME C - Esportazione documenti collegati a fattura Il programma dovrà considerare le sole fatture attive emesse negli ultimi 2 anni (data limite 1/1/2017), e considerare quelle non ancora esportate: Scansione di COGFATTU usando la chiave FAT-CHIA8, impostando FAT-DAMOV = 2 anni prima di data sistema. Se la data è inferiore a 1/1/2017, questa sarà la data di inizio. Dovranno essere considerate solo le fatture attive: * Ricerca del tipo documento iva FAT-TIP, sulla apposita tabella: * EUTA-TIPO = k-euta-tipo-doc-iva * EUTA-COD = FAT-TIP * Se EUTA-CLIFOTIVA inizia per "C", allora è una fattura attiva (a cliente); quindi proseguire; altrimenti scartare la fattura. Posizionarsi quindi su COGFATT2; se FAT2-FL-ESP-ALLEGATI = 'E', scartare la fattura; altrimenti proseguire. C.1 - Esportazione documenti Per il momento sulla fattura è sufficiente esportare il documento "Fattura" (la stampa della stessa). C.1.1 - Esportazione fattura La fattura esportata dovrà essere già archiviata. Effettuare una chiamata a COGU06:

Dato Contenuto
U06-OPE "ESTRAI-DA-DOC"
U06-FL-INTERNO "D"
U06-TIP-DOC "FC"
U06-DOC-COGE U06-DOC-COGE

Se l'operazione riesce, verrà restituito in U06-FILE il nome del documento estratto, e il progressivo in U06-PROGRESSIVO Se invece queste informazioni sono vuote, eseguiamo direttamente l'archiviazione: C.1.1.1 - Archiviazione fattura (vedi COGD74) C.1.1.1.1 - Stampa su file Impostare la variabile di environment W-PRINTER a "EXT-TMP-DIR EXT-OS-SLASH ChiaveFattura.pdf" Chiamata a COGP41

Dato Contenuto
P41-DA-FATTURA FAT-CHIA1
P41-A-FATTURA FAT-CHIA1
P41-COPIE 1
P41-FL-ARCHIVIA "ARCHIVIA"

Se invece queste informazioni sono vuote, segnalare sul file di log "Fattura xx/xxxx/xxxxxxxx non ancora archiviata" e skippare. C.1.1.1.2 - Archiviazione Il percorso di stampa W-PRINTER deve essere convertito in un formato client, usando COPIAF (operazione "CONVERT-PATH). Chiamata a COGU06

Dato Contenuto
U06-OPE "Inserisci-file"
U06-FL-INTERNO "D"
U06-TIP-DOC "FC"
U06-DOC-COGE U06-DOC-COGE

C.1.2 - Creazione ARPALLDOCUMENTI Inserire o aggiornare un record su ARPALLDOCUMENTI:

Dato Contenuto
A_ALD_AZIENDA L'azienda in elaborazione
A_ALD_DOC_TIPO k-doc-tip-fattura-cliente
A_ALD_DOC_CHIAVE_OR FAT-CHIA1
ad esempio "CL20180000100"
A_ALD_DOC_CHIAVE_ED FAT-CHIA1 editato
ad esempio "CL/2018/0000100"
A_ALD_DOC_DATA FAT-DAMOV
A_ALD_ANA Il riferimento al cliente di fatturazione
A_ALD_ANA_DOC_KEY " "
A_ALD_ANA_DOC_DATA " "
A_ALD_VAL " "
A_ALD_FL_SCARICATO "N"

Quindi, se il record su ARPALLEGATI non è stato trovato, o se è stato trovato e A-ALL-PROGRESSIVO <> U06-PROGRESSIVO, è necessario proseguire con l'esportazione C.1.3 - Inserimento/aggiornamento record ARPALLEGATI e ARPALLPAG Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE U06-DOC-CLASSE
A_ALL_SOTTOCLASSE U06-DOC-SUBCLASSE
A_ALL_ARX_PROGRESSIVO U06-PROGRESSIVO
A_ALL_IMG_PROTOCOLLO U06-PROTOCOLLO-MANUALE
A_ALL_DES U06-DO-OGGETTO
A_ALL_NUMERO_INTERNO U06-DO-NUM-INT
A_ALL_IMG_TIP_DOC U06-TIP-DOC
A_ALL_IMG_DOC_COGE U06-DOC-COGE
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato l'ordine (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. C.1.4 - Inserimento/aggiornamento ARPALLRACCORDI L'allegato ora dovrà essere collegato con il documento fattura

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-fattura-cliente
A_ALR_DOC_CHIAVE_OR FAT-CHIA1
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

C.1.5 - Spostamento del file allegato Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati \ A_ALP_SUBPATH, usando il nome A_ALP_FILE_NAME Z - Inserimento/aggiornamento ARPALLRACCORDI Al termine dell'elaborazione, aggiornare il record APSTATOSYN:

Dato Contenuto
A-SYN-AZIENDA Codice azienda
A-SYN-TABELLA "SWA052"
A-SYN-DA-GES-DATA Data/ora dell'ultimo record aggiornato
A-SYN-DA-GES-ORA

Versione fino a settembre 2023

Logica generale Estrazione della documentazione x certificazione a fronte dei ddt ancora da estrarre. In sintesi: * Ricerca dei ddt con il flag "da estrarre" * Per ciascun ddt elaborazione per la generazione degli allegati, collegati al ddt stesso e agli ordini collegati, secondo le logiche già esistenti in TGL303 e COGD76SP * Estrazione degli stessi allegati nella cartella di sincronizzazione configurata, e creazione della base dati necessaria su KPN, composta da: * ARPALLEGATI - Allegati su documenti * ARPALLPAG - Pagine su allegati * ARPALLDOCUMENTI - Documenti per allegati * ARPALLRACCORDI - Raccordi documenti / allegati Configurazioni possibili

Gruppo Parametro Note
ecommerce path-sync-allegati
abilita taglio-lamiere
arc-ott path-apri-file

Procedure collegate Documentazione certificazione Elaborazione Limitazioni Per il momento questo programma è dedicato a Siderpress: quindi se la configurazione taglio-lamiere non è attiva, uscire. Stato sincronizzazione Su POSTGRES, tabella APSTATOSYN, leggere il record relativo alla tabella/oggetto da sincronizzare "SWA052"; se il record non esiste, crearlo impostando

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

Per il momento non è necessario l'uso dello stato sincronizzazione, e anche data/ora sono funzionali solo a vedere immediatamente quando il processo è girato. A - Selezione documenti da esportare Il programma dovrà considerare i soli ddt emessi negli ultimi due anni (come data limite 1/1/2017), e considerare quelli non ancora esportati: Scansione di COGTESBO usando la chiave TES-CHIA3, impostando TES-DATA = 2 anni prima di data sistema. Considerare solo: * I ddt di vendita (TES-TIPOB = "I") * Solo i documenti con causale da fatturare a cliente: * EUTA-CB-CON-FAT = "SI" * EUTA-CLIFOR = "C" Cercare quindi COGTESAP. Se il record non esiste, o se esiste e TSA-FL-ALLEGATI-ESP = " ", allora il documento va considerato, e si prosegue nell'elaborazione. Altrimenti il documento si scarta. B - Elaborazione di un singolo documento B.1 Aggiornamento documento Inserire o aggiornare un record su ARPALLDOCUMENTI:

Dato Contenuto
A_ALD_AZIENDA L'azienda in elaborazione
A_ALD_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALD_DOC_CHIAVE_OR TES-CHIA3
ad esempio "12018I000100"
A_ALD_DOC_CHIAVE_ED TES-CHIA3 editato
ad esempio "1/2018/I/000100"
A_ALD_DOC_DATA TES-DATA
A_ALD_ANA Il riferimento al cliente di fatturazione
A_ALD_ANA_DOC_KEY " "
A_ALD_ANA_DOC_DATA " "
A_ALD_VAL " "
A_ALD_FL_SCARICATO "N"

B.1.1 Rimozione raccordi Se il record ARPALLDOCUMENTI era già presente, potrebbero quindi già esserci raccordi con allegati che andranno rimossi tramite una apposita query: "DELETE FROM arpalldocumenti WHERE a_alr_doc_tipo = k-tipo-doc-mag-cliente AND a_alr_doc_chiave_or = chiave ddt" B.2.1 - Ricerca materie prime (questa parte è sintetica ma molte parti possono essere copiate da TGL303) Scansione delle righe del ddt (COGMOMAG). Per ciascuna riga: * * Ricerca dell'ordine collegato usando COGU09 * Con la riga ordine, ricerca dei nesting usati per il taglio dei particolari collegati alla riga (TGLLNCDT->TGLLNCNS) * Per ciascun nesting trovato, viene memorizzato il codice della materia prima utilizzata in una apposita tabella in cui memorizzare il collegamento a due livelli: * Codice merce materia prima * Chiave ordine a cui è collegato Potrà risultare quindi che ci saranno materie prime collegate a più ordini, ad esempio:

Materia prima Ordine
MP 00001 C201800000010
MP 00002 C201800000010
MP 00002 C201800000020
MP 00003 C201800000030

In questo caso sono state trovate 3 materie prime, collegate in modo diverso a 3 diversi ordini B.2.1.0 - Documento 'ordine' Per ciascun ordine considerato nell'elaborazione, verificare se è presente già il record relativo su ARPALLDOCUMENTI; se non esiste crearlo:

Dato Contenuto
A_ALD_AZIENDA L'azienda in elaborazione
A_ALD_DOC_TIPO k-doc-tip-ordine-cliente
A_ALD_DOC_CHIAVE_OR TOR-CHIA
ad esempio "C201800001230"
A_ALD_DOC_CHIAVE_ED TOR-CHIA editato
ad esempio "C/2018/0000123/0"
A_ALD_DOC_DATA TOR-DATDECOR
A_ALD_ANA Il riferimento al cliente di fatturazione
A_ALD_ANA_DOC_KEY TOR-CNF-NUM
A_ALD_ANA_DOC_DATA TOR-CNF-DATA
A_ALD_VAL " "
A_ALD_FL_SCARICATO "N"

B.2.1.1 - Estrazione certificati Scansione delle righe della tabella che contiene le materie prime considerate, creata in precedenza B.2.1.2 - Controllo se il certificato è già esportato Se il certificato è già esportato, sarà già presente nella tabella ARPALLEGATI - Allegati su documenti: fare quindi una ricerca tramite query su questa tabella:

Dato Contenuto
A-ALL-AZIENDA Azienda attiva
A-ALL-IMG-TIP-DOC "AM"
A-ALL-IMG-DOC-COGE "_GGSSCCCCC_IM9000" dove


Se il record viene trovato, significa che l'allegato è già stato esportato. Potrebbe pero' non essere più lo stesso: se ad esempio lo stesso documento viene cancellato e reinserito, il riferimento al documento è lo stesso ma progressivo e protocollo sono diversi. Quindi proseguiamo ugualmente fino ad arrivare all'estrazione del singolo certificato. B.2.1.3 - Estrazione singolo certificato Per ciascuna merce, viene estratto il certificato dall'archiviazione ottica con una apposita chiamata a COGU06

Dato Contenuto
U06-OPE "ESTRAI-DA-DOC"
U06-FL-INTERNO "D"
U06-TIP-DOC "AM"
U06-DOC-COGE "_GGSSCCCCC_IM9000" dove


Se l'operazione riesce, verrà restituito in U06-FILE il nome del documento estratto, e il progressivo in U06-PROGRESSIVO B.2.1.3.1 - Timbro Usando PDFMDL, al file estratto viene applicato il timbro. Questo rende il documento univoco, e non può essere riutilizzato B.2.1.4 - Inserimento/aggiornamento record ARPALLEGATI e ARPALLPAG Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE "DO" (documento)
A_ALL_SOTTOCLASSE "CM" (certificato merce)
A_ALL_ARX_PROGRESSIVO Vuoto: il documento non corrisponde ad un documento archiviato
A_ALL_IMG_PROTOCOLLO
A_ALL_DES U06-DO-OGGETTO
A_ALL_NUMERO_INTERNO DDT+"-"+MERCE; es:
"12018I001105-MP 09767"
A_ALL_IMG_TIP_DOC "DM" (Documento + merce)
A_ALL_IMG_DOC_COGE A_ALL_NUMERO_INTERNO
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Sottocartella nella forma ANA-tnnnnn
dove tnnnnn è la chiave anagrafica del cliente collegato al DDT.
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. L'ID allegato deve essere memorizzato in una seconda tabella interna al programma che contiene la relazione tra le materie prime e l'id allegato su cui è stato salvato B.2.1.5 - Collegamento allegato a documenti AREA (ARPALLRACCORDI) L'allegato ora dovrà essere collegato con i documenti interessati: B.2.1.5.1 - Collegamento allegato al ddt

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALR_DOC_CHIAVE_OR TES-CHIA3
ad esempio "12018I000100"
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.2.1.5.2 - Collegamento allegato all'ordine

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-ordine-cliente
A_ALR_DOC_CHIAVE_OR Chiave ordine
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.2.1.5.3 - Esempio Se il ddt elaborato è "12018I000123", facendo riferimento all'esempio indicato sopra al punto B.2.1, su APALLRACCORDI potremmo avere:

A-ALR-DOC-TIPO A-ALR-DOC-CHIAVE-OR A-ALR-ALL-ID Note
DMC 12018I000100 1 Raccordi tra il ddt e gli allegati delle 3 materie prime
DMC 12018I000100 2
DMC 12018I000100 3
ORC C201800000010 1 Raccordi tra gli ordini e gli allegati delle 3 materie prime
ORC C201800000010 2
ORC C201800000020 2
ORC C201800000030 3

B.2.1.6 - Spostamento del file allegato Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati, usando il nome A_ALP_FILE_NAME B.2.2 - Elaborazione modelli certificazione Come prima cosa effettuare una chiamata a COGD76, con i seguenti parametri

Dato Contenuto
COGD76-DOC-TIP "D"
COGD76-DOC Chiave del ddt in elaborazione
COGD76-OPERAZIONE "ESTR-WEB"
COGD76-FILE-TRANSITO Nome del file di transito da creare, comprensivo di data+ora sistema

All'interno del programma saranno eseguite una serie di elaborazioni che: * Generano i documenti PDF necessari alla certificazione nella cartella configurata path-sync-allegati, * Archiviano i documenti nei dossier degli ordini * Creano un file di transito chiamato T-ALLEGATI con l'elenco dei documenti interessati (vedi Operazione "ESTR-WEB" ) Se l'esito dell'elaborazione è negativo, segnalare un errore critico e skippare il documento. In questo modo dobr Quindi ora dovremo scorrere T-ALLEGATI: ciascun record corrisponde ad un documento da esportare. Per ciascun record quindi ripetere il processo B.2.3 B.2.3 - Esportazione allegato B.2.3.1 - Controllo se l'allegato è già esportato Se l'allegato è già esportato, sarà già presente nella tabella ARPALLEGATI - Allegati su documenti: fare quindi una ricerca tramite query su questa tabella:

Dato Contenuto
A-ALL-AZIENDA Azienda attiva
A-ALL-IMG-TIP-DOC T-ALL-IMG-DOC-TIP
A-ALL-IMG-DOC-COGE T-ALL-IMG-DOC-COGE

Se il record viene trovato, significa che l'allegato è già stato esportato. Potrebbe pero' non essere più lo stesso: se ad esempio lo stesso documento viene cancellato e reinserito, il riferimento al documento è lo stesso ma progressivo e protocollo sono diversi. Quindi proseguiamo ugualmente fino ad arrivare all'estrazione del singolo certificato. B.2.3.2 - Estrazione singolo certificato Chiamata a COGU06:

Dato Contenuto
U06-OPE "ESTRAI-DA-DOC"
U06-FL-INTERNO "D"
U06-TIP-DOC T-ALL-IMG-DOC-TIP
U06-DOC-COGE T-ALL-IMG-DOC-COGE

Se l'operazione riesce, verrà restituito in U06-FILE il nome del documento estratto, e il progressivo in U06-PROGRESSIVO Quindi, se il record su ARPALLEGATI non è stato trovato, o se è stato trovato e A-ALL-PROGRESSIVO <> U06-PROGRESSIVO, è necessario procedere con l'esportazione. B.2.3.3 - Inserimento/aggiornamento record ARPALLEGATI e ARPALLPAG Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE U06-DOC-CLASSE
A_ALL_SOTTOCLASSE U06-DOC-SUBCLASSE
A_ALL_ARX_PROGRESSIVO U06-PROGRESSIVO
A_ALL_IMG_PROTOCOLLO U06-PROTOCOLLO-MANUALE
A_ALL_DES U06-DO-OGGETTO
A_ALL_NUMERO_INTERNO U06-DO-NUM-INT
A_ALL_IMG_TIP_DOC U06-TIP-DOC
A_ALL_IMG_DOC_COGE U06-DOC-COGE
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato l'ordine (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. B.2.3.4 - Collegamento allegato a documenti AREA (ARPALLRACCORDI) L'allegato ora dovrà essere collegato con i documenti interessati: B.2.3.4.1 - Collegamento allegato al ddt

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALR_DOC_CHIAVE_OR TES-CHIA3
ad esempio "12018I000100"
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

Caso particolare: in caso di collegamento tra un allegato "M1801" e il ddt, creo un solo raccordo per ciascun tipo (EXC1...EXC4) B.2.3.4.2 - Collegamento allegato all'ordine

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-ordine-cliente
A_ALR_DOC_CHIAVE_OR T-ALL-ORDINE
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.2.3.5 - Spostamento del file allegato Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati, usando il nome A_ALP_FILE_NAME B.3 - Esportazione stampa ddt Al termine dell'esportazione degli allegati, dobbiamo esportare la stampa del ddt. B.3.1 - Creazione stampa ddt (Questa sezione può essere copiata da ASN575, X-ARCHIVIA-E-STAMPA B.3.1.1 - Preparazione file da archiviare Definire una variabile W-PRINTER, che deve essere valorizzata con il nome del ddt: EXT-TMP-DIR EX-OS-SLASH TES-CHIA3 ".pcl" Assegnare il nome del file alla stampante: set environment "printer" to w-printer Effettuare la cancellazione del file W-PRINTER usando COPIAF, e al termine per avere la certezza che tutto sia corretto, eseguire la FILEINFO sempre con COPIAF, e verificare l'esito. Se negativo, segnalare sul file di log e skippare tutta la fase B.3. B.3.1.2 - Creazione file di stampa Chiamata a COGV52:

Dato Contenuto
V52-FL-ARCHIVIA "ARCHIVIA"
V52-CALLED "COGV52-CALLED"
V542-BOLLA TES-CHIA3

All'uscita con COPIAF testare l'esistenza del file creato (W-PRINTER). Se il file non esiste, segnalare sul file di log e skippare il resto della fase B.3 B.3.1.3 - Esportazione: creazione ARPALLEGATI e ARPALLPAG Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE " "
A_ALL_SOTTOCLASSE " "
A_ALL_ARX_PROGRESSIVO 0
A_ALL_IMG_PROTOCOLLO 0
A_ALL_DES "DDT N. " chiave editata
A_ALL_NUMERO_INTERNO TES-CHIA3
A_ALL_IMG_TIP_DOC "BU"
A_ALL_IMG_DOC_COGE TES-CHIA3
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato l'ordine (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. B.3.1.4 - Esportazione: creazione ARPALLRACCORDI Inserire o aggiornare il raccordo

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALR_DOC_CHIAVE_OR TES-CHIA3
ad esempio "12018I000100"
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.3.1.5 - Spostamento file Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati \ A_ALP_SUBPATH, usando il nome A_ALP_FILE_NAME B.4 - Esportazione stampa conferma d'ordine Per ciascun ordine considerato nell'elaborazione dobbiamo esportare la stampa della conferma d'ordine. B.4.1 - Creazione stampa conferma d'ordine Eseguire una chiamata a COGO65M:

Dato Contenuto
O65M-ORDINE Testata ordine
O65M-OPERAZIONE "ARCHIVIA"
O65M-PROG-MODELLO 0
O65M-NOME-FILE path-apri-file "\ORDINE-" tor-chia ".pdf"

Al termine dell'elaborazione, verificare con COPIAF, operazione "fileinfo" se il file richiesto esiste. Se non esiste, segnalare sul log e skippare il resto dell'elaborazione. B.4.2 - Esportazione: creazione ARPALLEGATI e ARPALLPAG Verificare se esiste l'allegato relativo alla stampa della conferma ordine; ricerca su ARPALLEGATI con una query impostando:

Dato Contenuto
A_ALL_AZIENDA Azienda attiva
A_ALL_IMG_TIP_DOC "OC"
A_ALL_IMG_DOC_COGE TOR-CHIA

Se non esiste deve essere inserito, altrimenti aggiornato. Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE " "
A_ALL_SOTTOCLASSE " "
A_ALL_ARX_PROGRESSIVO 0
A_ALL_IMG_PROTOCOLLO 0
A_ALL_DES "Ordine N. " tor-chia editato
A_ALL_NUMERO_INTERNO TOR-CHIA
A_ALL_IMG_TIP_DOC "OC"
A_ALL_IMG_DOC_COGE TOR-CHIA
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato l'ordine (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. B.4.3 - Esportazione: creazione ARPALLRACCORDI Inserire o aggiornare il raccordo

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-ordine-cliente
A_ALR_DOC_CHIAVE_OR TOR-CHIA
ad esempio "C201800001230"
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.4.4 - Spostamento file Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati \ A_ALP_SUBPATH, usando il nome A_ALP_FILE_NAME B.5 - Esportazione packing list Le packing list sono praticamente le stampe i buoni di prelievo usati durante la preparazione dei pallet per la spedizione dei tubi (i bdp vengono usati anche per le lamiere ma in modo diverso e per il momento non sono considerati). Scansione di COGGENER usando la chiave primaria, impostando

Dato Contenuto
GNR-TIP "BB"
GNR-PARTE-1 TES-CHIA3

Per ciascun record trovato, GNR-PARTE-2 contiene la chiave del BDP. Leggere quindi la prima riga collegata al bdp su COGRIGBP, e valutare RBP-MERCE: se il codice merce inizia per "PR", il bdp riguarda profilati ed è da considerare, altrimenti si passa al successivo. B.5.1 - Creazione stampa packing list Eseguire una chiamata a COGP64:

Dato Contenuto
P64-OPERAZIONE "ARCHIVIA"
P64-FL-STA " "
P64-CALLED "COGP64-CALLED"
P64-BUONO tbp-chia1
P64-NOME-FILE path-apri-file "\BDP-" tbp-chia1 ".pdf"

Al termine dell'elaborazione, verificare con COPIAF, operazione "fileinfo" se il file richiesto esiste. Se non esiste, segnalare sul log e skippare il resto dell'elaborazione. B.5.2 - Esportazione: creazione ARPALLEGATI e ARPALLPAG Verificare se esiste l'allegato relativo alla stampa del buono di prelievo; ricerca su ARPALLEGATI con una query impostando:

Dato Contenuto
A_ALL_AZIENDA Azienda attiva
A_ALL_IMG_TIP_DOC "BP"
A_ALL_IMG_DOC_COGE TBP-CHIA1

Se non esiste deve essere inserito, altrimenti aggiornato. Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE " "
A_ALL_SOTTOCLASSE " "
A_ALL_ARX_PROGRESSIVO 0
A_ALL_IMG_PROTOCOLLO 0
A_ALL_DES "Packing list n. " tbp-chia1 editato
A_ALL_NUMERO_INTERNO TBP-CHIA1
A_ALL_IMG_TIP_DOC "BP"
A_ALL_IMG_DOC_COGE TBP-CHIA1
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato il ddt (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. B.5.3 - Esportazione: creazione ARPALLRACCORDI Inserire o aggiornare il raccordo con il ddt

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-doc-mag-cliente
A_ALR_DOC_CHIAVE_OR TES-CHIA3
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

B.5.4 - Spostamento file Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati \ A_ALP_SUBPATH, usando il nome A_ALP_FILE_NAME C - Esportazione documenti collegati a fattura Il programma dovrà considerare le sole fatture attive emesse negli ultimi 2 anni (data limite 1/1/2017), e considerare quelle non ancora esportate: Scansione di COGFATTU usando la chiave FAT-CHIA8, impostando FAT-DAMOV = 2 anni prima di data sistema. Se la data è inferiore a 1/1/2017, questa sarà la data di inizio. Dovranno essere considerate solo le fatture attive: * Ricerca del tipo documento iva FAT-TIP, sulla apposita tabella: * EUTA-TIPO = k-euta-tipo-doc-iva * EUTA-COD = FAT-TIP * Se EUTA-CLIFOTIVA inizia per "C", allora è una fattura attiva (a cliente); quindi proseguire; altrimenti scartare la fattura. Posizionarsi quindi su COGFATT2; se FAT2-FL-ESP-ALLEGATI = 'E', scartare la fattura; altrimenti proseguire. C.1 - Esportazione documenti Per il momento sulla fattura è sufficiente esportare il documento "Fattura" (la stampa della stessa). C.1.1 - Esportazione fattura La fattura esportata dovrà essere già archiviata. Effettuare una chiamata a COGU06:

Dato Contenuto
U06-OPE "ESTRAI-DA-DOC"
U06-FL-INTERNO "D"
U06-TIP-DOC "FC"
U06-DOC-COGE U06-DOC-COGE

Se l'operazione riesce, verrà restituito in U06-FILE il nome del documento estratto, e il progressivo in U06-PROGRESSIVO Se invece queste informazioni sono vuote, eseguiamo direttamente l'archiviazione: C.1.1.1 - Archiviazione fattura (vedi COGD74) C.1.1.1.1 - Stampa su file Impostare la variabile di environment W-PRINTER a "EXT-TMP-DIR EXT-OS-SLASH ChiaveFattura.pdf" Chiamata a COGP41

Dato Contenuto
P41-DA-FATTURA FAT-CHIA1
P41-A-FATTURA FAT-CHIA1
P41-COPIE 1
P41-FL-ARCHIVIA "ARCHIVIA"

Se invece queste informazioni sono vuote, segnalare sul file di log "Fattura xx/xxxx/xxxxxxxx non ancora archiviata" e skippare. C.1.1.1.2 - Archiviazione Il percorso di stampa W-PRINTER deve essere convertito in un formato client, usando COPIAF (operazione "CONVERT-PATH). Chiamata a COGU06

Dato Contenuto
U06-OPE "Inserisci-file"
U06-FL-INTERNO "D"
U06-TIP-DOC "FC"
U06-DOC-COGE U06-DOC-COGE

C.1.2 - Creazione ARPALLDOCUMENTI Inserire o aggiornare un record su ARPALLDOCUMENTI:

Dato Contenuto
A_ALD_AZIENDA L'azienda in elaborazione
A_ALD_DOC_TIPO k-doc-tip-fattura-cliente
A_ALD_DOC_CHIAVE_OR FAT-CHIA1
ad esempio "CL20180000100"
A_ALD_DOC_CHIAVE_ED FAT-CHIA1 editato
ad esempio "CL/2018/0000100"
A_ALD_DOC_DATA FAT-DAMOV
A_ALD_ANA Il riferimento al cliente di fatturazione
A_ALD_ANA_DOC_KEY " "
A_ALD_ANA_DOC_DATA " "
A_ALD_VAL " "
A_ALD_FL_SCARICATO "N"

Quindi, se il record su ARPALLEGATI non è stato trovato, o se è stato trovato e A-ALL-PROGRESSIVO <> U06-PROGRESSIVO, è necessario proseguire con l'esportazione C.1.3 - Inserimento/aggiornamento record ARPALLEGATI e ARPALLPAG Inserire o aggiornare ARPALLEGATI, impostando

Dato Contenuto
A_ALL_ID Non valorizzato (autoincrement)
A_ALL_AZIENDA Azienda attiva
A_ALL_CLASSE U06-DOC-CLASSE
A_ALL_SOTTOCLASSE U06-DOC-SUBCLASSE
A_ALL_ARX_PROGRESSIVO U06-PROGRESSIVO
A_ALL_IMG_PROTOCOLLO U06-PROTOCOLLO-MANUALE
A_ALL_DES U06-DO-OGGETTO
A_ALL_NUMERO_INTERNO U06-DO-NUM-INT
A_ALL_IMG_TIP_DOC U06-TIP-DOC
A_ALL_IMG_DOC_COGE U06-DOC-COGE
A_ALL_VAL " "

Se il record è stato appena inserito, rileggerlo per avere corrente A_ALL_ID (la chiave di inserimento). Inserimento/variazione ARPALLPAG

Dato Contenuto
A_ALP_ALL_ID A_ALL_ID
A_ALP_PAGINA 1
A_ALP_AZIENDA Azienda attiva
A_ALP_FILE_EXT L'estensione originale del file
A_ALP_FILE_NAME In caso di:
Inserimento

CRYPT"

Modifica

A_ALP_SUBPATH Chiave anagrafica a cui è collegato l'ordine (ad esempio "ANA-C01234"
A_ALP_VAL " "
A_ALP_DIMENSIONE Dimensione del file da trasferire
A_ALP_FL_SCARICATO "N"

In magenta i dati da aggiornare in caso di variazione. C.1.4 - Inserimento/aggiornamento ARPALLRACCORDI L'allegato ora dovrà essere collegato con il documento fattura

Dato Contenuto
A_ALR_AZIENDA Azienda attiva
A_ALR_DOC_TIPO k-doc-tip-fattura-cliente
A_ALR_DOC_CHIAVE_OR FAT-CHIA1
A_ALR_ALL_ID A_ALL_ID
A_ALR_VAL " "

C.1.5 - Spostamento del file allegato Quindi, spostare il file estratto nel percorso configurato in path-sync-allegati \ A_ALP_SUBPATH, usando il nome A_ALP_FILE_NAME Z - Inserimento/aggiornamento ARPALLRACCORDI Al termine dell'elaborazione, aggiornare il record APSTATOSYN:

Dato Contenuto
A-SYN-AZIENDA Codice azienda
A-SYN-TABELLA "SWA052"
A-SYN-DA-GES-DATA Data/ora dell'ultimo record aggiornato
A-SYN-DA-GES-ORA

Estratto da documentazione interna ClickUp


Divergenze note rispetto al codice (aggiornamento 2026-03-11)

Confronto con sorgente swa052.cbl:

  1. Nessuna scansione inversa: il codice non contiene READ PREVIOUS
  2. COGU06: chiamato in 4 punti per estrazione certificati
  3. COGD74: auto-archiviazione con pattern COGD74-CALLED
  4. Conversione PCL a PDF: presente nel flusso fatture
  5. Tipi VT e TRACE: tipi allegato gestiti in bx-all-tip
  6. PDFREADER: parametro PDFREADER-PRG letto da COGCNF
  7. COGAREXP: 5+ sezioni helper per gestione record
  8. Sezione storica: estratta da ClickUp, potrebbe non essere allineata