Altova MapForce 2023 Enterprise Edition

El contexto de prioridad es una forma de influir en el orden en que se evalúan los parámetros de entrada de una función. Puede que sea necesario establecer un contexto de prioridad si su asignación combina datos de dos orígenes no relacionados.

 

Para entender cómo funciona el contexto de prioridad, recuerde que cuando se ejecuta una asignación la conexión a un elemento de entrada puede levar una secuencia de varios valores. Para las secuencias con dos parámetros de entrada esto significa que MapForce debe crear dos bucles, uno de los cuales se debe procesar primero. El bucle que se procesa primero es el bucle "exterior". Por ejemplo, la función equal recibe dos parámetros: a y b. Si ambos obtienen una secuencia de valores, entonces MapForce procesa así:

 

Por cada ocurrencia de a

oPor cada ocurrencia de b

¿Es a igual a b?

 

Como puede ver en el ejemplo anterior, cada ocurrencia de b se evalúa en el contexto de cada ocurrencia de a. El contexto de prioridad permite alterar el proceso lógico para que cada ocurrencia de a se evalúe en el contexto de cada ocurrencia de b. En otras palabras, permite cambiar el bucle interno por el externo:

 

Por cada ocurrencia de b

oPor cada ocurrencia de a

¿Es a igual a b?

 

Ahora examinemos una asignación en la que el contexto de prioridad afecta al resultado de la asignación. En la asignación siguiente la función concat tiene dos parámetros de entrada. Cada parámetro de entrada es una secuencia que se genera con ayuda de la función generate-sequence. La primera secuencia es "1,2" y la segunda es "3,4".

mf_semantics_03

Primero, ejecutemos la asignación sin un contexto de prioridad. La función concat empieza por evaluar la secuencia de nivel superior, de forma que combine valores en este orden:

 

1 con 3

1 con 4

2 con 3

2 con 4

 

Esto también se refleja en el resultado de la asignación:

 

<data>
  <value>13</value>
  <value>14</value>
  <value>23</value>
  <value>24</value>
</data>

 

Si hace clic con el botón derecho en el segundo parámetro de entrada y selecciona Contexto de prioridad en el menú contextual, este se convierte en el contexto de prioridad, En la imagen siguiente se ve el contexto de prioridad de entrada rodeado por un círculo.

mf_semantics_04

Esta vez se evalúa el segundo parámetro de entrada primero. La función concat sigue concatenando los mismos valores, pero esta vez procesa primero la secuencia "3,4" y el resultado cambia a:

 

<data>
  <value>13</value>
  <value>23</value>
  <value>14</value>
  <value>24</value>
</data>

 

Hasta ahora solo hemos visto la parte teórica del contexto de prioridad. Para ver un ejemplo práctico consulte Example: Filter with priority context.

© 2017-2023 Altova GmbH