En esta entrada vamos a ver un ejemplo de proceso NW BPM para ver las aplicaciones que tiene SAP Process Orchestration. Los requerimientos incluyen la entrada de un mensaje con múltiples registros que hay que tratar de manera individual.
Usaremos índices para separar los registros y procesarlos uno a uno.
Para este escenario tendremos instalado y configurado el SAP NetWeaver Development Studio 7.5, con las conexiones con PI (Integration Directory y ESR) y los objetos necesarios definidos.
Se habrán creado las Service Interfaces y los Data Types necesarios para el proceso en el ESR e importado al proyecto en el NWDS.
El proceso completo, que no se tratará en su totalidad, es el siguiente. En este escenario, se trata un fichero de modificaciones de empleados enviado desde SAP HCM a NW BPM vía SAP PI y se procesan las contrataciones nuevas antes de actualizar todos los registros en SuccessFactors.
Proceso
Ahora vamos a mostrar el proceso de dividir el mensaje de entrada registro a registro para el tratamiento individual.
Definir los Data Objects
DO_TypeCount – se usará para contar el número de registros de la estructura de entrada.
Data type: integer
DO_LoopCount – usado para contar el número de iteraciones en el flujo del proceso.
Data type: integer
DO_Index – usado para el índice correspondiente a cada registro a evaluar
Data type: long
Se usará el tipo long para que sea compatible con la función get en el mapeo.
DO_HCM_Users – mensaje con los registros de datos de empleados de la organización importado desde el ESR.
Data type: DT_HCM_Users
DO_User_Split – nuevo objeto al que se mapeará el registro individual para su mapeo y posterior tratamiento, importado desde el ESR.
Data type: DT_Users
Start
En este primer paso del proceso se recibe el mensaje de entrada mediante un trigger que lleva asociada la Service Interface definida e importada desde el ESR.
En el evento Start, se realiza el mapeo inicial desde el mensaje de entrada al DO_HCM_Users y se inicializan los contadores.
DO_Index = 0.
DO_LoopCount = 0.
DO_TypeCount = count(DT_HCM_Users/user).
Uncontrolled Merge
Recoge el proceso después de procesar las opciones de la puerta definida en el siguiente paso.
Exclusive choice Gateway
Se pone una condición para comprobar si ya se ha recorrido todo el mensaje de entrada o hay que seguir el proceso.
Numeric-equal(DO_TypeCount, DO_LoopCount)
Subproceso Split
Actividad de mapeo
Se mapea del objeto DO_HCM_Users al objeto destino DO_User_Split usando la función get para seleccionar, mediante el índice, el registro a tratar.
Contadores
Se actualizan los contadores de índice e iteraciones sumándoles uno en el mapeo.
End
Final del proceso.
Monitorización
Una vez finalizado el proceso y, después de asegurarnos de que no tiene ningún error, solo queda hacer el build y deploy para empezar a probarlo.
A través del wsnavigator (https://<host>:<port>/wsnavigator) podemos configurar un mensaje de entrada y lanzarlo para monitorizar el proceso después en el SAP NetWeaver Administrator (http://<host>:<port>/nwa) .
Este escenario es una demostración de los procesos que se pueden implementar usando las herramientas y funcionalidades de SAP PI y SAP BPM englobadas dentro de SAP Process Orchestration.
Nota: La configuración de las conexiones entra SAP NW PI y NW BPM quedan fuera del ámbito del documento.
Esperamos que este artículo te haya servido de ayuda. Si lo deseas, puedes dejarnos un comentario o ponerte en contacto con nuestro departamento de User Experience & Integration