Riferirsi alla documentazione di Implementazione
Presentazione
Un modello import export è identificato da un codice alfanumerico. Oltre alla descrizione, si definiscono su due folder le caratteristiche tecniche del modello.
Chiudi
Campi
I seguenti campi sono presenti in questo folder :
| Codice che identifica il modello di import-export. |
| Permette di definire una descrizione associata ad ogni scheda. |
| Questa casella da contrassegnare permette di attivare o disattivare la scheda corrente senza tuttavia perderne il contenuto. |
|
Chiudi
Presentazione
Questo folder definisce le caratteristiche generali del modello, cioè:
Chiudi
Campi
I seguenti campi sono presenti in questo folder :
Generale
| Definisce il codice dell'oggetto da importare o esportare. Nel caso dell'export, questo campo è facoltativo; il nome della tabella principale da esportare è indicato nel blocco degli identificatori. |
| Permette di inizializzare il contesto (generalmente se uno stesso oggetto èutilizzato per più funzioni) e di verificare i diritti d'accesso. Infatti, gli utenti devono avere i diritti di accesso idonei alla funzione per poter servirsi del modello. Questo campo è obbligatorio. |
| Modulo di appartenenza della parametrizzazione. Questo campo permette di precisare se la videata deve essere creata nel database del dossier. Lo è se il modulo al quale è collegata la videata è attivo per il dossier. |
| Un codice attività permette:
Così, se il codice attività non è attivo, l'elemento evidenziato non sarà utilizzabile, e il codice associato (se ne ha) non verrà generato né sarà attivabile. |
| Questo codice di accesso permette di limitare l'accesso alla scheda corrente ad alcuni utenti. Il diritto di esecuzione collegato ad un codice utente è trattato in modo particolare nel caso dei modelli di import-export: se un utente non ha il diritto di esecuzione, non potrà utilizzare il modello per importare o esportare dei dati. |
| Definisce il programma standard nel quale si trovano le etichette delle azioni che vengono richiamate nei programmi di import-export. Questi programmi permettono di effettuare delle inizializzazioni, dei controlli complementari e degli aggiornamenti se necessario. In allegato tecnico, si troverà la struttura di un tale programma. Si noti che diversi programmi standard chiamati in generale IMPXXX, dove XXX è il codice dell'import, vengono forniti per un certo numero di import. Per maggiori informazioni su queste azioni, si veda la documentazione allegata corrispondente. |
| Definisce il programma specifico, richiamato prima del programma standard, che permette di realizzare le stesse azioni disattivando se necessario ciò che esegue il programma standard. Le azioni possibili sono generalmente delle inizializzazioni, dei controlli complementari, e degli aggiornamenti se necessario. Per maggiori informazioni su tali azioni, vedere la documentazione allegata corrispondente. |
Struttura
| Definisce la struttura utilizzata per gestire i dati nel file da importare o esportare. Per maggiorni informazioni, si veda il corrispondente paragrafo. |
| Definisce il separatore tra due campi. Per inserire un carattere non stampabile, occorre inserire un '\' (backslash) seguito da 3 cifre che rappresentano il codice ascii del carattere su base decimale. |
| Definisce il separatore tra due record (gruppi di dati). Per inserire un carattere non stampabile, occorre inserire un '\' (backslash) seguito da 3 cifre che rappresentano il codice ascii del carattere su base decimale. Spesso si utilizza:
|
| Il delimitatore di campo (generalmente il carattere ") viene aggiunto in prima ed ultima posizione dei campi di tipo alfanumerico. I campi numerici e le date non sono interessati da tale delimitatore. Si tratta spesso di uno dei seguenti caratteri:
|
| Definisce il formato dei caratteri utilizzati nel file:
|
Export
| Se questo campo è contrassegnato, sarà possibile utilizzare questo modello in Export di dati. |
| Questo campo, soltanto visualizzato, memorizza il valore del numero crono di quando è avvenuto l'ultimo export. Ciò permette, quando si realizzano degli export cronologici, di elaborare soltanto ciò che è stato modificato da quando è avvenuto l'ultimo export. |
Trascodifica
| Quando si utilizza il set di caratteri ascii, è possibile utilizzare diversi formati standardizzati:
|
| Definisce il separatore decimale utilizzato per le cifre. Se questo campo è vuoto, si considererà che il separatore decimale è il '.' (punto). |
| Definisce il modo in cui sono codificati i campi di tipo data (ordine e numero di caratteri per l'anno). E' possibile specificare soltanto l'ordine delle cifre ed il numero di caratteri dell'anno. All'import, vengono filtrati eventuali caratteri di separazione tra campi; così vengono decodificate correttamente delle date nel formato 29-05-59 o 09/04/1991. Il sotto-programma di decodifica considera la variabile adxdcs del motore, indicata dal parametro DCS che si trova nei parametri generali per definire il modo in cui viene decodificato un anno su due cifre. DCS rappresenta l'anno "pilota" che definisce il cambio di secolo. Ad esempio, se DCS vale 1940, ogni anno su due cifre inferiore o uguale a 40 verrà considerato come facente parte del ventunesimo secolo, e ogni anno maggiore verrà considerato come facente parte del ventesimo secolo. Si sarà così in grado di esprimere gli anni tra 1940 e 2039 su due cifre. Il formato AAAA-MM-GG è riservato agli export di tipo XML. |
| Descrizione associata al codice precedente. |
| I campi di tipo "menù locale" vengono memorizzati nel formato di un numero che rappresenta la loro posizione nella tabella. A seconda del valore di tale campo il modello esporterà (o attende di trovarsi in import):
Tenuto conto del fatto che le descrizioni del menù locale sono semplicemente delle descrizioni utilizzate in visualizzazione, poiché il valore memorizzato nel database è il range nella tabella, è assolutamente possibile cambiare la descrizione dei menù locali il tempo di un import, affinché l'algoritmo di riconoscimento funzioni correttamente. Attenzione tuttavia, il fatto di cambiare delle descrizioni di menù locali può essere effettuato solo in modalità mono-utente, e ciò è sconsigliato in trasferimenti regolari o automatizzati. |
| Descrizione associata al codice precedente. |
Import
| Se questo campo è contrassegnato, sarà possibile utilizzare questo modello nell'Import di dati. |
| Permette di autorizzare la modifica di un record esistente durante l'import |
| Quando questo check-box è contrassegnato, l'import di dati alimenta il transito import-export con i dati errati. Il fatto di alimentare il transito non impedisce di creare un file di errore. |
| Segnala che l'integrazione dei dati nel database si effettua utilizzando delle azioni specifiche definite nel programma il cui nome viene fornito nel campo Programma di import. Questo programma specifico possiede un numero ristretto di entry point e necessita quindi di scrivere un programma che includa tutti i controlli che si intendono effettuare. Il suo interesse risiede nel fatto che è possibile così raggruppare dei controlli al fine di ottimizzare il programma di import. La struttura dei programmi di import specifici è descritta in allegato. Si dovranno generalmente trovare le seguenti azioni:
|
| Se questa casella non è contrassegnata, gli eventi di workflow relativi alle operazioni elementari (creazione, modifica in gestione di oggetto) non vengono più chiamati. Così, se si lanciano import comportanti aggiornamenti di massa, si evita l'attivazione di una moltitudine di eventi di questo tipo, il che può degradare le performance dell'import e provocare l'invio di messaggi in massa. Tuttavia, gli eventi di workflow relativi all'attivazione dell'import non sono disattivati. |
Riquadro Identificatori
| Riga corrente del riquadro |
| Definisce il livello del gruppo. Il livello 1 è il livello principale, un livello N+1 definisce un sotto-dettaglio del livello N che lo precede. |
| Identifica il gruppo da un codice di massimo 5 caratteri, codice che sarà ripreso nel riquadro dei campi del folder successivo, e nello stesso file, come testata del gruppo. |
| Questo riquadro degli indicatori definisce la struttura dei gruppi di record. Vedere il relativo paragrafo. |
| Definisce la chiave della tabella collegata utilizzata per accedere al dettaglio dei record del gruppo, a partire dai valori dei campi delle tabelle di livello superiore utilizzate nell'espressione di legame. |
| Definisce l'espressione di legame, ovvero una serie di valori, separati da un punto e virgola, che fornisce i valori di chiave che legano la tabella di dettaglio al record di testata. |
| Nel caso di un tipo di file di lunghezza fissa, occorre indicare il numero di caratteri di ogni record. |
Chiudi
Presentazione
In questo riquadro, si definiscono i diversi campi da importare, organizzati in gruppi identificati dalla colonna Codice, in cui si ritrova uno dei codici definiti nel riquadro dei flag del primo folder (il campo può rimanere vuoto se non è stata definita nessuna tabella).
Questo folder contiene il riquadro che definisce la struttura dettagliata dei gruppi presenti nel primo folder. Occorre sapere:
Chiudi
Campi
I seguenti campi sono presenti in questo folder :
Riquadro Campi
| Riga corrente del riquadro | |
| Questo campo viene inserito soltanto se non è vuoto il riquadro degli identificatori di gruppi del folder precedente. Permette di collegare l'informazione da esportare o importare ad un gruppo di dati. | |
| Definisce il riquadro del database in cui viene definito il dato da importare o esportare. Si noti che:
| |
| Permette di indicare il nome del campo della tabella da importare o esportare. Sono possibili diverse sintassi per definire le informazioni da estrarre o integrare:
| |
| Indicare un commento per facilitare la comprensione della parametrizzazione. | |
| Sono possibili tre scelte in questo campo:
| |
| Questa colonna è utile solo nel caso di un formato in lunghezza fissa; in questo caso, la posizione fornisce lo slittamento rispetto all'inizio del blocco o del record (posizioni fornite in numero di byte, dove 1 significa che ci si trova all'inizio del blocco o del record). Le posizioni devono essere compatibili con la dimensione del record. | |
| Questo campo determina la lungheza del campo sul file sequenziale. | |
| Questa colonna viene inserita soltanto se il formato è in lunghezza fissa. Per gli importi numerici, il formato inserito viene definito nel formato nnn o nnn.mmm, sapendo che queste cifre possono essere prefissate da < o > (allineamento a destra o a sinistra completato da zeri, formattazione a destra utilizzata di default), prefissate o post-fissate dal carattere + (segno obbligatorio prima/dopo la cifra), e prefissato dal carattere * (il separatore decimale non deve apparire). Il riquadro sottostante mostra degli esempi di formattazione per un determinato importo (gli spazi sono qui sostituiti da #):
Per un formato alfanumerico, le uniche direttive di formattazione possibili sono < o > (allineamento a destra o a sinistra, sapendo che le stringhe di caratteri sono completate da spazi). | |
| Questo campo viene utilizzato quando si effettuano degli import/export in formato XML. Infatti, quando viene creato un file XML, si ha bisogno di informazioni iniziali, in particolare per poter creare un file XSD che descriva la struttura del file XML e controllare così la sua validità con strumenti di verifica di sintassi integrati ai vari software ETL. Questo campo definisce se un modello deve essere associato alla descrizione fatta nella descrizione XSD. Se questo campo viene valorizzato, il file XSD conterrà uno specifica di tipo:
Nei tutorial on line (come questo) sono disponibili le sintassi che è possibile utilizzare per i pattern. | |
| Questo campo viene utilizzato quando si effettuano degli import/export in formato XML. Infatti, quando viene creato un file XML, si ha bisogno di informazioni iniziali, in particolare per poter creare un file XSD che descriva la struttura del file XML e controllare così la sua validità con strumenti di verifica di sintassi integrati ai vari software ETL. Questo campo definisce il codice del tag che descrive il campo esportato nel modello, così come apparirà nel file XML. | |
| Questo campo viene utilizzato quando si effettuano degli import/export in formato XML. Infatti, quando viene creato un file XML, si ha bisogno di informazioni iniziali, in particolare per poter creare un file XSD che descriva la struttura del file XML e controllare così la sua validità con strumenti di verifica di sintassi integrati ai vari software ETL. Questo campo definisce se il campo è obbligatorio o meno. Se il suo valore è uguale a Si, il file XSL conterrà una specifica di tipo minOccurs="1" | |
| Questo numero, se esiste, fa riferimento ad una tabella di trascodifica utilizzabile per trascodificare il campo letto e renderlo conforme al formato atteso. |
Generazione del file
|
| Permette di definire il percorso di un file di dati di default che verrà proposto durante il lancio dell'import o dell'export (e utilizzato in modo automatico in caso di lancio di un concatenamento di import o di export). Se il percorso file è relativo, la directory di base considerata è quella di base d'installazione del software. Il percorso può integrare il carattere #. Se questo è il caso, vi sarà una gestione dei numeri sequenziali:
Ad esempio, se il chrono export è uguale a 156, /u/tmp/fic# permette di generare il file /u/tmp/fic00156. |
| Permette di imporre una directory finale nella quale il file verrà trasferito dopo essere stato importato. In assenza di valore, si utilizza la directory indicata nei parametri generali dell'import/export. |
Chiudi
Funzioni accessibili tramite click destro sul riquadro
Campi
I seguenti campi sono presenti su questa finestra :
Blocco numero 1
| Definisce la tabella di cui si vogliono selezionare i campi da inserire. |
| Riga corrente del riquadro |
| In questa colonna si definisce il nome del campo della tabella così come sarà definito nel software (un campo di nome NOMECAMPO definito in una tabella con abbreviazione ABV potrà essere letto con la sintassi [F:ABV]NOMECAMPO ). Per i campi creati in specifico, il nome del campo deve iniziare con X_, Y_ o Z_. Nel database, ogni campo corrisponde ad uno o più campi (a seconda che il campo sia o meno dimensionato: i campi corrispondenti si chiamano NOMECAMPO_0, NOMECAMPO_1, NOMECAMPO_2…) Per inserire e visualizzare il campo corrispondente in una videata, gli si darà lo stesso nome nel dizionario delle videate e si utilizzerà simultaneamente la videata e la tabella nella gestione oggetti. |
| Descrizione associata al codice precedente. |
| Se il campo è uguale a Si, il campo viene inserito nel riquadro principale. Di default, i campi non presenti nel riquadro principale vengono proposti a Si, mentre quelli presenti senza il riquadro principale vengono proposti a No. |
Chiudi
Permette di inserire globalmente un insieme di campi derivanti da una tabella in un modello a partire dalla riga corrente del riquadro.
Questa funzione è presente solo per i modelli con un tipo di file a lunghezza fissa. Permette di ricalcolare la posizione di tutti i campi del gruppo di dati corrente (che hanno lo stesso flag della riga). Il ricalcolo si fa partendo dalla posizione 1 sul primo campo del gruppo e aggiungendovi la lunghezza di ogni campo per ottenere la posizione del campo successivo.
Chiudi
Di default, le seguenti stampe sono associate alla funzione :
PRTSCR : Stampa Videata
Ma ciò lo si può modificare tramite parametrizzazione.
I seguenti campi sono presenti sulla finestra aperta da questo bottone : Blocco numero 1
Blocco numero 2
Chiudi Questo bottone permette di copiare la definizione della scheda da o verso un altro dossier. |
I seguenti campi sono presenti sulla finestra aperta da questo bottone : Riquadro Intervallo
Riquadro Criteri
Chiudi Dà accesso ad una videata in cui è possibile definire i valori di default dei criteri per filtrare i dati esportati. Quando si lancia l'export, i criteri sono visualizzati e possono essere modificati; quando si lancia una concatenazione di export, i criteri sono applicati automaticamente senza inserimento su ognuno dei modelli per i quali sono stati definiti. |
Questa funzione, accessibile quando il formato di export è XML, permette di produrre un file XSD che descrive la struttura del file creato dal modello. Tale file viene creato nella sotto-directory a seconda della directory in cui si trovano i dossier sul server applicativo:
X3_PUB/DOSSIER/GEN/ALL/WEBS (dove DOSSIER è il nome del dossier corrente)
Il nome di questo file è WWIMPMODELLO.xsd (MODELLO è il nome del modello di import-export).
Questo file XSD definisce il formato dei dati allo scopo di permettere un controllo preliminare di validità sintattica utilizzando tool di tipo ETL. La sintassi ottenuta integra (oltre a testate standard) delle righe del tipo:
<xs:complexType name="ADI">
<xs:sequence>
<xs:element name="ADI_NUMTAB" type="ADI_NUMTAB" minOccurs="1" maxOccurs="1"/>
<xs:element name="ADI_CODE" type="ADI_CODE" minOccurs="0" maxOccurs="1"/>
...
</xs:sequence>
</xs:complexType>
<xs:simpleType name="ADI_NUMTAB">
<xs:restriction base="xs:int">
<xs:minExclusive value="-32768"/>
<xs:maxExclusive value="32767"/>
</xs:restriction>
</xs:simpleType>
<xs:simpleType name="ADI_CODE">
<xs:restriction base="xs:string"/>
<xs:maxLength value="5"/>
<xs:pattern value="{[A-Z]}*"/>
</xs:restriction>
</xs:simpleType>
Si possono vedere qui degli esempi di campi di tipo numerico, poi alfabetico. Qualche commento riguardo alla maniera in cui viene generata questa sintassi:
Questa funzione permette di accedere alla gestione della documentazione, sul primo paragrafo della documentazione (se esiste) associato alla scheda corrente.
Questa funzione permette di accedere alla gestione dei legami. Questa permette di definire dei collegamenti tra la scheda corrente ed altre schede (ad esempio dei collegamenti tra funzioni e parametri). Questi collegamenti, puramente informativi, permettono di alimentare il meccanismo di generazione degli scheletri di documentazione.
Questo menù permette di lanciare una generazione di documentazione. La generazione può essere lanciata anche partendo dal bottone [Generazione] nella parte inferiore della finestra.
Possono essere lanciati tre tipi di generazione, separatamente o simultaneamente:
Gli intervalli proposti di default tengono conto della scheda in corso, ma possono essere modificati in fase di lancio.
Oltre ai messaggi generici, i seguenti messaggi d'errore possono apparire al momento dell'inserimento :
L’oggetto non è stato definito come importabile (casella da contrassegnare Import non contrasssegnata nel folder Diversi).
Si inserisce due volte lo stesso codice associato a dei gruppi diversi.
Questo messaggio è visualizzato quando si esprime un legame nel riquadro dei gruppi utilizzando un campo ZZZ che non è referenziato in nessuna delle tabelle (XXXXX, YYYYY, ...) definite nelle righe precedenti.
Nel riquadro dei campi, per il gruppo G, non esiste la riga che indica il posto in cui si trova l'identificatore di gruppo (sintassi /).
Nelle righe che descrivono i campi, si è tentato di inserire un campo di una tabella che non può essere collegata alla tabella principale del gruppo.
La lunghezza definita dal formato numerico (mmm) è diversa dalla lunghezza del campo definita nella colonna precedente (nnn).
Non è effettuato nessun test di esistenza di directory sul percorso definito di default nel modello (la directory può non ancora esistere: questo controllo sarà effettuato solo al lancio dell'import o dell'export)
Quando si parametrizza un modello di import, occorre aver presente alcuni principi:
L'export di dati è sempre possibile a prescindere dall'oggetto, mentre l'import non sempre lo è. I meccanismi automatici di decodifica dei flussi di dati e il richiamo dei controlli collegati all'oggetto automatizza enormemente l'import, ma non è sufficiente per permettere un import automatico sugli oggetti complessi. Infatti, non tutti gli oggetti sono importabili.
Nel dossier di riferimento viene fornito un modello di import (modificabile) per ogni oggetto che è possibile importare. Vi possono anche essere delle specificità collegate a questo import: ciò viene definito nell'help on line associato al modello di import per cui esistono delle particolarità (questo help è accessibile da Alt + F1 quando il modello è caricato).
Si troverà l'elenco degli help corrispondenti (suddivisi per moduli) a partire dal seguente legame.
La scelta della struttura dei file da importare o da esportare dipende dalle possibilità di estrazione o di integrazione che si trovano nel software con cui si vuole dialogare.
In ogni caso, i dati devono essere organizzati in gruppi logici di righe, che possono essere di tipi diversi (testata, dettaglio, sotto-dettaglio, per esempio), o di un solo tipo. L'organizzazione di questi gruppi è definita nel riquadro dei flag situato sul primo folder del modello.
Ogni gruppo è associato ad una delle tabelle del database (la prima è obbligatoriamente la tabella principale dell'oggetto, le successive sono definite da dei legami partendo dalle precedenti). Quando si utilizza il modello per realizzare un export di oggetto, è possibile definire dei legami con qualsiasi tabella del database sulla quale esiste un legame teorico, per estrarre dei dati collegati. In compenso, per un modello di import, sono effettivamente utilizzabili solo le tabelle aggiornate dall'oggetto: E' impensabile sperare di importare simultaneamente l'ordine ed il cliente, poichè l'oggetto ordine non è stato previsto per ciò.
Si noti inoltre che questo riquadro può essere vuoto se una struttura di dati da importare o da esportare è basata sul percorso della sola tabella principale (in questo caso la colonna Codice della pagina successiva rimarrà vuota). Non è inoltre necessario realizzare vari gruppi di dati se più tabelle collegate devono essere esportate contemporaneamente. Infatti, se si fanno apparire, in uno stesso gruppo di dati, i campi estratti da tabelle diverse, il programma di export tenterà di risolvere i legami tra tabelle utilizzando la struttura dei legami descritta nel dizionario. Questo ovviamente suppone che si abbia un solo legame possibile della tabella principale del gruppo verso la tabella descritta (altrimenti, sarà utilizzato il primo legame incontrato, rischiando che non sia quello giusto).
Esiste un caso particolare in cui è necessario creare almeno un gruppo: se il modello è definito in lunghezza fissa (in questo caso, è infatti necessario che si definisca da qualche parte una lunghezza di record, e questo si effettua nel riquadro dei gruppi). Se non si desidera che il flag di gruppo sia obbligatoriamente presente nella lista dei campi, basta definire questo gruppo con un codice vuoto: solo un gruppo potrà essere definito e la colonna Codice non verrà più inserita nel folder seguente.
Il riquadro degli identificatori è accessibile in inserimento se l'oggetto è di tipo semplice. Se si definiscono degli identificatori di gruppo, viene associato ad ogni identificatore un livello, una tabella e delle condizioni di legami che permettono di collegare le righe tra loro.
Il livello vale 1 per la tabella principale da importare o da esportare (che non viene inserita nel riquadro ma dedotta dall'oggetto associato al modello).
Per ogni tabella collegata ad una tabella precedente, il livello è uguale al livello della tabella precedente se esiste un legame biunivoco tra le due tabelle, e vale questo livello più uno se più record sono legati ad un record della tabella precedente. Il legame è caratterizzato dalla chiave della tabella di destinazione da leggere e dall'espressione dei segmenti di chiave il cui valore definisce le righe collegate.
Si immagini per esempio che si definiscano dei gruppi secondo l'esempio qui in basso:
Livello | Gruppo |
1 | A |
2 | B |
2 | C |
3 | D |
Allora si otterrà il seguente intreccio di informazioni:
Gruppo A record 1 |
|
|
| Gruppo B record 1.1 |
|
| Gruppo B record 1.2 |
|
| ... |
|
| Gruppo B record 1.N |
|
| Gruppo C record 1.1 |
|
|
| Gruppo D record 1.1.1 |
|
| Gruppo D record 1.1.2 |
|
| ... |
|
| Gruppo D record 1.1. M |
| Gruppo C record 1.2 |
|
|
| Gruppo D record 1.2.1 |
|
| ... |
| Gruppo C record 1.Q |
|
|
| Gruppo D record 1.Q.1 |
|
| ... |
|
| Gruppo D record 1.Q.R |
Gruppo A record 2 |
|
|
| Gruppo B record 2.1 |
|
| ... |
|
Per illustrare questa parametrizzazione, è possibile prendere l'esempio di un modello (solo di export) utilizzando le società e i siti:
Il riquadro qui di seguito riassume il riquadro degli Identificatori così come se fossero inseriti:
Livello | Codice | Tabella | Chiave | Legame | |
1 | CPY | COMPANY | CPY0 |
| record principale del gruppo |
1 | CUR | TABCUR | TCU0 | [CPY]RGCCUR | 1 record collegato |
2 | FCY | FACILITY | FCY1 | [CPY]CPY | N record collegati |
2 | ADP | ADOVAL | ADW0 | [CPY]CPY | M record collegati |
I formati di file sono determinati dal tipo, che può assumere uno dei valori qui di seguito.
Si tratta di un file di lunghezza variabile, in cui tutti i campi sono divisi da un separatore (il separatore di campo indicato come SC).
Campo 1 record 1 | SC | Campo 2 record 1 | SC | ... | Campo N record 1 | SC |
Campo 1 record 2 | SC | Campo 2 record 2 | SC | ... | Campo N record 2 | SC |
Si tratta di un file di lunghezza variabile in cui tutti i campi sono divisi da un separatore (il separatore di campo). Quando una record termina, un altro separatore (il separatore di riga definito come SL) sostituirà il separatore di campo.
Campo 1 record 1 | SC | Campo 2 record 1 | SC | ... | Campo N record 1 | SL |
Campo 1 record 2 | SC | Campo 2 record 2 | SC | ... | Campo N record 2 | SL |
Si tratta di un file di lunghezza variabile dello stesso tipo del file 'separatore di record' (due diversi separatori). Ma in più, i campi di tipo stringa di caratteri sono inquadrati da un delimitatore di campo (definito come DC, nell'esempio qui sotto, il secondo campo è di tipo alfanumerico).
Campo 1 record 1 | SC | DC | Campo 2 record 1 | DC | SC | ... | Campo N record 1 | SL |
Campo 1 record 2 | SC | DC | Campo 2 record 2 | DC | SC | ... | Campo N record 2 | SL |
Si tratta di un file i cui campi sono definiti in lunghezza fissa senza separatore di campo. La lunghezza totale del record deve allora essere indicata in parametro. Ci può essere un separatore di riga. Se è il caso la sua lunghezza non deve essere detratta dalla lunghezza del record.
Si definisce comunque la lunghezza di ogni gruppo, se i gruppi di dati sono definiti nel riquadro dei flag.
Campo 1 record 1 | < ---------Campo 2 record 1------------ > | ... | < --Campo N record 1-- > | SL |
Campo 1 record 2 | < ---------Campo 2 record 2------------ > | ... | < --Campo N record 2-- > | SL |
Si tratta di un formato in cui i dati sono definiti nei tag in formato XML.
In export, si ritrovano una serie di importanti informazioni collegate contemporaneamente al modello e all'estrazione. In import, i dati utili sono più limitati, si possono quindi limitare quelli nel file che si cerca di importare.
Passata la testata xml, un tag iniziale permette di precisare le condizioni dell'export:
<EXP MOD="modello" OBJ="oggetto" FOL="dossier" DAT="data" TIM="ora" USR="utente" CHR="crono"> |
modello, oggetto che sono rispettivamente il codice del modello e del relativo oggetto, dossier il codice del dossier data, ora, e utente che sono le caratteristiche delle condizioni dell'estrazione.
Nell'import, il tag iniziale può essere semplicemente <EXP>
Si trovano in seguito, all'occorrenza, dei tag che permettono di definire i parametri e i loro valori:
<PAR NAM="nome" FST="primo valore" LST="ultimo valore" > |
Questi tag sono opzionali
In seguito, si ritrova per ogni gruppo di dati, una testata che si presenta nella seguente forma:
<GRP LEV="livello" TAB="tabella" KEY="chiave" LNK="legame"> |
GRPé il codice del gruppo, livello il livello di questo gruppo, tabella, chiave, e legamesono gli altri elementi inseriti nel riquadro dei legami.
Ogni campo è definito da una riga del tipo:
<FLD NAM="nome_campo" TYP="tipo_dati" LEN="lunghezza" VAL="valore" </FLD>
nome_champo è il nome del campo che si esporta, tipo_dati e lunghezza le sue caratteristiche, valore ne definisce il valore.
Ogni gruppo termina con un tag </GRP>, ed un tag </EXP> deve chiudere il file.
Questo formato è il formato variabile 'Separatore di record' o il formato delimitato (se il campo Delimitatore di campo è indicato).
Se nel modello di import/export sono definiti più livelli, viene generata una sola riga.
Flag livello 1 | Campo 1 record 1 | SC | DC | Campo 2 record 1 | DC | SC | ... | Flag livello 2 | Campo 1 record 2
| SC | DC | Campo 2 record 2 | SL |
In fase di import, l'utilizzo di questo tipo di formato ha come conseguenza un raggruppamento di tutte le righe di dettaglio di un determinato livello sotto la stessa testata, non appena tutti i campi ripetuti nella testata sono esattamente identici.
Questo formato è lo stesso del formato 'Flat file' con in più una riga di testata supplementare corrispondente ai titoli dei campi del modello.
Tale formato viene utilizzato generalmente in Germania, per i file di tipo GDPDU.