Altova MapForce 2025 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 llevar 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 tanto a como b reciben una secuencia de valores, entonces MapForce procesa así:

 

Por cada instancia de a

oPor cada instancia de b

¿Es a igual a b?

 

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

 

Por cada instancia de b

oPor cada instancia 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 combina 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. A continuación, puede ver la entrada del contexto de prioridad marcada con 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". Por consiguiente, el resultado pasa a ser:

 

<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 Ejemplo: filtrar con el contexto de prioridad

 

© 2018-2024 Altova GmbH