Nodo de contexto prioritario

www.altova.com Imprimir este apartado Página anterior Subir un nivel Página siguiente

Inicio >  Diseño de asignaciones > Reglas y estrategias de asignación de datos >

Nodo de contexto prioritario

Cuando aplicamos una función a distintos elementos del esquema, MapForce necesita saber qué nodo será el nodo de contexto. Los demás nodos se procesan en relación al nodo de contexto. Esto se consigue designando un elemento (o nodo) como contexto prioritario.

 

El contexto prioritario se utiliza para clasificar por orden de prioridad la ejecución de las asignaciones de los elementos no relacionados entre sí.

 

Las asignaciones siempre se ejecutan de arriba a abajo. Si recorre/realiza una búsqueda en dos tablas, entonces se procesa primero un bucle y después otro. Cuando se realizan asignaciones de elementos no relacionados entre sí, sin establecer el contexto prioritario, MapForce no sabe qué bucle debe ejecutarse primero. Cuando desconoce el contexto prioritario, MapForce selecciona automáticamente la primera tabla o nodo de origen.

 

Solución:

Decida en qué datos de origen debe realizarse la búsqueda primero o qué nodo debe recorrerse primero y establezca el contexto prioritario en su conector.

 

Más abajo puede ver una imagen del archivo CompletePO.mfd de la carpeta ...\MapForceExamples.

 

Observe que esta asignación tiene varios componentes de origen. ShortPO, Customers y Articles son esquemas que tienen asociados archivos XML de instancia. Los datos de  todos estos componentes se asignan al archivo/esquema XML CompletePO. El nodo de contexto prioritario aparece señalado con un círculo.

 

El nodo CustomerNr del esquema de origen ShortPO se compara con el elemento Number del archivo Customers.
CustomerNr se designa como contexto prioritario y se coloca en el parámetro a de la función equal.
En el archivo Customers se busca el mismo número una vez. El parámetro b contiene el elemento Number del archivo Customers.
Si se encuentra el número, el resultado se pasa al parámetro bool de la función filter.
El parámetro node/row pasa los datos de Customers a on-true cuando el parámetro bool es true, es decir, cuando se encuentra el mismo número.
Se pasan los demás datos de Customers (elementos Number, FirstName, LastName) y todos se conectan a los elementos correspondientes del esquema de destino.

 

Al designar como contexto prioritario el parámetro b de la función equal (es decir, el elemento Number) conseguimos esto:

 

MapForce carga el primer Number en el parámetro b
Lo compara con el elemento CustomerNr del parámetro a
Si no son iguales, MapForce carga el siguiente Number en el parámetro b y lo comprueba con a
Se itera en cada elemento Number del archivo y se intenta buscar ese número en ShortPO.

 

context-switch-prof

© 2019 Altova GmbH