Gatilho do SAP ERP
O gatilho do SAP ERP é um gatilho de evento do conector. Com ele, é possível 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 do SAP ERP, verifique se tem o seguinte papel do IAM no projeto:
- Administrador do conector (
roles/connectors.admin)
Para mais informações sobre como conceder papéis, consulte Gerenciar o acesso.
- Administrador do conector (
- Conceda os seguintes papéis do IAM à conta de serviço que você quer usar para o gatilho do 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.
- Invocador do Application Integration (
- No console do Google Cloud , acesse a página Application Integration.
- No menu de navegação, clique em Integrações.
A página Lista de integrações aparece com todas as integrações disponíveis no projeto do Google Cloud.
- Selecione uma integração ou clique em Criar integração para criar uma.
Caso você esteja criando uma nova integração, siga estas etapas:
- Digite um nome e uma descrição no painel Criar integração.
- Selecione uma região para a integração.
- Selecione uma conta de serviço para a integração. É possível 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 de integração.
- Clique em Criar.
A integração recém-criada é aberta no editor de integração.
- Na barra de navegação do editor de integração, clique em Acionadores para conferir a lista de acionadores disponíveis.
- Clique e coloque o elemento Gatilho do SAP ERP no editor de integração.
- Clique no elemento gatilho do SAP ERP no editor de integração para abrir o painel de configuração do gatilho.
- Clique em Configurar acionador.
- Forneça os seguintes detalhes de configuração na página Editor de gatilho de evento do conector:
- Região:selecione a região da sua conexão do SAP ERP.
- Conexão:selecione a conexão do SAP ERP que você quer usar.
Application Integration mostra apenas as conexões do SAP ERP que estão ativas e têm uma assinatura de evento ativada.
- 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 ... }
- Conta de serviço: selecione uma conta de serviço com os papéis do IAM necessários para o gatilho do SAP ERP.
- Clique em Concluído para concluir a configuração do acionador e fechar a página.
- Clique no elemento gatilho do SAP ERP no editor de integração para abrir o painel de configuração do gatilho.
- Clique em Configurar acionador.
- Ignore o campo Região.
- Clique em Conexão e selecione a opção Criar conexão no menu suspenso.
- Na seção Detalhes da conexão, faça o seguinte:
- Conector: selecione SAP ERP na lista suspensa de conectores disponíveis.
- Versão do conector: selecione a versão do conector na lista suspensa de versões disponíveis.
- 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 49 caracteres.
- Para conectores que aceitam inscrição em eventos, os nomes de conexão não podem começar com o prefixo "goog".
- Opcionalmente, insira uma Descrição para a conexão.
- Se quiser, ative o Cloud Logging e selecione um nível de registro. Por padrão, o nível de registro é definido como
Error. - Conta de serviço: selecione uma conta de serviço que tenha os papéis necessários.
- Para usar a conexão em assinaturas de eventos, selecione Ativar assinatura de eventos. Ao selecionar
essa opção, as seguintes opções vão aparecer:
- Ativar inscrição de eventos com entidade e ações: selecione essa opção para usar a conexão para inscrição de eventos e operações de conector (entidades e ações).
- Ativar somente a assinatura de eventos: selecione essa opção para usar a conexão apenas para assinatura de eventos. Se você selecionar essa opção, clique em Próxima e configure a inscrição no evento.
- Cliente: o cliente que está fazendo a autenticação no sistema SAP.
- ID do sistema: o ID do sistema ou R3Name do sistema SAP é uma string com no máximo três caracteres. Ele é usado com frequência em conexões de balanceamento de carga.
- Número do sistema: o número pelo qual o sistema de destino é definido. Usado ao definir a propriedade de conexão do host.
- ID do projeto: o ID do projeto do Google Cloud em que o bucket do GCS que contém o jar do SAP JCo reside.
- Bucket: o nome do bucket que contém os arquivos sapjco3.jar e libsapjco3.so.
- Caminho do Cloud Storage do jar do JCo: caminho do Cloud Storage do jar do JCo.
- Caminho do Cloud Storage do libsapjco3: caminho do Cloud Storage do jar libsapjco3.
- Modo de tabela: selecione a tabela SAP que será mostrada como uma visualização.
- Função de leitura de tabela: nome da função a ser usada para ler tabelas. Para mais informações, consulte Usar uma função de tabela de leitura personalizada.
- ID do sistema: o ID do sistema ou o R3Name do sistema SAP. Você pode inserir no máximo três caracteres.
- Modo de consulta: selecione quais tabelas do SAP precisam ser mostradas como visualizações.
-
Vistas navegáveis: insira uma lista de vistas separadas por vírgulas para serem exibidas.
Por exemplo,
ViewA,ViewB,ViewC. - Idioma: defina essa propriedade com o idioma especificado ao fazer login no SAP. Essa propriedade é um código ISO 639-1 para o idioma usado pelo sistema SAP. Por padrão, o EN será usado.
- Entradas de serviço: as entradas de serviço a serem usadas para a conexão.
-
Modo SNC: selecione essa opção para ativar o SNC na autenticação entre Application Integration e seu sistema SAP. Se você selecionar essa opção, especifique os seguintes detalhes:
- ID do objeto SNC_LIB: ID do objeto da biblioteca SNC.
- Nome do PSE: nome do arquivo do ambiente de segurança pessoal (PSE) aplicável ao bucket. Um arquivo PSE armazena o par de chaves pública e privada, além de certificados X.509 em uma estrutura ASN.1.
- Senha do SNC: selecione o secret do Secret Manager da senha da biblioteca do SNC.
- Versão do secret: selecione a versão do secret.
- Nome do SNC: insira um nome para a conexão do SNC.
-
SNC qop: selecione um nível de proteção. Confira os níveis aceitos:
- 1: aplica apenas a autenticação.
- 2: aplique a proteção de integridade. Isso também inclui a proteção de autenticação.
- 3 - Aplique a proteção de privacidade. Isso também inclui proteção de integridade e autenticação.
- 8: aplique a proteção padrão.
- 9: aplique a proteção máxima.
- Nome do parceiro SNC: insira o nome SNC do servidor de aplicativos.
-
Esquema de conexão: especifique se você está se conectando a um sistema SAP com um servidor de mensagens (servidor de grupo) ou um servidor de aplicativos. Para informações sobre os pré-requisitos que você precisa atender para se conectar a um sistema SAP com um servidor de mensagens, consulte Tipo de conexão do servidor de mensagens (servidor de grupo).
Se você selecionar GroupServer, especifique os seguintes detalhes:
- Servidor de mensagens: especifique o servidor de mensagens ao se conectar a um sistema SAP que usa balanceamento de carga.
- Serviço do servidor de mensagens: o serviço do servidor de mensagens ao qual você quer se conectar.
- Grupo: o grupo de logon usado. Especifique isso apenas ao se conectar a um sistema SAP que usa balanceamento de carga.
Se você estiver se conectando a um sistema SAP com um servidor de mensagens (servidor de grupo), não será necessário especificar o endereço do host na seção Destinos.
- 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.
- Outra opção é clicar em + ADICIONAR MARCADOR para adicionar um rótulo à conexão na forma de um par de chave-valor.
- Clique em Próxima.
- Na seção Destinos, insira os detalhes do host remoto (sistema de back-end) ao qual você quer se conectar. Se você estiver se conectando a um sistema SAP com o servidor de mensagens, não será necessário especificar o endereço do host.
- 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 Anexo de endpoint.
Se você quiser estabelecer uma conexão pública com seus 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 permitir apenas os endereços IP estáticos específicos.
Para inserir outros destinos, clique em + Adicionar destino.
- Clique em Próxima.
- Tipo de destino: selecione um Tipo de destino.
-
Na seção Autenticação, insira os detalhes da autenticação.
- 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 do SAP ERP:
- Autenticação baseada em certificado X509
- Nome de usuário e senha
- Clique em Próxima.
Para entender como configurar esses tipos de autenticação, consulte Configurar autenticação.
- Selecione um Tipo de autenticação e insira os detalhes relevantes.
- Se você tiver ativado a assinatura de eventos, a seção Detalhes da assinatura de eventos vai aparecer na página de criação da conexão. Para entender como configurar os detalhes da assinatura de eventos, consulte Configurar assinatura de eventos.
- Revisão: revise os detalhes de conexão e autenticação.
- Clique em Criar.
-
Autenticação baseada em certificado X509
- X509Certificate: o certificado X509 usado para fazer login.
- Versão do secret: selecione a versão do secret.
-
Nome de usuário e senha
- Nome de usuário: nome de usuário para o conector
- Senha: a senha do Secret Manager que contém a senha associada ao conector.
-
Selecione um dos seguintes tipos de autenticação para o listener de eventos.
- Autenticação do Google. Se você ativar essa opção, siga as etapas em Autenticar usando JSON Web Tokens para configurar a autenticação do SDK do ABAP. Além disso, verifique se a conta de serviço tem o papel roles/connectors.listener, cujo token de acesso é usado para autenticação.
- Autenticação de chave de API. Se você selecionar essa opção, será necessário ter criado uma chave de API e salvo a chave como um secret do Secret Manager. Para mais informações, consulte Criar uma chave de API.
-
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 ... }
- Selecione Ativar conectividade particular para uma conectividade segura entre o aplicativo de back-end e a conexão. Se você selecionar essa opção, precisará executar outras etapas de configuração depois de criar a conexão. Para mais informações, consulte Conectividade particular para assinatura de eventos.
- Insira a configuração de mensagens inativas. Se você configurar a letra inativa, a conexão gravará
os eventos não processados no tópico do Pub/Sub especificado. Digite os seguintes detalhes:
- ID do projeto de dead-letter : o ID do projeto do Google Cloud em que você configurou o tópico de dead-letter do Pub/Sub.
- Tópico de mensagens mortas : o tópico do Pub/Sub em que você quer gravar os detalhes do evento não processado.
- Use a função
RFC_READ_TABLEcomo um modelo para a nova função. Selecione o código de transaçãoSE37e o grupo de funçõesSDTXe copieRFC_READ_TABLEpara um novo grupo de funções ou para o grupo de funções em que você está trabalhando. Neste exemplo,RFC_READ_TABLEé copiado paraZ_CUSTOM_READ_TABLE. - Na guia Atributos da tela do SAP, selecione
Remote Enabled Module. - Na guia Tabelas, defina o parâmetro
DATAcomoCHAR8000. Clique com o botão direito do mouse na tela e selecione Tela -> Mudar. - Na guia Código-fonte, cole o código-fonte de exemplo para o módulo de função
RFC_READ_TABLEde substituição localizado na subpastadbdo diretório de instalação. O código está localizado emZ_CUSTOM_READ_TABLE.txt, masZ_CUSTOM_READ_TABLE_752.txté preferível se a instância do SAP ERP estiver executando a versão 7.52 ou mais recente do ABAP. - Clique em Salvar.
- Defina as importações, tabelas e exceções conforme documentado na tabela de leitura personalizada fornecida.
- Ative o módulo de função e, na string de conexão, defina
ReadTableFunctioncomoZ_CUSTOM_READ_TABLEou o nome do módulo de função. - Saiba mais sobre todas as tarefas e acionadores.
- Saiba como testar e publicar uma integração.
- Saiba mais sobre o tratamento de erros.
- Saiba mais sobre os registros de execução de integração.
Adicionar o gatilho do SAP ERP
Para adicionar um gatilho do SAP ERP à sua integração, siga estas etapas:
Para configurar o gatilho do SAP ERP, use uma conexão do SAP ERP disponível no Integration Connectors ou crie uma nova usando a opção de criação de conexão inline.
Configurar o gatilho do SAP ERP usando uma conexão existente
O gatilho do SAP ERP é um gatilho de evento do conector. Portanto, só é possível usar uma conexão do SAP ERP com a assinatura de eventos ativada para configurar o gatilho.
Para informações sobre como configurar um gatilho do SAP ERP usando uma nova conexão do SAP ERP, consulte Configurar o gatilho do SAP ERP usando uma nova conexão.
Para configurar um gatilho do SAP ERP usando uma conexão do SAP ERP, siga estas etapas:
Configurar o gatilho do SAP ERP usando uma nova conexão
Configurar a autenticação
Digite os detalhes com base na autenticação que você quer usar.
Configurar para assinatura de eventos
Se você ativar a inscrição em eventos, será necessário configurar o ABAP SDK. Para informações sobre a configuração do SDK ABAP, consulte Visão geral do SDK ABAP para Google Cloud.
Insira os seguintes valores na seção Detalhes da assinatura de evento:
Usar uma função de leitura de tabela personalizada
RFC_READ_TABLE
O conector usa a função RFC_READ_TABLE do SAP para extrair dados das tabelas do SAP.
No entanto, ela tem algumas limitações. Por exemplo, considere a exceção DATA_BUFFER_EXCEEDED. O SAP RFC_READ_TABLE tem um tamanho fixo de 512 bytes. Ele pode armazenar em buffer cada linha de dados. Portanto, não é possível selecionar mais colunas do que a quantidade que caberia nesse buffer. Se você selecionar mais de 512 bytes, uma exceção vai ocorrer
indicando que você excedeu o tamanho máximo de buffer permitido por linha e precisa
selecionar menos colunas.
RFC_READ_TABLE2
O conector do SAP ERP é compatível com a função de leitura de tabela RFC_READ_TABLE2. Você pode mudar
a função de leitura de tabela ativa para RFC_READ_TABLE2 definindo ReadTableFunction
como /SAPDS/RFC_READ_TABLE2.
Funções personalizadas de leitura de tabelas
O conector inclui uma RFC de leitura de tabela personalizada, Z_CUSTOM_READ_TABLE, que é semelhante
ao RFC_READ_TABLE do SAP, mas com um buffer maior para resolver o problema DATA_BUFFER_EXCEEDED e ignorar as limitações do RFC_READ_TABLE.
Para usar a RFC personalizada de leitura de tabela incluída e evitar limitações com o RFC_READ_TABLE padrão, siga estas etapas:
A tabela de leitura personalizada do ABAP 7.52
Além de Z_CUSTOM_READ_TABLE.txt, também há um arquivo Z_CUSTOM_READ_TABLE_752.txt para a versão 7.52 do ABAP e mais recentes. É semelhante a Z_CUSTOM_READ_TABLE, mas aproveita as palavras-chave recém-disponíveis no ABAP 7.52 para realizar a paginação no banco de dados
em vez de no próprio script ABAP. Isso torna a paginação eficiente ao trabalhar com tabelas grandes.
É recomendável usar a RFC Z_CUSTOM_READ_TABLE_752.
Configurar a autenticação no SAP
Configure a autenticação no SAP seguindo as instruções do guia Visão geral da autenticação para a edição no local ou em qualquer nuvem do ABAP SDK for Google Cloud.
Validar o acionador
Para validar o gatilho, crie um programa ABAP. Confira a seguir um exemplo de programa ABAP que você pode usar como referência. O campo ls_event_payload muda com base nos seus requisitos:
*&---------------------------------------------------------------------* *& 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.
Cotas e limites
Para informações sobre o assunto, consulte Cotas e limites.