Leer en inglés

Compartir a través de


Índice (functoid)

El functoid Index permite seleccionar información de un registro específico en una serie de registros. Cada functoid Index recopila información de un solo campo.

Algunos registros suelen aparecer varias veces en un archivo de entrada. Por ejemplo, en un informe meteorológico, el elemento DailySummary puede producirse muchas veces. El elemento DailySummary puede incluir atributos para la temperatura, la presión barométrica y la velocidad del viento. El código que se muestra a continuación es un ejemplo de un informe meteorológico.

<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>  

En el esquema subyacente, la propiedad Max Occurs del registro DailySummary se establecería en unbounded para indicar un registro periódico o de bucle. El Asignador de BizTalk compila este registro como un bucle.

Supongamos que desea recopilar información meteorológica para los dos primeros registros DailySummary del informe meteorológico. En el asignador de BizTalk, cada atributo del registro DailySummary del esquema de origen entrante se puede conectar a un functoid Index . A su vez, cada functoid index puede especificar el registro DailySummary del que se va a dibujar la información: la primera o la segunda. A continuación, los functoids de índice se pueden conectar a los campos adecuados del esquema de destino.

En la ilustración siguiente se muestran los functoids de índice usados de esta manera.

Imagen que muestra functoids de índice conectados a los campos adecuados del esquema de destino.
Ejemplo de functoid de índice

Para obtener la información de resumen diaria del primer día, el conjunto superior de tres functoids de índice tiene sus valores de índice establecidos en 1. Para obtener la información de resumen diaria del segundo día, el conjunto inferior de tres functoids de índice tiene sus valores de índice establecidos en 2.

Los functoids de índice usan el cuadro de diálogo Configurar <functoid> functoid para establecer sus parámetros de entrada. El primer parámetro de entrada identifica un campo que está dentro de un registro de bucle en el esquema de origen. El segundo parámetro de entrada y los siguientes especifican el registro concreto. Puede especificar múltiples valores de índice para seleccionar un registro de las estructuras de repetición anidadas. El valor de índice de la estructura más interna es el segundo parámetro. El valor de índice de la siguiente estructura más externa sería el tercer parámetro y así sucesivamente. Por ejemplo, supongamos que los registros DailySummary anteriores estaban dentro de los registros WeeklyData . Para recuperar la presión del primer DailySummary en el segundo WeeklyData, el segundo parámetro sería 1 y el tercer parámetro sería 2.

Observe que en este ejemplo se supone que el campo Presión no se repite. Si el campo se repite, los índices estarían desactivados, el recuento comenzaría con el campo Presión , en lugar del Resumen diario.

Nota

Aunque un parámetro de entrada de secuencia de índice suele ser una constante, es posible utilizar un vínculo desde un nodo del esquema de origen. Si este vínculo proviene de un registro de bucle que no es primario en relación con el primer parámetro de entrada, el valor de entrada de secuencia de índice proviene de la primera instancia del nodo del mensaje de instancia de entrada.

Nota

El valor de entrada de secuencia de índice siempre guarda relación con el contexto actual del documento de origen.

Importante

Un functoid de índice debe tener tantos valores de índice como nodos primarios del nivel de campo al primer nivel por debajo del nodo raíz. Por ejemplo, en el mensaje de instancia de informe meteorológico múltiple, se requieren dos valores de índice. En el mensaje de instancia de informe meteorológico simple, únicamente es necesario un valor de índice. Si no se establece el número necesario de valores de índice de un functoid de índice, se crea una salida basada en el primer nodo del mensaje de instancia de origen que coincide con el primer parámetro de entrada del functoid Index .

Consulte también

Cómo agregar functoids de índice a una asignación
Functoids avanzados
Functoid de iteración
Functoid de número de registros