Functoid Indice
Il functoid Index consente di selezionare le informazioni da un record specifico in una serie di record. Ogni functoid Index raccoglie informazioni da un singolo campo.
Alcuni record in genere sono ripetuti più volte in un file di input. Ad esempio, in un report meteo, l'elemento DailySummary potrebbe verificarsi molte volte. L'elemento DailySummary potrebbe includere attributi per la temperatura, la pressione barometrica e la velocità del vento. In questo esempio viene riportato il codice di un bollettino meteorologico:
<ns0:WeatherReport xmlns:ns0="http://IndexFunctoid.WeatherReport">
<DailySummary Pressure="80" Windspeed="10" Temperature="20" />
<DailySummary Pressure="78" Windspeed="20" Temperature="23" />
<DailySummary Pressure="77" Windspeed="16" Temperature="24" />
</ns0:WeatherReport>
Nello schema sottostante la proprietà Max Occurs per il record DailySummary verrà impostata su un record ricorrente o ciclo. In BizTalk Mapper il record viene compilato come ciclo.
Si supponga di voler raccogliere informazioni meteo per i primi due record DailySummary del report meteo. In BizTalk Mapper ogni attributo del record DailySummary dello schema di origine in ingresso può essere connesso a un functoid Index . A sua volta, ogni functoid index può specificare il record DailySummary da cui disegnare le informazioni: la prima o la seconda. I functoid index possono quindi essere connessi ai campi appropriati dello schema di destinazione.
Nella figura seguente vengono illustrati i functoid indicizzati usati in questo modo.
Esempio del functoid Indice
Per ottenere le informazioni di riepilogo giornaliere per il primo giorno, il set superiore di tre functoid indice ha i valori di indice impostati su 1. Per ottenere le informazioni di riepilogo giornaliere per il secondo giorno, il set inferiore di tre functoid indice ha i valori di indice impostati su 2.
I functoid di indice usano la finestra di dialogo Configura <functoid functoid> per impostare i parametri di input. Il primo parametro di input identifica un campo contenuto in un record di ciclo dello schema di origine. Il secondo e i successivi parametri di input specificano il record specifico. È possibile specificare più valori di indice per selezionare un record all'interno di strutture annidate che si ripetono. Il valore di indice per la struttura più interna è il secondo parametro. Il valore di indice per la successiva struttura più esterna sarebbe il terzo parametro e così via. Si supponga, ad esempio, che i record DailySummary precedenti fossero inclusi nei record WeeklyData . Per recuperare la pressione dal primo DailySummary nel secondo WeeklyData, il secondo parametro sarà 1 e il terzo parametro sarà 2.
Si noti che in questo esempio si presuppone che il campo Pressione non si ripeta. Se il campo ha ripetuto, gli indici verranno disattivati, il conteggio inizia con il campo Pressione anziché il riepilogo giornaliero.
Nota
Anche se un parametro di input di una sequenza di indici è in genere una costante, è possibile utilizzare un collegamento da un nodo nello schema di origine. Se il collegamento proviene da un record di ciclo che non è un padre del primo parametro di input, il valore di input della sequenza di indici proviene dalla prima istanza del nodo nel messaggio di istanza di input.
Nota
Il valore di input della sequenza di indici è sempre relativo al contesto corrente nel documento di origine.
Importante
Un functoid index deve avere il numero di valori di indice che esistono nodi padre dal livello di campo al primo livello al di sotto del nodo radice. Nel messaggio di istanze multiple del bollettino meteorologico, ad esempio, sono necessari due valori di indice. Nel messaggio di istanza singola del bollettino meteorologico, è necessario un solo valore di indice. Impossibile impostare il numero necessario di valori di indice di un functoid Index crea l'output in base al primo nodo nel messaggio dell'istanza di origine corrispondente al primo parametro di input del functoid Index .
Come aggiungere functoid Indice a una mappa
Functoid avanzati
Functoid Iterazione
Functoid Conteggio record