En esta ocasión, vamos a ver cómo se puede hacer el tratamiento de contextos mediante las funciones de nodo que proporciona PI para el mapeo de mensajes. En la primera parte de este artículo ya vimos cómo utilizar la selección explícita de contextos.

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo, selección explícita de contextos 1

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo, selección explícita de contextos 2

Hay tres maneras de eliminar los contextos utilizando funciones estándar, seleccionando el nodo y eliminando el contexto o mediante las funciones removeContext y collapseContext.

removeContexts

Esta función se utiliza para eliminar todo cambio de contexto entre dos elementos cualquiera de una cola. Elimina los niveles de jerarquía superiores de manera que todos los elementos de la cola destino se asignan a un elemento raíz de la cola origen, generando una lista.

 SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo, removeContexts

collapseContexts

Es similar a la anterior, pero guarda sólo el primer valor de cada contexto, eliminando el resto. Si un contexto está vacío (ResultList.SUPPRESS), lo reemplaza con una cadena vacía. El resultado es una cola en la que se han borrado todos los cambios de contexto internos, de manera que todos los valores pertenecen a un único contexto.

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo,collapseContexts

useOneAsMany

Se usa para replicar el valor de un campo que tiene una ocurrencia única tantas veces como valores existan de otro campo con el que lo relacionemos. Esta función necesita tres parámetros de entrada.

  • El primero espera la lista de valores que se pretende propagar al mensaje de salida.
  • El segundo, el número de iteraciones, es decir, el número de veces que se quiere replicar el valor dado en el primer parámetro.
  • El tercer parámetro será la lista de cambios de contexto. Dependiendo de este parámetro, los valores de origen se propagarán al destino después de cada cambio de contexto.

Para que la función se comporte correctamente, los dos primeros parámetros deben tener el mismo número de contextos, mientras que los dos últimos deben tener el mismo número de valores.

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo, useOneAsMany
En este ejemplo, tenemos varios empleados asignados a cada responsable de equipo. El contexto viene dado por el ID del empleado. Observamos que, en la salida, el responsable de cada equipo se ha replicado un número de veces dado por el número de empleados asignados en la segunda columna.

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo, replicación
La tercera columna, nos da los cambios de contexto que esperamos en la salida.

SplitbyValue

La función inserta cambios de contexto según los valores de la cola de entrada.

  • Value Change: en el caso del Value Change, el cambio de contexto se da sólamente cuando hay un cambio en la cola, agrupando los elementos que lleguen con el mismo valor.

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo,SplitbyValue

  • Each Value: Añade un cambio de contexto para cada valor de la cola, independientemente de que sean iguales o distintos.

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo, each value

formatByExample

Esta función se utiliza para sincronizar dos colas de igual longitud en cuanto a sus cambios de contexto. En el mapeo se cogen los valores de la primera cola y se les aplican los cambios de contexto de la segunda.

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo,formatByExample
Si las dos colas no tienen el mismo número de valores, la función dará un error. Tenemos una lista de IDs de empleado y sus nombres, donde los cambios de contexto indican un cambio de equipo. En la salida de la función observamos los ID de empleados separados por equipo (A, B, C y D).

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo (12)


createIf

Utilizamos la función para crear un campo en la estructura de salida dependiente de una condición.Si el valor de entrada es “true”, se creará un valor en la lista. En caso contrario, no.

SAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo, createIfSAP PI ·Tratamiento de contextos en el mapeo gráfico funciones de nodo, createIf 2

En este ejemplo, queremos crear el segmento sólo para los empleados pertenecientes al equipo B (su ID de empleado empieza por esa letra). Todos los demás valores aparecen en la cola de destino con el valor SUPPRESS y no serán tenidos en cuenta al crear el mensaje de salida.

Esperamos que este artículo te haya resultado útil a la hora de tratar contextos en el mapeo gráfico. Recuerda que si tienes cualquier duda puedes dejarla en el apartado de comentarios. También puedes ponerte en contacto con nuestros consultores en el  departamento de User Experience & Interación.

Área User Experience & Integración