<< Clic para mostrar Tabla de Contenidos >> Sincronización de información con SAP |
En la siguiente sección, vamos a ilustrar cómo integrar Bizagi con SAP sin necesidad de programar.
Esta integración es fácilmente configurable a través de la funcionalidad nativa llamada el Conector de SAP.
El ejemplo ilustrado en esta sección, difiere del que se enseña en el Ejemplo de integración de SAP principalmente porque: el ejemplo de esta sección crea un proceso el cual se inicia automáticamente por el sistema (de una manera programada con cierta periodicidad), el cuál a su vez sincroniza los clientes en Bizagi tal como se obtienen de SAP (crea y actualiza registros de las entidades maestras de Bizagi); mientras que el ejemplo previo tiene como objetivo proporcionar a los usuarios finales un proceso el cuál les permita buscar por vuelos disponibles y reservar uno que cumpla con las condiciones que requieren, lo cuál a su vez persiste una transacción nueva en SAP.
Antes de continuar, asegúrese de que tenga instaladas las librerías de SAP.NET requeridas por la conexión.
Para información detallada y requerimientos sobre el conector de SAP, consulte Conector SAP.
En este ejemplo, vamos a integrar el módulo Vuelos de SAP R/3 (mySAP) en un proceso automático de Bizagi (que no requerirá de intervención humana).
Nuestro objetivo es crear un proceso en Bizagi que se disparará periódicamente (p.e semanalmente), para poblar y actualizar los clientes de los vuelos tal como están registrados en SAP.
Modelamos nuestro proceso de Bizagi y lo llamamos Carga de clientes de SAP, como se muestra:
Para este escenario, cuando se modela el proceso es importante configurar las propiedades relevantes a los elementos BPMN que nos permiten ejecutar un proceso de manera automática y periódica.
Nótese que para ello por ejemplo, estamos usando un evento de inicio de tipo temporizador.
Configuramos la periodicidad bajo la cuál se inician nuevos casos:
Tenga presente que para un ambiente de producción, y si va a sincronizar una gran cantidad de registros, deberá planear esta tarea acordemente (p.e, agendarla para una ejecución por fuera de las horas pico en el sistema, preferiblemente por fuera del horario laboral). |
De manera similar, y para que la tarea de servicio invoque la BAPI de SAP, damos un manejo asíncrono y especificamos su parámetros de reintentos:
Para más información sobre el módulo de vuelos que viene instalado en SAP para propósitos educativos, consulte: |
Hemos dividido este ejemplo y ejercicio en 3 pasos principales:
•Preparación.
En este paso, básicamente ilustraremos cómo identificar cuáles parámetros están involucrados tanto para enviar como para recibir información desde SAP (especialmente como una guía útil para las personas que no sean necesariamente expertas en SAP).
Revisaremos todo lo relevante a las funciones en SAP que vamos a integrar, principalmente a través de las opciones provistas por SAP Logon.
También, ilustra las consideraciones de diseño de nuestro modelo de datos en este ejemplo.
•Configuración de la conexión.
Ilustraremos cómo configurar la conexión a su sistema SAP.
Este paso es necesario una sola vez.
•Configuración de la invocación de la BAPI.
Ilustraremos cómo configurar la invocación de las BAPI de SAP desde el proceso en Bizagi.
En este ejemplo, invocamos la BAPI wrapper llamada BAPI_FLCUST_GETLIST.
Tenga en cuenta que para el tercer paso, ya debería tener instaladas las librerías SAP.NET requeridas, como se describe en Conector de SAP (de lo contrario Bizagi Studio no se conectará con su sistema SAP). |
Vamos a necesitar identificar explícitamente la información relevante para usar la BAPI BAPI_FLCUST_GETLIST en SAP (qué información es obligatoria como parámetros de import, export y al usar tablas por referencia).
Usamos el SAP Logon para navegar los detalles de esta BAPI.
A través del comando se37 en SAP y del constructor de funciones, podemos ver la definición de los Experto de funciones definidos de SAP (al dar clic en Display seguidamente):
Para este ejemplo, no estaremos usando filtros al momento de obtener los clientes de vuelo desde SAP. Sin embargo y para efectos de ilustrar un ejemplo más sencillo y fácilmente verificable, obtendremos los primeros 20 registros al hacer uso del parámetro que define un máximo de registros (MAX_ROWS):
Para conocer mayor detalle sobre la información que retorna SAP, ubicamos la estructura de datos BAPISCUDAT que figura dentro de la respuesta de los parámetros de tablas o de export:
Al hacer doble clic sobre BAPISCUDAT , podemos ver cuáles son los tipos de datos de la información que describe un cliente de vuelo en SAP:
Para configurar los parámetros de entrada en su integración con SAP, deberá considerar la información presentada tanto en: Import como en tables. Para configurar los parámetros de salida en su integración con SAP, deberá considerar la información presentada tanto en: Export como en tables. |
Observe que puede usar la opción Test/Execute para validar sus resultados.
En nuestro ejemplo, validaremos la ejecución de la BAPI usando MAX_ROWS=20.
Para los valores previamente usados, estos son nuestros primeros 20 clientes de vuelo (útil para validaciones posteriores desde Bizagi):
Teniendo en cuenta el objetivo de nuestro proceso Cargar clientes de SAP, además de la información consultada en SAP para la integración, en este ejemplo consideramos la siguiente definición en nuestro modelo de datos:
Observe las siguientes consideraciones en el modelamiento:
1. Para efectos de un ejemplo simplificado, no tomaremos la totalidad de la información de un cliente de vuelo de SAP, sino que usaremos solamente: ID, Nombre (Name), Código postal (Postal code), Correo electrónico (E-mail address), Teléfono (Phone) y Dirección (Street).
2. La información desde SAP será almacenada en una entidad llamada Flight Customer la cual es una entidad de tipo maestra en Bizagi. Nótese que esta entidad debe ser estrictamente una entidad maestra.
Si desea almacenar información en una entidad paramétrica, entonces el acercamiento de este ejemplo no debe ser usado sino que deberá considerar una replicación personalizada.
3. Nuestra entidad de proceso se llama LoadSAPCustomers y debido que las entidades en Bizagi requieren de por lo menos un atributo, utilizaremos uno llamado Synchronization date, el cuál será útil para almacenar la fecha en la cuál la sincronización se ejecutó.
4. Para permitir que Bizagi actualice clientes de manera automáticamente cuando éstos ya existan previamente (y evitar registros duplicados), es importante definir las llaves de negocio a nivel de nuestra entidad Flight Customer:
Ahora, ingresamos los detalles de conexión para el conector de SAP en Bizagi.
Para hacer esto, vaya a la vista de Experto y localice el módulo Sistemas.
En el panel de la derecha, localice SAP bajo el ítem Conectores.
Incluya una nueva configuración de un conector de SAP haciendo clic derecho en SAP y seleccionando Nueva Configuración...:
Ingrese los detalles de su sistema SAP como se describe a continuación:
•Nombre del Host: La dirección IP o el nombre del servidor que aloja su sistema SAP.
•Cliente: El número del cliente que accede al sistema SAP.
•Espera de inactividad: El tiempo de espera en segundos para conexiones inactivas.
Por defecto, usted puede asignar un valor de 600.
•Idioma: El código ISO de 2 letras que representa la configuración de idioma (como se ingresó cuando se accedió a SAP a través de SAP Logon).
•Número máximo de conexiones: El número máximo de conexiones que permitirá a través del conector de SAP.
Por defecto, puede asignar un valor de 10 conexiones.
•Tamaño del Pool: El número de conexiones que se manejaran para su reutilización.
Por defecto, usted puede asignar un valor de 5.
•Número de sistema: El número de su sistema SAP.
•Usuario: Un usuario autorizado para acceder e invocar BAPIs o RFCs.
El usuario de SAP configurado aquí, será usado como la cuenta de servicio de este conector.
•Contraseña: La contraseña del usuario autorizado de SAP.
Cuando termine, dé clic en Ok.
Observe que puede usar diferentes parámetros de configuración para cada ambiente de su proyecto (desarrollo, pruebas y producción).
Vamos a integrar Bizagi con SAP en la actividad Load Customers from SAP (Cargar clientes desde SAP).
Por ello, definimos una acción de actividad a la salida de la misma (OnExit) para invocar la BAPI llamada BAPI_FLCUST_GETLIST desde el paso número 4 del asistente de proceso.
Para hacerlo, siga estos pasos:
1. Dé clic en On Exit y adicione una invocación a SAP.
2. Ubique la función de módulo específica al ingresar el nombre de la BAPI y al usar el botón para buscar (Search).
Seleccione la BAPI y dé clic en Siguiente.
3. Dé clic en el botón de maximizar para mapear las entradas.
Asegúrese de utilizar la función llamada Constante para mapear un valor igual a "20" hacia el parámetro MAX_ROWS:
Dé clic en Siguiente.
4. Mapee los parámetros de salida de manera correspondiente.
Lo relevante en este escenario de ejemplo es:
•Asegurarse de mapear en la respuesta desde SAP hacia Bizagi, el campo que es la definición de la llave de negocio para esa entidad (en este ejemplo es CustomerID).
•Asegurarse de mapear hacia la colección de clientes de Bizagi (Customer), haciendo uso de la opción por defecto Append que es representada como (A).
El uso que se ilustra en la imagen anterior, donde se mapean los datos que pertenecen a la definición de la llave de negocio en Bizagi Studio (para actualizar registros existentes), requiere estrictamente que estos registros ya estén persistidos en la base de datos. Es decir, este acercamiento no funcionará si la información está siendo manejada directamente sobre las interfaces de usuario (no funcionará si los datos están únicamente en el scope de la actividad). |
Dé clic en Siguiente.
5. Dé clic en Finalizar (Finish) para omitir la parte acerca del manejo de error y completar la configuración.
Esto se realiza así en este ejemplo puesto que esta BAPI específica no cuenta con ninguna excepción funcional a nivel de la BAPI en SAP (por lo que no se requiere configuración de manejo de error especial).
Para ver en detalle cómo se realiza la configuración de manejo de error en la integración con SAP (si sus BAPIs cuentan con excepciones funcionales predefinidas), consulte Configuración de excepciones de SAP. |
Una vez que haya finalizado, visualizará la acción definida como Connector BAPI_FLCUST_GETLIST.
Dado que este un proceso automático donde no hay intervención humana, en este punto es importante asegurarse de que la entidad de proceso se haya inicializado.
6. Inicialice la entidad de proceso creando una nueva acción de actividad en On Enter:
Para este ejemplo, creamos una expresión que tenga una instrucción de asignación de la fecha actual a nuestro atributo llamado Synchronization date.
Esto nos permitirá almacenar la fecha en la cuál la sincronización fue ejecutada:
Al finalizar, se deben visualizar las siguientes acciones de actividad para esta tarea:
En este punto, hemos integrado Bizagi con SAP a través del conector de SAP con lo que se evita la necesidad de programar, y sincronizaremos la información directamente desde SAP hacia Bizagi de una forma programada.
Last Updated 2/19/2024 10:57:30 AM