ARC013 - Archiviazione remota fatture XML¶
Sorgente: cbl/arc013.cbl | Tipo: Programma interattivo GUI + elaborazione batch (anche richiamabile via CALL) | Program-ID: ARC013
Menu:
- Sistema > Archiviazione documentale
Scopo¶
Copia i file XML delle fatture elettroniche (attive e passive) dalle cartelle di lavoro locali a una cartella "server" di transito, per la loro archiviazione remota (archiviazione ottica documentale). Per ogni fattura elettronica non ancora archiviata individua il file XML prodotto in fase di fatturazione, ne verifica l'esistenza e lo copia rinominandolo con la chiave della fattura.
Il programma opera in due modalita':
- Batch da menu (
dep-tipo = "D"): scandisce tutte le fatture elettroniche presenti, mostra un contatore a video (fatture attive / passive elaborate) e, al termine, segnala eventuali anomalie tramite il log di debug consultabile. - Singola fattura (richiamato via CALL da un altro programma): elabora la sola fattura passata nei parametri di linkage (
utilarc013.cpy), tipicamente per archiviare al volo una fattura appena emessa/ricevuta.
L'archiviazione avviene solo se la relativa classe di archiviazione ottica (fatture clienti / fatture fornitori) risulta configurata per l'archiviazione remota nell'anagrafica argomenti documentali (COGARGDO).
Struttura del programma¶
Modalita' di avvio (apri)¶
z-99-init-program, lettura del parametrowo-parametroindep-tipo("D"= esecuzione da menu con maschera).- Se i parametri di linkage indicano una chiamata da altro programma (
arc013-called = k-program-idearc013-callervalorizzato), impostaw-dc-called = "S"e memorizza tipo documento e chiave fattura inw-util-arc013. x99-confi(lettura configurazioni RNEWCONF),ctr-abil, avvio log di debug (gesdebug-loadconf/gesdebug-apri-principale),rd-azi,open-files,a2-cerca-classe-arc-ott.- Se
w-dc-called = "S": esegueelabora-singola, chiude il debug e termina. - Altrimenti: apre la maschera "Archiviazione remota fatture XML" e attende l'interazione (paragrafo
a4).
Elaborazione batch (a4 -> a1-01-loop)¶
- Se
dep-tipo = "D"chiede conferma ("Confermi Archiviazione remota fatture XML ?"): senza F3 termina. - Scandisce COGFTETS (testate fatture elettroniche) dall'inizio (
st-cogftets-notmin+rdnxt-cogftets). - Filtra i record: considera solo
ftets-doc-tip = "F"(attiva) o"P"(passiva); scarta i tipi documento di autofattura/integrazioneTD16,TD17,TD18,TD19,TD28. - Legge la fattura in COGFATTU (per le attive con
fat-tip/ann/num, per le passive confat-chia1daftets-key-doc-area); se non trovata registra la segnalazione e prosegue. - Legge/crea i dati aggiuntivi in COGFATT2: se assente lo inserisce con
fat2-fl-esportataa spazi. - Elabora solo le fatture non ancora esportate (
fat2-fl-esportataa spazi oppure"E"). - In base al tipo documento chiama
b2-xml-attiva(attiva) ob3-xml-passiva(passiva). - Al termine (
a1-01-ex): aggiorna i contatori a video, scrive nel log il totale elaborato e, se ci sono segnalazioni, apre la consultazione del log.
Elaborazione singola (elabora-singola)¶
Legge la fattura da w-arc013-fat, allinea/aggiorna COGFATT2 (azzera fat2-fl-esportata), quindi ricerca la testata elettronica in COGFTETS e invoca b3-xml-passiva (tipo "P") oppure b2-xml-attiva (tipo "F").
Copia del file XML (b2-xml-attiva / b3-xml-passiva)¶
Entrambi i paragrafi:
- Compongono il percorso sorgente del file XML combinando la cartella di output configurata e
ftets-nome-assegnato: - Attiva (
b2): la cartella dipende daftets-fte-tipo— canale PA (FPA/AFPA/APPA/NPA/NDPA/PPA) usaedi-output-dir, altrimenti la cartella B2B; per le fatture di consorzio (az-consorzi = "S") o documenti"C"il nome file e' diretto, altrimenti il percorso include sottocartelleAAAA/MMricavate dalla data documento. - Passiva (
b3): usa la cartella backup input intermediario; searc-fatt-passive = "P"il file gestito e' il.xml.pdf(sostituzione.xml→.xml.pdf). - Verificano l'esistenza del file (COPIAF operazione
fileinfo); se manca registrano la segnalazione. - Copiano il file (COPIAF operazione
copy) nella cartella server di transito, rinominandolo in<path-temp>/<fat-chia1>.xml(minuscolo). Per le passive conarc-fatt-passive = "P"la destinazione diventa.pdf. - Incrementano i contatori
tm-nr-attive/tm-nr-passivee aggiornano il video ogni 100 elaborazioni.
L'archiviazione attiva viene eseguita solo se w-classe-arc-ott-c = "S" (classe fatture clienti abilitata all'archiviazione remota).
Ricerca classi archiviazione ottica (a2-cerca-classe-arc-ott)¶
Scandisce COGARGDO a livello "1" e legge il flag arg-archiviazione-remota per le classi k-arcott-classe-fatture-fornitori (→ w-classe-arc-ott-f) e k-arcott-classe-fatture-clienti (→ w-classe-arc-ott-c).
Tabelle e file¶
| File logico | Chiave / accesso | Descrizione |
|---|---|---|
| FEURTAB | - | Tabella di sistema |
| COGFTETS | primaria; secondaria .k06 (ftets-key-doc-area) |
Testate fatture elettroniche (tipo documento, tipo FTE, nome file assegnato, data) |
| COGFATTU | fat-tip+fat-ann+fat-num / fat-chia1 |
Testate fatture (attive e passive) |
| COGFATT2 | fat2-tip+fat2-ann+fat2-num |
Dati aggiuntivi fattura (flag esportata fat2-fl-esportata) |
| COGARGDO | arg-livello+arg-classe |
Anagrafica argomenti/classi documentali (flag arg-archiviazione-remota) |
COPY incluse¶
Working-Storage¶
arc013.wrk, arc013.imppredf-wrk, arc013.tm, l-copiaf.cpy, wgrave.cpy, wnscr.cpy, wopenf.cpy, wstato.cpy, cogazien.cpy, utilncnf.cpy, utilimppredf.cpy, utildlg.cpy, utilgesdebug.cpy, utilgesstr.cpy, costanti-arcott.cpy
Linkage¶
wcont.cpy, u-copiaf.cpy, utilarc013.cpy, wcont1.cpy
Procedure Division¶
arc013.decla, arc013-01.scr (screen), grave.cpy, mmmask.cpy, opengen.cpy, stato.cpy, stato1.cpy, winmsg.cpy, gesdebug.cpy, cogftets.k06, arc013.prc, arc013.imppredf
CALL a sottoprogrammi¶
| Programma | Scopo |
|---|---|
| COPIAF | Verifica esistenza (fileinfo), copia (copy) ed eventuale cancellazione (delete) dei file XML tra postazione client e cartella server |
| RNEWCONF | Lettura delle chiavi di configurazione (percorsi cartelle e opzioni) |
Configurazioni RNEWCONF¶
Lette nel paragrafo x99-confi (pacchetto coge):
| Gruppo | Chiave | Uso |
|---|---|---|
| arc-ott | path-temp-fatture |
Cartella server di transito per i file XML archiviati (se vuota: TMP-DIR/park/fatture) |
| fatturaz | edi-output-dir |
Cartella di output XML per il canale PA/EDI |
| fatturaz | fte-cartella-output-b2b |
Cartella di output XML per il canale B2B (default = edi-output-dir se vuota) |
| fatturaz | fte-cartella-bkp-input-altro-ges |
Cartella backup input "altro gestionale" (documenti tipo "C") |
| fatturaz | fte-cartella-bkp-input-intermediario |
Cartella backup input intermediario (fatture passive) |
| arc-ott | arc-fatt-passive |
Se "P", per le passive gestisce il PDF affiancato (.xml.pdf → .pdf) anziche' l'XML |
Riferimenti: arc-ott, fatturaz.
Note tecniche¶
- Idempotenza: vengono considerate solo le fatture con
fat2-fl-esportataa spazi o"E"; le fatture gia' archiviate sono saltate. - Filtro tipi documento: gli autoconsumi/integrazioni
TD16–TD19eTD28sono esclusi dall'archiviazione remota. - Percorso attive con sottocartelle data: per le fatture non di consorzio il percorso sorgente include l'anno e il mese della data documento (
AAAA/MM), coerente con la struttura di output della fatturazione elettronica. - Variante fatture passive PDF (
arc-fatt-passive = "P", modifica Mauro 16.10.2025): quando attiva, il file effettivamente copiato e' il PDF (.xml.pdf) e la destinazione assume estensione.pdf. - Segnalazioni: ogni anomalia (fattura non trovata, XML mancante, copia fallita) e' scritta nel log di debug (
gesdebug-write-errore) e impostac-segnalazioni = "S"; da menu, al termine, viene proposta la consultazione del log. - Il programma non aggiorna direttamente
fat2-fl-esportataa valore "esportata": si limita a leggere/creare COGFATT2; l'effettivo avanzamento dello stato di archiviazione e' demandato ai processi a valle che consumano la cartella server di transito.