Consulta los conectores compatibles con Application Integration.

Activador de SAP ERP

El activador de SAP ERP es un activador de eventos de conector. El conector de SAP ERP te permite realizar operaciones de inserción, eliminación, actualización y lectura en datos de SAP ERP.

Antes de comenzar

  • Si planeas crear o configurar una conexión nueva para el activador de SAP ERP, asegúrate de tener el siguiente rol de IAM en el proyecto:
    • Administrador de conectores (roles/connectors.admin)
    • Para obtener información sobre cómo otorgar roles, consulta Administra el acceso.

  • Otorga los siguientes roles de IAM a la cuenta de servicio que deseas usar para el activador de SAP ERP:
  • Agrega el activador de SAP ERP

    Para agregar un activador de SAP ERP a tu integración, sigue estos pasos:

    1. En la consola de Google Cloud, ve a la página Application Integration.

      Ir a Application Integration

    2. En el menú de navegación, haz clic en Integraciones.

      Aparecerá la página Integrations List, en la que se enumeran todas las integraciones disponibles en el proyecto de Google Cloud.

    3. Selecciona una integración existente o haz clic en Crear integración para crear una nueva.

      Si creas una integración nueva, haz lo siguiente:

      1. Ingresa un nombre y una descripción en el panel Create Integration.
      2. Selecciona una región para la integración.
      3. Selecciona una cuenta de servicio para la integración. Puedes cambiar o actualizar los detalles de la cuenta de servicio de una integración en cualquier momento desde el panel Integration summary de la barra de herramientas de integración.
      4. Haz clic en Crear.

      Esto abrirá la integración en la página del editor de integración.

    4. En la barra de navegación del editor de integración, haz clic en Activadores para ver la lista de activadores disponibles.
    5. Haz clic y coloca el elemento SAP ERP trigger en el editor de integración.
    6. Para configurar el activador de SAP ERP, puedes usar una conexión de SAP ERP existente disponible en Integration Connectors o crear una nueva conexión de SAP ERP con la opción de creación de conexión intercalada.

    Configura el activador de SAP ERP mediante una conexión existente

    El activador de SAP ERP es un activador de eventos de conector, por lo que solo puedes usar una conexión de SAP ERP con la suscripción de eventos habilitada para configurar el activador.

    Si quieres obtener información para configurar un activador de SAP ERP con una nueva conexión de SAP ERP, consulta Configura el activador de SAP ERP mediante una nueva conexión.

    Para configurar un activador de SAP ERP mediante una conexión de SAP ERP existente, sigue estos pasos:

    1. Haz clic en el elemento SAP ERP trigger en el editor de integración para abrir el panel de configuración del activador.
    2. Haz clic en Configurar activador.
    3. Proporciona los siguientes detalles de configuración en la página Editor de activadores de eventos de conector:
      1. Region: Selecciona la región de tu conexión de SAP ERP.
      2. Connection: Selecciona la conexión de SAP ERP que deseas usar.

        Application Integration solo muestra las conexiones ERP de SAP que están activas y tienen habilitada una suscripción a eventos.

      3. Ingresa el nombre del campo del tipo de evento. Este campo identifica el tipo de evento asociados con la solicitud de evento entrante.
        {
            "event_type": "user.created",
            ...
            // other request fields
            ...
            }
      4. Cuenta de servicio: Selecciona una cuenta de servicio con los roles de IAM necesarios para el activador de SAP ERP.
    4. Haz clic en Listo para completar la configuración del activador y cerrar la página.

    Configura el activador de SAP ERP mediante una conexión nueva

    1. Haz clic en el elemento SAP ERP trigger en el editor de integración para abrir el panel de configuración del activador.
    2. Haz clic en Configurar activador.
    3. Omite el campo Región.
    4. Haz clic en Conexión y selecciona la opción Crear conexión en el menú desplegable.
    5. En la sección Detalles de la conexión, completa lo siguiente:
      1. Conector (Connector): Selecciona SAP ERP en la lista desplegable de conectores disponibles.
      2. Versión del conector: selecciona la versión del conector de la lista desplegable de versiones disponibles.
      3. En el campo Nombre de la conexión, ingresa un nombre para la instancia de conexión.

        Los nombres de las conexiones deben cumplir con los siguientes criterios:

        • Los nombres de las conexiones pueden usar letras, números o guiones.
        • Las letras deben estar en minúsculas.
        • Los nombres de las conexiones deben comenzar con una letra y terminar con una letra o un número.
        • Los nombres de las conexiones no pueden superar los 63 caracteres.
      4. De manera opcional, ingresa una Descripción para la conexión.
      5. De manera opcional, habilita Cloud Logging.
      6. Cuenta de servicio: Selecciona una cuenta de servicio que tenga los roles necesarios.
      7. Si quieres usar la conexión para suscripciones a eventos, selecciona Habilitar suscripción a eventos. Selección Esto muestra las siguientes opciones:
        • Habilitar la suscripción a eventos con entidad y acciones: Selecciona esta opción para usar la conexión para la suscripción a eventos y las operaciones del conector (entidades y acciones)
        • Habilitar solo suscripción a eventos: Selecciona esta opción para usar la conexión. solo para la suscripción a eventos. Si seleccionas esta opción, haz clic en Siguiente y, luego, configura la suscripción al evento.
      8. Cliente: el cliente que se autentica en el sistema SAP
      9. System Id: El ID del sistema o R3Name del sistema SAP es una string con un máximo de tres caracteres. A menudo, se usa en conexiones de balanceo de cargas.
      10. Número de sistema: Es el número por el que se define el sistema de destino. Se usa cuando se configura la propiedad de conexión del host.
      11. ID del proyecto: Es el ID del proyecto de Google Cloud en el que reside el bucket de GCS que contiene el archivo jar de SAP JCo.
      12. Bucket: Es el nombre del bucket que contiene los archivos sapjco3.jar y libsapjco3.so.
      13. ID del objeto del jar de Jaco: Es el ID del objeto del jar de JCo.
      14. ID del objeto de libsapjco3: Es el ID de objeto del archivo jar libsapjco3.
      15. Modo de tabla: Selecciona la tabla de SAP que se mostrará como vista.
      16. ID de objeto SNC_LIB: Es el ID de objeto de la biblioteca de SNC.
      17. Nombre del PSE: Es el nombre del archivo del entorno de seguridad personal (PSE) que corresponde. para el bucket. Un archivo PSE almacena el par de claves pública y privada, además de los certificados X.509 en una estructura ASN.1.
      18. Grupo: Es el nombre del grupo para el inicio de sesión. Por lo general, esto se especifica cuando el sistema SAP usa balanceadores de cargas.
      19. Servidor de mensajes: Es el nombre del servidor de mensajes que se usará cuando se establezca la conexión con el sistema SAP que usa balanceadores de cargas.
      20. Función de lectura de tabla: Nombre de la función que se usará para leer las tablas. Para ver más consulta Usa una función de tabla de lectura personalizada.
      21. Connection schema (Esquema de conexión): Selecciona un esquema de conexión que se usará para conectarse a tu sistema SAP.
      22. System ID: Es el ID del sistema o el R3Name del sistema SAP. Puedes ingresar un máximo de 3 caracteres.
      23. Contraseña de SNC: Selecciona el secreto de Secret Manager correspondiente a la contraseña de la biblioteca de SNC.
      24. Versión del secreto: Selecciona la versión del secreto.
      25. Modo SNC: Selecciona esta opción si quieres habilitar SNC para la autenticación entre Application Integration y tu sistema SAP.
      26. Nombre del SNC: Ingresa un nombre para la conexión del SNC.
      27. SNC qop: Selecciona un nivel de protección. Los siguientes son los niveles admitidos:
        • 1: Solo aplica autenticación.
        • 2: Aplica la protección de la integridad. Esto también incluye la protección de autenticación.
        • 3. Aplica la protección de la privacidad. Esto también incluye protección de la integridad y la autenticación.
        • 8: Aplica la protección predeterminada.
        • 9: Aplica la protección máxima.
      28. Nombre del socio de SNC: Ingresa el nombre de SNC del servidor de la aplicación.
      29. Modo de consulta: Selecciona las tablas de SAP que se deben mostrar como vistas.
      30. Vistas navegables: Ingresa una lista de vistas separadas por comas que se mostrarán. Por ejemplo, ViewA,ViewB,ViewC
      31. Nivel de verbosidad: Ingresa el nivel de verbosidad para el registro. La plataforma son valores del 1 al 5. Un valor más alto significa que habrá más detalles disponibles. en los registros.
      32. De manera opcional, configura los parámetros de nodo de conexión:

        • Cantidad mínima de nodos: Ingresa la cantidad mínima de nodos de conexión.
        • Cantidad máxima de nodos: Ingresa la cantidad máxima de nodos de conexión.

        Un nodo es una unidad (o réplica) de una conexión que procesa transacciones. Se requieren más nodos para procesar más transacciones para una conexión y, del mismo modo, se requieren menos para procesar menos transacciones. Para comprender cómo los nodos afectan el precio del conector, consulta Precios de nodos de conexión. Si no ingresas ningún valor, se establecen de forma predeterminada los nodos mínimos en 2 (para una mejor disponibilidad) y los nodos máximos se establecen en 50.

      33. De forma opcional, haz clic en + AGREGAR ETIQUETA para agregar una etiqueta a la conexión en forma de un par clave-valor.
      34. Haz clic en Siguiente.
    6. En la sección Destinos, ingresa los detalles del host remoto (sistema de backend) al que deseas conectarte.
      1. Tipo de destino: Selecciona un Tipo de destino.
        • Selecciona Dirección de host en la lista para especificar el nombre de host o la dirección IP del destino.
        • Si quieres establecer una conexión privada con tus sistemas de backend, Selecciona Adjunto de extremo de la lista y, luego, selecciona el adjunto de extremo requerido. de la lista Adjunto de extremo.

        Si deseas establecer una conexión pública con tus sistemas de backend con seguridad adicional, puedes considera configurar la configuración estática de direcciones IP internas para tus conexiones y, luego, para incluir en la lista de entidades permitidas solo las direcciones IP estáticas específicas.

        Para ingresar destinos adicionales, haz clic en +Agregar destino.

      2. Haz clic en Siguiente.
    7. En la sección Autenticación, ingresa los detalles de autenticación.
      1. Selecciona un Tipo de autenticación y, luego, ingresa los detalles relevantes.

        La conexión SAP ERP admite los siguientes tipos de autenticación:

        • Nombre de usuario y contraseña
      2. Para comprender cómo configurar estos tipos de autenticación, consulta Configura la autenticación.

      3. Haz clic en Siguiente.
    8. Si habilitaste la suscripción al evento, aparecerá la sección Event Subscription Details en la página de creación de conexión. Para comprender Cómo configurar los detalles de la suscripción a eventos, consulta Cómo configurar la suscripción a eventos.
    9. Revisa: Revisa tus detalles de conexión y autenticación.
    10. Haz clic en Crear.

    Configura la autenticación

    Ingresa los detalles según la autenticación que desees usar.

    • Nombre de usuario y contraseña
      • Username: Nombre de usuario para el conector
      • Contraseña: El Secret de Secret Manager que contiene la contraseña asociada con el o del conector.

    Configurar para la suscripción al evento

    Si habilitaste la suscripción al evento, ingresa los siguientes valores en el Sección Detalles de suscripción a eventos:

    1. Selecciona uno de los siguientes tipos de autenticación para el objeto de escucha de eventos.
    2. Ingresa el nombre del campo del tipo de evento. Este campo identifica el tipo de evento asociado con el solicitud de evento entrante.
      {
      "event_type": "user.created",
      ...
      // other request fields
      ...
      }
    3. Select Enable private connectivity for secured connectivity between your backend application and your connection. If you select this option, you must perform additional configuration steps after creating the connection. For more information, see Private connectivity for event subscription.
    4. Enter the dead-letter configuration. If you configure dead-letter, the connection writes the unprocessed events to the specified Pub/Sub topic. Enter the following details:
      1. Dead-letter project ID: The Google Cloud project ID where you have configured the dead-letter Pub/Sub topic.
      2. Dead-letter topic: The Pub/Sub topic where you want to write the details of the unprocessed event.

    Use a custom read table function

    RFC_READ_TABLE

    The connector uses the SAP RFC_READ_TABLE function to get data from SAP tables.

    However, it has certain limitations. As an example, consider the DATA_BUFFER_EXCEEDED exception. The SAP RFC_READ_TABLE has a fixed size of 512 bytes. It can buffer for each row of data, and thus you cannot select more columns than the amount that would fit in this buffer. If you select more than 512 bytes, an exception occurs indicating that you have exceeded the maximum buffer size allowed per row and need to select fewer columns.

    RFC_READ_TABLE2

    The SAP ERP connector supports the RFC_READ_TABLE2 table read function. You can switch the active table read function to RFC_READ_TABLE2 by setting ReadTableFunction to /SAPDS/RFC_READ_TABLE2.

    Custom read table functions

    The connector includes a custom read-table RFC, Z_CUSTOM_READ_TABLE that is similar to the SAP RFC_READ_TABLE, but with a larger buffer to address the DATA_BUFFER_EXCEEDED problem and bypass RFC_READ_TABLE limitations.

    To use the included custom read-table RFC to bypass limitations with the default RFC_READ_TABLE, follow these steps:

    1. Use the RFC_READ_TABLE function as a template for the new function. Select transaction code SE37 and the SDTX function group and copy RFC_READ_TABLE to a new function group or your working function group. In this example, RFC_READ_TABLE is copied to Z_CUSTOM_READ_TABLE.
    2. On the Attributes tab of the SAP screen, select Remote Enabled Module.
    3. On the Tables tab, set the DATA parameter to CHAR8000. Right-click on the screen and then click Display -> Change.
    4. On the Source Code tab, paste the example source code for the replacement RFC_READ_TABLE function module located in the db subfolder of the installation directory. The code is located in Z_CUSTOM_READ_TABLE.txt, though Z_CUSTOM_READ_TABLE_752.txt is preferred if your SAP ERP instance is running ABAP version 7.52 or later.
    5. Click Save.
    6. Define the imports, tables, and exceptions as documented in the provided custom read table.
    7. Activate the function module and in your connection string set ReadTableFunction to Z_CUSTOM_READ_TABLE, or the name of your function module.

    The ABAP 7.52 Custom Read Table

    Along with Z_CUSTOM_READ_TABLE.txt, there is also a Z_CUSTOM_READ_TABLE_752.txt file, for ABAP version 7.52 and above. It is similar to Z_CUSTOM_READ_TABLE, but it takes advantage of the newly available keywords in ABAP 7.52 to perform paging within the database instead of in the ABAP script itself. This makes paging efficient when working with large tables.

    It is recommended to use the Z_CUSTOM_READ_TABLE_752 RFC.

    Configure authentication in SAP

    Configure the authentication in SAP by following the instructions in the Authentication overview for the on-premises or any cloud edition of ABAP SDK for Google Cloud guide.

    Validate the trigger

    To validate the trigger, you can create an ABAP program. The following is a sample ABAP program that you can use as a reference. The ls_event_payload field changes based on your requirements:

    *&---------------------------------------------------------------------*
    *& Report ZR_TEST_INT_CONNECTOR
    *&---------------------------------------------------------------------*
    *&
    *&---------------------------------------------------------------------*
    REPORT zr_test_int_connector.
    PARAMETERS: p_auth TYPE char1 RADIOBUTTON GROUP rbg1 USER-COMMAND uc DEFAULT 'X',
     p_apik TYPE char1 RADIOBUTTON GROUP rbg1.
    DATA:
     lv_p_projects_id TYPE string,
     lv_p_locations_id TYPE string,
     lv_p_connections_id TYPE string,
     ls_input TYPE /goog/cl_connectors_v1=>ty_103.
    TYPES: BEGIN OF event_payload,
     event_type TYPE string,
     event_id TYPE string,
     name TYPE string,
     org_id TYPE string,
     END OF event_payload.
    DATA: ls_event_payload TYPE event_payload.
    ls_event_payload = VALUE #(
     event_type = 'create-entity'
     event_id = '1'
     name = 'demo-org'
     org_id = 'SAP'
     ).
    TRY.
     IF p_Auth = abap_true.
     DATA(lv_client_key) = 'IC_DEMO_GOOGLE_AUTH'.
     lv_p_connections_id = 'conn-event-triggers-from-sap-erp'.
     ELSE.
     lv_client_key = 'IC_DEMO_GOOGLE_APIK'.
     lv_p_connections_id = 'conn-event-triggers-from-sap-erp-apik'.
     ENDIF.
    * Open HTTP Connection
     DATA(lo_client) = NEW /goog/cl_connectors_v1( iv_key_name = CONV #( lv_client_key ) ).
    * Populate relevant parameters
     lv_p_projects_id = lo_client->gv_project_id.
     lv_p_locations_id = 'us-central1'.
     GET REFERENCE OF ls_event_payload INTO ls_input-payload .
    * Call API method: connectors.projects.locations.connections.listenEvent
     CALL METHOD lo_client->listen_event_connections
     EXPORTING
    
    
    iv_p_projects_id = lv_p_projects_id
     iv_p_locations_id = lv_p_locations_id
     iv_p_connections_id = lv_p_connections_id
     is_input = ls_input
     IMPORTING
    * es_raw =
     es_output = DATA(ls_output)
     ev_ret_code = DATA(lv_ret_code)
     ev_err_text = DATA(lv_err_text)
     es_err_resp = DATA(ls_err_resp).
     IF lo_client->is_success( lv_ret_code ).
     MESSAGE 'Success' TYPE 'S'.
     ELSE.
     MESSAGE lv_err_text TYPE 'E'.
     ENDIF.
    * Close HTTP Connection
     lo_client->close( ).
     CATCH /goog/cx_sdk INTO DATA(lo_exception).
     MESSAGE lo_exception->get_text( ) TYPE 'E'.
    ENDTRY.