Nodos con múltiples instancias
En este tema se explica cómo procesa MapForce los nodos que pueden tener varias instancias. A lo largo de esta sección, nos referimos a estos nodos como secuencias. MapForce aplica las siguientes reglas a las secuencias:
•Si una secuencia de origen está conectada a un nodo de destino, MapForce recorre la secuencia y genera una instancia del nodo de destino por cada instancia del nodo de origen. •Si se aplica un filtro, MapForce evalúa la condición del filtro para cada elemento de la secuencia y solo realiza la asignación de los elementos para los que la condición de como resultado true. •Si una secuencia de origen está vacía, no se generan nodos de destino correspondientes. |
Excepciones
Las reglas de procesamiento de secuencias tienen estas excepciones:
Excepción 1
Si el elemento de destino es un elemento XML raíz, entonces siempre se crea una sola vez. Si conecta una secuencia de origen al elemento raíz, no se pueden generar varios elementos raíz, pues podría dar lugar a un documento XML que sea válido conforme al esquema. Si los atributos del elemento raíz también están conectados, la serialización XML falla en tiempo de ejecución. Por lo tanto, evite conectar secuencias al elemento XML raíz.
Excepción 2
Si el elemento de destino solo puede contener un único valor, solo se escribe un valor en el destino. Algunos ejemplos de estos elementos son los atributos XML, los campos de bases de datos y los componentes de resultado simple.
Por ejemplo, en la siguiente asignación se utiliza la función generate-sequence para generar una secuencia de tres números enteros (1, 2, 3). Dado que el componente de resultado simple solo admite un único valor, solo se escribe el primer número entero en el resultado. Los valores restantes se ignoran.

Excepción 3
Si el esquema de origen especifica que un elemento solo puede aparecer una vez, pero los datos de origen contienen varias instancias del elemento, es posible que MapForce utilice únicamente la primera instancia. Para desactivar este comportamiento de MapForce, desactive la casilla Optimización de procesamiento de datos de entrada basada en minOccurs/maxOccurs en la configuración del componente.
Conectar secuencias a las entradas de una función
Si las secuencias están conectadas a más de una entrada de la función, la asignación genera el producto cartesiano de las secuencias de entrada. Esto significa que cada elemento de una secuencia se combina con cada elemento de cada una de las demás secuencias. Esto puede dar lugar a estructuras de datos inesperadas, problemas de rendimiento o resultados de cálculo no deseados.
Cuando utilice una función con varias entradas, conecte una secuencia a una sola entrada. Conecte todas las entradas restantes a elementos de valor único.
Si una función recibe una secuencia vacía como entrada, devuelve un resultado vacío y no genera ninguna salida correspondiente.
Archivos de ejemplo
Puede utilizar las siguientes asignaciones para probar las secuencias:
•MapForceExamples\ArticlePricing.mfd
•MapForceExamples\ExcelColumnsToRecords.mfd
•MapForceExamples\ExcelWith2Dimensions.mfd
•MapForceExamples\FindHighestTemperatures.mfd
•MapForceExamples\OfficeAddressFromLines.mfd