Mappatura di un elemento di destinazione dalle tabelle di database

Per eseguire la mappatura di un elemento di destinazione da una tabella di database, impostare il nodo Mapping per:
  • richiamare le relative righe dal database
  • popolare gli elementi di destinazione del messaggio con i valori dal database
Esistono diversi modi per aggiungere un database come origine per una mappatura, come descritto in Aggiunta di un database all'origine. Una volta aggiunto un database alla mappatura, il riquadro Foglio elettronico contiene una voce $db:select nella colonna Script di mappa. Come impostazione predefinita, il relativo valore è fn:true(), che significa che tutte le righe vengono richiamate dalla tabella di database. Nell'utilizzo di SQL nel database, viene limitato il numero di righe aggiungendo una clausola WHERE ad una chiamata database. In nodo Mapping, il metodo equivalente di restrizione del numero di righe selezionate consiste nell'utilizzare un'espressione $db:select.

Tale procedura mostra il metodo equivalente di restrizione del numero di righe selezionate in nodo Mapping:

  1. Nel riquadro Foglio elettronico, fare clic sulla riga $db:select. Ciò fa sì che fn:true() venga inserito nel riquadro Modifica.
  2. Modificare l'espressione nel riquadro Modifica per specificare l'esatta condizione per la chiamata di database. Per facilitare ciò, è possibile:
    1. Selezionare le colonne di database pertinenti alle righe richiamate e trascinarle dal riquadro Origine al riquadro Modifica. Questi sono i nomi di colonna di database utilizzati in una clausola SQL WHERE.
    2. Selezionare gli elementi di messaggio di origine con i valori pertinenti alle righe richiamate e trascinarli dal riquadro Origine al riquadro Modifica. Questi sono i valori con cui le colonne di database selezionate possono essere messe in corrispondenza.
    3. Aprire Content assist facendo clic su Modifica > Content assist.
    4. Da Content assist, selezionare le funzioni da applicare agli elementi dei messaggi nella chiamata di database.
Di seguito è riportato un esempio di una voce $db:select, in cui una colonna database viene associata a una costante o a un campo da un messaggio di input:
$db:select_1.BROKER50.JDOE.RESOLVEASSESSOR.ASSESSORTYPE = 'WBI' or $db:select_1.BROKER50.JDOE.
RESOLVEASSESSOR.ASSESSORTYPE = $source/tns:msg_tagIA81CONF/AssessorType 

Una voce $db:select richiama tutte le righe di qualifica, in tale modo è possibile che venga richiamata più di una riga. Come impostazione predefinita, la selezione è gestita come ripetizione, ciò è indicato dalla riga ‘for’ sotto $db:select nel riquadro Foglio elettronico.

Una volta configurato $db:select, popolare il messaggio di destinazione dal database trascinando la colonna di database dal riquadro Origine all'elemento di messaggio nel riquadro Destinazione. La mappatura è rappresentata da una linea che è tracciata tra la colonna di database nel riquadro Origine e l'elemento nel riquadro Destinazione. Una voce per tale mappa in formato Xpath viene inoltre visualizzata nel riquadro Foglio elettronico. Vengono visualizzate icone triangolari nei riquadri Origine e Destinazione in prossimità degli oggetti di cui è stata eseguita la mappatura.

Inizio modificaUtilizzo di selezioni database

Per impostazione predefinita, una voce $db:select è associata a una riga 'for' che viene iterata sulla serie di risultati selezionata. Accertarsi che la riga 'for' si trovi nella posizione corretta per la propria associazione. La funzionalità della mappatura è determinata dalla posizione della riga 'for' nel riquadro Foglio elettronico. Ad esempio, se i risultati dell'istruzione $db:select corrispondevano a 5 righe nel database e la riga 'for' si trova sopra la voce $target nel riquadro Foglio elettronico, 5 messaggi completi vengono emessi dal nodo di mappatura. Se la riga 'for' si trova nel corpo del messaggio, un messaggio viene generato con 5 elementi di ripetizione nel corpo del messaggio.

Una mappatura può contenere più righe 'for' associate a una voce $db:select che eseguono una singola selezione database e viene iterato sui risultati più volte. Ad esempio, è possibile utilizzare più righe 'for' in mappature condizionali, dove una singola riga 'for' viene utilizzata con 'condition' o con 'else'.

Una riga 'for' non è sempre obbligatoria e può essere eliminata nelle seguenti circostanze:
  • Se la selezione database restituisce una sola riga
  • Se si utilizza una funzione aggregata Xpath sui risultati di selezione

    Ad esempio: fn:sum o fn:count.

Qualsiasi espressione $db:select deve rientrare nell'ambito della voce $db:select nel riquadro Foglio elettronico, ossia deve discendere dall'istruzione select. In caso contrario, l'editor di mappatura messaggi sposta la voce $db:select in una posizione in cui l'espressione $db:select rientra nell'ambito. Accertarsi che la posizione della voce $db:select sia corretta per la propria mappatura di messaggi.

Unione tabelle database

L'unione delle tabelle database è supportata per tabelle nello stesso database. Ad esempio, considerare le due tabelle seguenti in cui PRODUCT_ID e PART_NUMBER corrispondono:
Tabella    Colonna        Riga 1    Riga 2    Riga 3      Riga 4
ORDER    PRODUCT_ID    456      456      345        123
         QUANTITY      100      200      300        400

PRODUCT  PART_NUMBER   123      456      789        012
         PART_NAME     pen      pencil   paperclip  glue
         PRICE         0.25     0.15     0.02       0.99
Un'espressione $db:select con la seguente sintassi unisce le tabelle:
$db:select.MY_DB.SCHEMA1.ORDER.PRODUCT_ID=$db:select.MY_DB.SCHEMA2.PRODUCRT.PART_NUMBER
L'espressione $db:select nell'esempio genera la seguente serie di risultati:
                Riga 1    Riga 2    Riga 3
PRODUCT_ID      456      456      123
QUANTITY        100      200      400
PART_NUMBER     456      456      123
PART_NAME       pencil   pencil   pen
PRICE           0.15     0.15     0.25
È quindi possibile utilizzare la riga 'for' per eseguire l'iterazione tramite la serie di risultati nello stesso modo poiché dà come risultato una singola tabella.
Fine modifica
Concetti correlati
Editor di mappatura dei messaggi
Creazione delle mappature di messaggi
Riferimenti correlati
Nodo Mapping
Riquadro Origine dell'editor di mappatura dei messaggi
Riquadro Destinazione dell'editor di mappatura dei messaggi
Riquadro Modifica dell'editor di mappatura dei messaggi
Riquadro Foglio elettronico dell'editor di mappatura dei messaggi
Mappature di messaggi
Informazioni particolari | Marchi | Download | Libreria | Supporto | Commenti
Copyright IBM Corporation 1999, 2006 Ultimo aggiornamento: ago 17, 2006
ar25267_