Exportazione XML
Esportazione dati da Galateo - formato XML
Galateo è in grado di generare files in formato
XML contenente i dati dei reports elaborati.
Questa funzione consente, ad esempio, la generazione di fatture nel formato
elettronico richieste dalla pubblica amministrazione e altre analoghe
elaborazioni.
Per leggere correttamente le informazioni contenute in un file XML è consigliabile aprire tale file con uno degli appositi programmi, ad esempio XML notepad.
EXPORTAZIONE
XML
Per attivare la funzionalità di exportazione XML è innanzitutto necessario
abilitare l'exportazione in formato XML sulle opzioni generali di stampa
(linguetta exportazione, sottolinguetta XML) e sulle pagine logiche e sulle
sezioni/sottosezioni che si desidera exportare.
STRUTTURA BASE DEI
DATI
La struttura dati XML viene indicata su più livelli
Salvo le specificità sintattiche descritte nei paragrafi successivi, la struttura dati XML è del tutto libera e può comprendere riferimenti a variabili presenti nel report (che devono essere indicate con il nome preceduto dal simbolo " $ "). Ad esempio:
| esempio di struttura dati XML | risultato dell'exportazione |
|---|---|
| <ELEMENTO> <ARTICOLO>$STR_CODICE_ARTICOLO</ARTICOLO> <QUANTITA>$FL_QTA</QUANTITA> <COSTO>$CR_COSTO_UNITARIO</COSTO> </ELEMENTO> |
<ELEMENTO> <ARTICOLO>AAAAAAAA</ARTICOLO> <QUANTITA>10</QUANTITA> <COSTO>100</COSTO> </ELEMENTO> |
ATTENZIONE: è responsabilità dell'utente utilizzare variabili di livello adeguato al contesto. Inserire in una struttura dati variabili che vengono elaborate ad un livello di maggior dettaglio può portare a risultati completamente differenti da quelli desiderati.
1
- STRUTTURA REPORT
La struttura XML per il report è la seguente:
| sintassi | esempio (si presuppone che esista una pagina con ID= "FATTURA") |
|---|---|
[INTESTAZIONE XML] |
<?xml version="1.0" encoding="UTF-8"?> <?xml-stylesheet type="text/xsl" href="fatturapa_v1.1.xsl"?> <p:FatturaElettronica versione="1.1" xmlns:ds="http://www.w3.org/2000/09/xmldsig#" xmlns:p="http://www.fatturapa.gov.it/sdi/fatturapa/v1.1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <#PAGINA=FATTURA#> </p:FatturaElettronica> |
La struttura è opzionale, nel senso che se non è presente
vengono considerate tutte le strutture dati XML presenti su ciascuna delle
pagine logiche.
L'elemento "INTESTAZIONE XML" è specificato a parte nelle
impostazioni di exportazione, e viene inserito all'inizio dei dati da exportare
(e prima anche di qualunque eventuale informazione di debugging.
L'elemento sintattico <PAGINA=idpagina> consente di specificare il
punto di inserimento dei dati delle singole pagine logiche.
L'identificatore IDPAGINA deve essere l'ID di una pagina logica esistente
e valida.
E' possibile inserire più volte l'istruzione, richiamando differenti pagine
logiche anche non nell' ordine di stampa. Non è possibile richiamare più volte
la stessa pagina logica.
2La struttura XML per ciascuna pagina logica è la seguente:
| sintassi | esempio | esempio dopo l'interpretazione dei valori |
|---|---|---|
[DATI XML] |
<FatturaElettronicaBody> <DatiGenerali> <TipoDocumento>$tipodoc</TipoDocumento> <Divisa>$str_valuta</Divisa> <Data>$datadoc</Data> <Numero>$numerodoc</Numero> <Causale>$causale</Causale> </DatiGenerali> <Articoli> <#SEZIONE#> </Articoli> <DatiRiepilogo> <AliquotaIVA>$aliquota</AliquotaIVA> <Imponibile>$imponibile</Imponibile> <Imposta>$IVA</Imposta> </DatiRiepilogo> </FatturaElettronicaBody> |
<FatturaElettronicaBody> <DatiGenerali> <TipoDocumento>TD01</TipoDocumento> <Divisa>EUR</Divisa> <Data>2015-01-31</Data> <Numero>123</Numero> <Causale>FATT-VEN</Causale> </DatiGenerali> <Articoli> ... (dati della sezione che qui non sono indicati) ... </Articoli> <DatiRiepilogo> <AliquotaIVA>22.00</AliquotaIVA> <Imponibile>10000.00</Imponibile> <Imposta>2200.00</Imposta> </DatiRiepilogo> </FatturaElettronicaBody> |
La struttura è opzionale, nel senso che se non è presente
vengono considerate tutte le strutture dati XML presenti su ciascuna delle
sezioni/sottosezioni.
L'elemento sintattico <SEZIONE> consente di specificare il punto di
inserimento dei dati relativi alla prima sezione contenente una struttura XML
valida.
Le sezioni che non contengono una struttura dati XML vengono ignorate.
L'istruzione <SEZIONE> può e deve essere inserita una sola volta.
3Per ogni sezione per la quale si desidera exportare dati in formato
XML è
necessario inserire una struttura dati XML.
Opzionalmente è possibile inserire all'interno della struttura dati il
riferimento <SOTTOSEZIONE> per indicare il punto di inserimento dei
dati XML derivanti da una eventuale sotto-sezione.
Esempio:
| struttura | risultato | risultato con esplosione sottosezione |
|---|---|---|
| <NUMERODOC>$STR_NUMERODOC</NUMERODOC> <DATA>$DATADOC</DATA> <CONTO>$STR_CONTO</CONTO> <SOTTOSEZIONE> <TOTALE>$CR_TOTALE</TOTALE> |
<NUMERODOC>123</NUMERODOC> <DATA>2015-01-31</DATA> <CONTO>IBM</CONTO> <SOTTOSEZIONE> <TOTALE>10000</TOTALE> |
<NUMERODOC>123</NUMERODOC> <DATA>2015-01-31</DATA> <CONTO>IBM</CONTO> <ELEMENTO> <ELEMENTO> <ELEMENTO> <TOTALE>10000</TOTALE> |
ALTRE OPZIONIì
E' possibile attivare (o disattivare) selettivamente l'exportazione di
determinati record, subordinandola alla soddisfazione di una espressione logica.
CARATTERI SPECIALI
XML
La conversione dei caratteri speciali XML (sono 5: " ' < > & )
deve essere eseguita a cura dello sviluppatore del report e può avvenire in uno
dei seguenti modi:
- a livello SQL attraverso una specifica funzione che esegua la conversione (JOLLY fornisce la funzione text2XML())
- a livello GALATEO attraverso la funzione text2XML() (e la sua inversa: XML2text())