Esempio con combinazione di dati delimitati e posizionali

Informazioni su questa attività

In questo esempio viene mostrato come creare uno schema di file flat per analizzare una combinazione di dati delimitati e posizionali. Per creare uno schema di file flat, è innanzitutto necessario analizzare i dati file flat per determinare i campi e i nodi da aggiungere allo schema di file flat. In questo esempio, viene creato uno schema di file flat per le seguenti due righe di dati:

BuyRight Pharmacy;USACAMVI334;!389!22;34980;

Taylor Drugs;USANJWLB128;!778!23!523;5667;

Utilizzare un approccio verticale per definire i record e i campi dello schema di file flat, come mostrato nella seguente procedura:

Procedura

  1. Creare un nodo root:
    1. Nella scheda Progetto, fare clic con il tasto destro del mouse sulla cartella Schemi di file flat e selezionare Nuovo schema di file flat. Viene visualizzata la finestra di dialogo Procedura guidata di base.
    2. Immettere Order nel campo Nome.
    3. Fare clic su OK. Viene visualizzato l'Editor schema di file flat e lo schema di file flat viene visualizzato nella cartella Schema di file flat nella scheda Progetto. Inoltre, un nodo root con lo stesso nome viene visualizzato nella scheda Layout schema.
  2. Determinare il livello massimo della struttura nei dati. In questo esempio, la struttura più ampia è composta dalle due righe che rappresentano, ognuna, un record. I due record in questi dati di file flat sono delimitati da un carattere di fine riga posizionato tra i due record, come mostrato nella Figura 1:
    Figura 1. Esempio 1 relativo ai dati combinati: i record del file sono delimitati dal carattere di fine riga, che si trova tra i caratteri che costituiscono il record.
  3. Configurare il nodo root denominato Order per analizzare i record child ripetuti utilizzando i seguenti criteri:
    • Separare i dati in record utilizzando un delimitatore.
    • Il documento dovrebbe terminare con un EOS (End Of Stream) in quanto l'ultimo record non termina con un delimitatore.
    • Utilizzare il delimitatore di fine riga per delimitare i record child.
    • Il delimitatore dovrebbe trovarsi tra i dati.
    • Dovrebbero esserci record child ripetuti.
    • Utilizzare il delimitatore di fine riga per delimitare i record child ripetuti.

    Utilizzando questi criteri, specificare i seguenti valori per i pannelli Proprietà di base e Delimitatori del nodo Order, come mostrato nella Figura 2:

    Figura 2. Pannello 1 dell'esempio relativo ai dati combinati in cui il valore di Struttura è Delimitato e la casella Il documento termina con EOS (end of stream) è selezionata. L'opzione Fine riga è selezionata e la posizione di Delimitatore child è impostata su Tra.
  4. Aggiungere un nodo child al nodo root affinché rappresenti i record. Nella scheda Layout schema, fare clic con il tasto destro del mouse sul nodo Order. Dal menu, selezionare Nuovo elemento child > Record, immettere purchaseOrder e fare clic su OK.
  5. Determinare il livello successivo della struttura nei dati. In questo esempio il livello successivo della struttura è rappresentato dai campi delimitati da punti e virgola, come mostrato nella Figura 3:
    Figura 3. Esempio 2 relativo ai dati combinati: i singoli campi del record sono delimitati da punti e virgola.
  6. Configurare il nodo purchaseOrder per l'analisi di questi campi, come descritto dai seguenti criteri:
    • Il nodo purchaseOrder può avere una o più ricorrenze.
    • Analizzare i dati del record nei campi child utilizzando un delimitatore.
    • Utilizzare il punto e virgola come delimitatore tra i dati.
    • Il delimitatore dovrebbe trovarsi dopo i dati.

    Utilizzando questi criteri, specificare i seguenti valori per i pannelli Proprietà di base e Delimitatori del nodo purchaseOrder, come mostrato nella Figura 4:

    Figura 4. Pannello 2 dell'esempio relativo ai dati combinati: il valore di Struttura è Delimitato e le opzioni Massimo - Senza limiti e Carattere sono selezionate. Il campo Posizione delimitatore child è impostato su Dopo.
  7. Aggiungere i campi del nodo purchaseOrder facendo clic con il tasto destro del mouse sul nodo purchaseOrder nella scheda Layout schema e selezionando l'opzione Nuovi elementi child dall'elenco.  Viene visualizzata la finestra di dialogo Aggiunta bulk.
  8. Nella finestra di dialogo Aggiunta bulk, aggiungere tutti i record child e i campi del nodo purchaseOrder:
    • Fare clic su Aggiungi e modificare field1 in storeName. Lasciare il campo Tipo di nodo impostato su Campo.
    • Fare clic su Aggiungi e modificare field2 in originCode. Modificare Tipo di nodo in Record.
    • Fare clic su Aggiungi e modificare field3 in items. Modificare Tipo di nodo in Record.
    • Fare clic su Aggiungi e modificare field4 in orderID. Lasciare il campo Tipo di nodo impostato su Campo.
    • Fare clic su OK.
  9. Determinare il livello successivo della struttura nei dati. In questo esempio il livello successivo della struttura è rappresentato da un insieme di dati posizionali contenuti nel record originCode, come mostrato nella Figura 5:
    Figura 5. Esempio 3 relativo ai dati combinati: originCode è una sezione dei dati posizionali nel record delimitato.
  10. Configurare il record originCode affinché il valore sia posizionale:
    1.  Nella scheda Layout schema, selezionare il nodo originCode. Vengono visualizzate le proprietà Proprietà di base.
    2. Nell'elenco Struttura, selezionare Posizionale.
  11. Aggiungere i campi posizionali del nodo originCode facendo clic con il tasto destro del mouse sul nodo originCode nella scheda Layout schema e selezionando l'opzione Nuovi elementi child dall'elenco. Viene visualizzata la finestra di dialogo Aggiunta bulk.
  12. Nella finestra di dialogo Aggiunta bulk, aggiungere tutti i record child e i campi del nodo originCode:
    1. Fare clic su Aggiungi e modificare field1 in countryCode. Lasciare il campo Tipo di nodo impostato su Campo.
    2. Fare clic su Aggiungi e modificare field2 in stateCode. Lasciare il campo Tipo di nodo impostato su Campo.
    3. Fare clic su Aggiungi e modificare field3 in cityCode. Lasciare il campo Tipo di nodo impostato su Campo.
    4. Fare clic su Aggiungi e modificare field4 in storeCode. Lasciare il campo Tipo di nodo impostato su Campo.
    5. Fare clic su OK.
  13. Configurare le Proprietà di posizione di ciascun campo posizionale. Per ciascun nodo child del nodo originCode, fare clic sul nodo nella scheda Layout schema e, nella parte inferiore del pannello delle proprietà, impostare i valori di Offset campo e Lunghezza campo, come mostrato nel seguente elenco:
    • countryCode -
    • stateCode -
    • cityCode -
    • storeCode -

    L'Offset campo viene calibrato dall'ubicazione del carattere corrente mentre la stringa originCode viene elaborata e non dall'inizio della stringa originCode per ciascun campo. In questo esempio, il nodo countryCode viene elaborato e i primi tre caratteri di originString vengono assegnati a countryCode. Quando il nodo stateCode viene elaborato, il carattere corrente è già nell'ubicazione del carattere 3, quindi l'Offset campo 1 di stateCode viene aggiunto all'ubicazione del carattere corrente per ottenere il punto di partenza per l'elaborazione della stringa stateCode, come mostrato nella Figura 6:

    Figura 6. L'esempio 4 relativo ai dati combinati mostra l'ubicazione del cursore corrente e l'Offset campo.
  14. Determinare il livello successivo della struttura nei dati. In questo esempio il livello successivo della struttura è rappresentato dai campi ripetuti, delimitati da punti esclamativi, come mostrato nella Figura 7:
    Figura 7. Esempio 5 relativo ai dati combinati in cui i dati delimitati sono indicati da punti esclamativi.
  15. Configurare il nodo items per analizzare i record child ripetuti utilizzando i seguenti criteri:
    • Separare i dati nei campi utilizzando un delimitatore.
    • Utilizzare i punti esclamativi come delimitatori per delimitare i campi child.
    • Il delimitatore dovrebbe trovarsi prima dei dati.
    • Dovrebbero essere presenti uno o più campi child ripetuti.
    • Utilizzare i punti esclamativi come delimitatori per delimitare i campi child ripetuti.

    Utilizzando questi criteri, specificare i seguenti valori per i pannelli Proprietà di base e Delimitatori del nodo items, come mostrato nella Figura 8:

    Figura 8. Pannello 3 dell'esempio relativo ai dati combinati in cui Posizione delimitatore child è impostato su Prima.
  16. Aggiungere il campo child ripetuto al nodo items facendo clic con il tasto destro del mouse sul nodo items nella scheda Layout schema e selezionando l'opzione Nuovo elemento child > Campo dall'elenco. Viene visualizzata la finestra di dialogo Nuovo campo.
  17. In Nome campo, immettere item e fare clic su OK.
  18. Configurare il nodo item affinché contenga una o più ricorrenze, come mostrato nella Figura 9:
    Figura 9. Pannello 4 dell'esempio relativo ai dati combinati in cui Numero massimo di ripetizioni è impostato su Senza limiti.
    Lo schema di file flat è completo e pronto per la verifica.
  19. Incollare il seguente testo nel pannello secondario a sinistra del pannello di verifica:

    BuyRight Pharmacy;USACAMVI334;!389!22;34980;

    Taylor Drugs;USANJWLB128;!778!23!523;5667;

    Questi dati vengono forniti anche nel file mixedData.txt. Se durante l'installazione di Studio sono stati accettati i valori predefiniti, questo file è contenuto nella seguente directory: C:\Program Files\IBM\WebSphere Cast Iron Studio 3.X\Samples\FlatFileSchema
    Attenzione: non aggiungere un carattere di ritorno a capo dopo l'ultima riga.
  20. Fare clic sull'icona Verifica.
    Icona Verifica
    Viene visualizzata la finestra di dialogo Conferma salvataggio.
  21. Fare clic su . La seguente rappresentazione XML dei dati viene visualizzata nel pannello Verifica:
    <?xml version="1.0" encoding="UTF-8"?>
    <Order>
    	<purchaseOrder>
    		<storeName>BuyRight Pharmacy</storeName>
    		<originCode>
    			<countryCode>USA</countryCode>
    			<stateCode>CA</stateCode
    			<cityCode>MVI</cityCode>
    			<storeCode>334</storeCode>
    		</originCode>
    		<items>
    			<item>389</item>
    			<item>22</item>
    		</items>
    		<orderId>34980</orderId>
    	</purchaseOrder>
    	<purchaseOrder>
    		<storeName>Taylor Drugs</storeName>
    		<originCode>
    			<countryCode>USA</countryCode>
    			<stateCode>NJ</stateCode>
    			<cityCode>WLB</cityCode>
    			<storeCode>128</storeCode>
    		</originCode>
    		<items>
    			<item>778</item>
    			<item>23</item>
    			<item>523</item>
    		</items>
    		<orderId>5667</orderId>
    	</purchaseOrder>
    </Order>
  22. Nella scheda Layout schema, fare clic sul nodo item. Nel pannello secondario a destra del pannello Verifica i dati analizzati nel nodo item vengono evidenziati, come mostrato nella Figura 10:
    Figura 10. Il nodo item viene evidenziato
  23. Fare clic sul nodo state per visualizzare i dati assegnati nel nodo state.
    Nota: un'implementazione di riferimento dello schema di file flat Order viene fornita nel progetto FlatFileSchemasExample. Per visualizzare e aprire il progetto FlatFileSchemasExample, attenersi ai passi 1 e 2 in Esempio di gruppi e fare doppio clic sullo schema di file flat Order. I nodi dello schema di file flat Order vengono visualizzati nella scheda Layout schema e le proprietà del nodo root Order vengono visualizzate nel pannello di destra.