Confira os conectores compatíveis com o Application Integration.

Gatilho de ERP do SAP

O acionador de ERP do SAP é um gatilho de evento do conector do SAP ERP que permite executar operações de inserção, exclusão, atualização e leitura nos dados do SAP ERP.

Antes de começar

  • Se você planeja criar ou configurar uma nova conexão para o gatilho SAP ERP, verifique se tem o seguinte papel do IAM no projeto:
    • Administrador de conectores (roles/connectors.admin)
    • Para informações sobre como conceder papéis, consulte Gerenciar acesso.

  • Conceda os seguintes papéis do IAM à conta de serviço que você quer usar para o gatilho SAP ERP:
    • Invocador do Application Integration (roles/integrations.integrationInvoker)
    • Para informações sobre como conceder papéis a uma conta de serviço, consulte Gerenciar o acesso a contas de serviço.

  • Adicionar o gatilho do SAP ERP

    Para adicionar um gatilho SAP ERP à integração, siga estas etapas:

    1. No console do Google Cloud, acesse a página Application Integration.

      Acessar o Application Integration

    2. No menu de navegação, clique em Integrations.

      A página Lista de integrações aparece listando todas as integrações disponíveis no projeto do Google Cloud.

    3. Selecione uma integração ou clique em Criar integração para criar uma nova.

      Se você estiver criando uma nova integração:

      1. Insira um nome e uma descrição no painel Criar integração.
      2. Selecione uma região para a integração.
      3. Selecione uma conta de serviço para a integração. Você pode mudar ou atualizar os detalhes da conta de serviço de uma integração a qualquer momento no painel Resumo da integração na barra de ferramentas da integração.
      4. Clique em Criar.

      Isso abre a integração na página do editor de integração.

    4. Na barra de navegação do editor de integração, clique em Gatilhos para ver a lista de gatilhos disponíveis.
    5. Clique e coloque o elemento do gatilho ERP do SAP no editor de integração.
    6. Para configurar o gatilho SAP ERP, use uma conexão existente do SAP ERP disponível no Integration Connectors ou crie uma nova conexão SAP ERP usando a opção de criação de conexão inline.

    Configurar o gatilho do SAP ERP usando uma conexão atual

    O gatilho SAP ERP é um acionador de evento do conector. Portanto, só é possível usar uma conexão do SAP ERP com a assinatura de eventos ativada para configurar o acionador.

    Para informações sobre como configurar um gatilho SAP ERP usando uma nova conexão SAP ERP, consulte Configurar o gatilho SAP ERP usando uma nova conexão.

    Para configurar um gatilho SAP ERP usando uma conexão existente do SAP ERP, execute as seguintes etapas:

    1. Clique no elemento Gatilho do SAP ERP no editor de integração para abrir o painel de configuração do gatilho.
    2. Clique em Configurar gatilho.
    3. Informe os seguintes detalhes de configuração na página Editor do acionador de evento do conector:
      1. Região:selecione a região da sua conexão do SAP ERP.
      2. Conexão:selecione a conexão do SAP ERP que você quer usar.

        A Application Integration exibe apenas as conexões SAP ERP que estão ativas e têm uma assinatura de evento ativada.

      3. Insira o nome do campo do tipo de evento. Esse campo identifica o tipo de evento associado à solicitação de evento recebida.
        {
            "event_type": "user.created",
            ...
            // other request fields
            ...
            }
      4. Conta de serviço: selecione uma conta de serviço com os papéis do IAM necessários para o gatilho do SAP ERP.
    4. Clique em Concluído para concluir a configuração do acionador e fechar a página.

    Configurar o gatilho do SAP ERP usando uma nova conexão

    1. Clique no elemento Gatilho do SAP ERP no editor de integração para abrir o painel de configuração do gatilho.
    2. Clique em Configurar gatilho.
    3. Ignore o campo Região.
    4. Clique em Conexão e selecione a opção Criar conexão no menu suspenso.
    5. Na seção Detalhes da conexão, faça o seguinte:
      1. Conector: selecione ERP da SAP na lista suspensa de conectores disponíveis.
      2. Versão do conector: selecione a versão do conector na lista suspensa de versões disponíveis.
      3. No campo Nome da conexão, insira um nome para a instância de conexão

        Os nomes de conexão precisam atender aos seguintes critérios:

        • Os nomes de conexões podem usar letras, números ou hifens.
        • As letras precisam ser minúsculas.
        • Os nomes das conexões precisam começar com uma letra e terminar com uma letra ou um número.
        • Os nomes das conexões não podem exceder 63 caracteres.
      4. Também é possível digitar uma Descrição para a conexão.
      5. Se quiser, ative o Cloud Logging.
      6. Conta de serviço: selecione uma conta de serviço que tenha os papéis necessários.
      7. Para usar a conexão para inscrições de eventos, selecione Ativar inscrição de eventos. Ao fazer isso, as seguintes opções são exibidas:
        • Ativar assinatura de evento com entidade e ações: selecione essa opção para usar a conexão para assinatura de eventos e operações de conector (entidades e ações).
        • Ativar somente inscrição de eventos: selecione esta opção para usar a conexão somente para inscrições de eventos. Se você selecionar essa opção, clique em Próxima e em Configurar a inscrição em eventos.
      8. Cliente: o cliente autenticado no sistema SAP.
      9. System Id: o System Id ou R3Name do sistema SAP é uma string com no máximo três caracteres. Geralmente é usado em conexões de balanceamento de carga.
      10. Número do sistema: o número pelo qual o sistema de destino é definido. Usado ao definir a propriedade de conexão do host.
      11. ID do projeto: o ID do projeto do Google Cloud em que está o bucket do GCS que contém o jar do JCo do SAP.
      12. Bucket: o nome do bucket que contém os arquivos sapjco3.jar e libsapjco3.so.
      13. ID do objeto do jar do Jaco: o ID do objeto do jar do JCo.
      14. ID do objeto libsapjco3: ID do objeto do jar libsapjco3.
      15. Modo de tabela: selecione a tabela SAP a ser exibida como visualização.
      16. ID do objeto SNC_LIB: ID do objeto da biblioteca SNC.
      17. Nome do PSE: nome do arquivo do ambiente de segurança pessoal (PSE, na sigla em inglês) aplicável ao bucket. Um arquivo PSE armazena o par de chaves pública e privada, bem como certificados X.509, em uma estrutura ASN.1.
      18. Grupo: o nome do grupo para logon. Normalmente, isso é especificado quando o sistema SAP usa balanceadores de carga.
      19. Servidor de mensagens: o nome do servidor de mensagens a ser usado ao se conectar ao sistema SAP que usa balanceadores de carga.
      20. Read table function: nome da função a ser usada para ler tabelas. Para mais informações, consulte Usar uma função personalizada de tabela de leitura.
      21. Esquema de conexão: selecione um esquema de conexão a ser usado para se conectar ao seu sistema SAP.
      22. ID do sistema: o ID do sistema ou o R3Name do sistema SAP. Você pode inserir no máximo 3 caracteres.
      23. Senha do SNC: selecione o secret do Secret Manager da senha da biblioteca SNC.
      24. Versão do secret: selecione a versão do secret.
      25. Modo SNC: selecione essa opção para ativar o SNC para autenticação entre o Application Integration e seu sistema SAP.
      26. Nome do SNC: digite um nome para a conexão do SNC.
      27. SNC qop: selecione um nível de proteção. Estes são os níveis compatíveis:
        • 1 - Aplicar apenas a autenticação.
        • 2 - Aplicar a proteção da integridade. Isso também inclui a proteção de autenticação.
        • 3 – Aplicar proteção de privacidade. Isso também inclui proteção de autenticação e integridade.
        • 8: aplica a proteção padrão.
        • 9 - Aplicar a proteção máxima.
      28. SNC partner name: digite o nome do SNC do servidor de aplicativos.
      29. Modo de consulta: selecione quais tabelas do SAP serão exibidas como visualizações.
      30. Visualizações navegáveis: insira uma lista de visualizações separadas por vírgulas que serão exibidas. Por exemplo, ViewA,ViewB,ViewC.
      31. Nível de verbosidade: insira o nível de detalhamento para a geração de registros. Os valores aceitos são de 1 a 5. Um valor maior significa que mais detalhes vão estar disponíveis nos registros.
      32. Opcionalmente, defina as Configurações do nó de conexão:

        • Número mínimo de nós: digite o número mínimo de nós de conexão.
        • Número máximo de nós: digite o número máximo de nós de conexão.

        Um nó é uma unidade (ou réplica) de uma conexão que processa transações. Mais nós são necessários para processar mais transações para uma conexão e, por outro lado, menos nós são necessários para processar menos transações. Para entender como os nós afetam os preços do conector, consulte Preços dos nós de conexão. Se você não inserir qualquer valor, por padrão, os nós mínimos serão definidos como 2 (para melhor disponibilidade) e os nós máximos serão definidos como 50.

      33. Outra opção é clicar em + ADICIONAR MARCADOR para adicionar um rótulo à conexão na forma de um par de chave-valor.
      34. Clique em Seguinte.
    6. Na seção Destinos, insira os detalhes do host remoto (sistema de back-end) ao qual você quer se conectar.
      1. Tipo de destino: selecione um Tipo de destino.
        • Selecione Endereço do host na lista para especificar o nome do host ou o endereço IP do destino.
        • Para estabelecer uma conexão particular com seus sistemas de back-end, Selecione Anexo de endpoint na lista e depois selecione o anexo de endpoint necessário. na lista Endpoint Attachment.

        Se você quiser estabelecer uma conexão pública com os sistemas de back-end com mais segurança, considere configurar endereços IP de saída estáticos para suas conexões e, em seguida, configure as regras de firewall para colocar na lista de permissões apenas os endereços IP estáticos específicos.

        Para inserir outros destinos, clique em +Adicionar destino.

      2. Clique em Seguinte.
    7. Na seção Autenticação, insira os detalhes da autenticação.
      1. Selecione um Tipo de autenticação e insira os detalhes relevantes.

        Os seguintes tipos de autenticação são compatíveis com a conexão SAP ERP:

        • Nome de usuário e senha
      2. Para entender como configurar esses tipos de autenticação, consulte Configurar autenticação.

      3. Clique em Seguinte.
    8. Se você tiver ativado a inscrição de eventos, a seção Detalhes da assinatura do evento vai aparecer na página de criação de conexão. Para entender como configurar os detalhes da assinatura de eventos, consulte Configurar a assinatura de eventos.
    9. Revisão: revise os detalhes de conexão e autenticação.
    10. Clique em Criar.

    Configurar a autenticação

    Digite os detalhes com base na autenticação que você quer usar.

    • Nome de usuário e senha
      • Nome de usuário: nome de usuário para o conector
      • Senha: chave secreta do Secret Manager que contém a senha associada ao conector.

    Configurar para inscrição em eventos

    Se você tiver ativado a assinatura do evento, insira os seguintes valores na seção Detalhes da assinatura do evento:

    1. Selecione um dos seguintes tipos de autenticação para o listener de eventos.
    2. Insira o nome do campo do tipo de evento. Esse campo identifica o tipo de evento associado à solicitação de evento recebida.
      {
      "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.