Este documento descreve como instalar e configurar o Business Eventing Toolkit para SAP.
Instalar o Business Eventing Toolkit para SAP
Quando você instala a versão mais recente do SDK do ABAP para Google Cloud no local ou em qualquer edição na nuvem, o Business Eventing Toolkit para SAP é instalado. Para informações sobre as etapas de instalação, consulte Instalar e configurar a edição local ou de qualquer nuvem do SDK do ABAP para Google Cloud.
Se você estiver usando a versão 1.9 ou anterior do ABAP SDK for Google Cloud no local ou em qualquer edição na nuvem, atualize o SDK para a versão mais recente e receba o Business Eventing Toolkit para SAP. Para mais informações, consulte Atualizar o SDK do ABAP para Google Cloud.
Ativar as APIs Google Cloud de destino
Antes de usar os serviços de Google Cloud alvo, verifique se as APIs Google Cloud correspondentes estão ativadas no projeto. Por exemplo, se você planeja publicar eventos no Pub/Sub, ative a API Pub/Sub.
Para informações sobre como ativar Google Cloud APIs, consulte Como ativar APIs.
Configurar a autenticação
Depois de configurar a autenticação para acessar as APIs Google Cloud na edição local ou na nuvem do SDK do ABAP para Google Cloud, o Business Eventing Toolkit para SAP usa o mesmo método de autenticação para publicar eventos da SAP nas APIs Google Cloud . Para saber como configurar a autenticação no local ou em qualquer edição na nuvem do SDK do ABAP para Google Cloud, consulte Visão geral da autenticação.
Verifique se a conta de serviço configurada no SDK ABAP para a configuração da chave de cliente do Google Cloud tem os papéis do IAM necessários específicos para o serviçoGoogle Cloud de destino.
Anote a chave do cliente que você criou como parte da configuração de autenticação. Use essa chave do cliente ao configurar o Business Eventing Toolkit para SAP no seu sistema SAP.
Configurar atributos do CloudEvent
Você pode manter os valores padrão dos atributos do CloudEvent. Esses valores são
armazenados na tabela /GOOG/CE_DEFAULT
.
Essa é uma configuração opcional. É possível transmitir atributos do CloudEvent ou substituir os atributos padrão diretamente no código.
Para configurar os atributos do CloudEvent, faça o seguinte:
Na GUI do SAP, execute o código de transação
/GOOG/SDK_IMG
.Como alternativa, execute o código da transação
SPRO
e clique em IMG de referência do SAP.Clique em ABAP SDK for Google Cloud > Configurações básicas > Eventos de negócios: configurar atributos de contexto para eventos da Cloud.
Clique em Novas entradas.
Insira valores nos campos a seguir:
Campo Tipo de dado Descrição Chave de atributo padrão do evento do Cloud String Especifique um nome para a configuração de atributo padrão do CloudEvent. Por exemplo: CLOUD_EVENT_ATTRIBUTE_KEY. Origem String Forneça a referência do URI que identifica o contexto em que um evento ocorreu. ID String Identificador exclusivo do evento. Os produtores precisam garantir que a fonte + o ID sejam exclusivos para cada evento distinto. Versão da especificação String A versão da especificação do CloudEvents usada pelo evento. Se você deixar esse campo em branco, o sistema vai usar 1.0. Tipo String Descreve o tipo de evento que ocorreu. Geralmente usado para roteamento, observabilidade e aplicação de políticas. Tipo de conteúdo de dados String Content-type do valor de dados. Permite que os dados transportem qualquer tipo de conteúdo. Esquema de dados String URI que identifica o esquema a que os dados aderem. Assunto String Descreve o tema do evento no contexto do produtor. Para informações sobre esses campos, consulte os atributos de contexto do CloudEvents.
Salve a nova entrada.
Configurar serviços Google Cloud de destino
Use essa configuração para manter os serviços Google Cloud de destino dos seus eventos.
Essa configuração é usada ao publicar eventos da SAP para serviços Google Cloud usando o Business Eventing Toolkit para SAP.
Para configurar os serviços Google Cloud de destino, faça o seguinte:
Na GUI do SAP, execute o código de transação
/GOOG/SDK_IMG
.Como alternativa, execute o código da transação
SPRO
e clique em IMG de referência do SAP.Clique em ABAP SDK for Google Cloud > Configurações básicas > Eventos de negócios: configurar destinos do Google Cloud para um evento.
Clique em Novas entradas.
Insira valores nos campos a seguir:
Campo Tipo de dado Descrição Chave de evento String Especifique um nome para a configuração do evento do editor. Por exemplo, EVENT_KEY. Classe de processador de eventos String Especifique a classe do processador para o evento. Selecione uma das seguintes opções, dependendo do serviço Google Cloud de destino:
-
/GOOG/CL_PUBLISHER_PUBSUB
: para publicar eventos no Pub/Sub. -
/GOOG/CL_PUBLISHER_CLOUDFUNC
: para publicar eventos em funções do Cloud Run. -
/GOOG/CL_PUBLISHER_FCM
: para publicar eventos no Firebase Cloud Messaging (FCM). -
/GOOG/CL_PUBLISHER_CONNECTORS
: para publicar eventos na API Integration Connectors.
Nome da chave do Google Cloud String A chave de cliente configurada para autenticação no Google Cloud durante a configuração de autenticação. Parâmetro de evento 1 String Especifique qualquer atributo adicional necessário para o serviço Google Cloud de destino que você quer usar. Parâmetro de evento 2 String Especifique qualquer atributo adicional necessário para o serviço Google Cloud de destino que você quer usar. Parâmetro de evento 3 String Especifique qualquer atributo adicional necessário para o serviço Google Cloud de destino que você quer usar. Chave de atributo padrão do Cloud Event String Para enviar o evento como um CloudEvent, forneça o valor da chave de atributo padrão correspondente que você configurou na seção Configurar atributos do CloudEvent. Evento do Cloud: codificação String Selecione um modo adequado para codificar seus CloudEvents:
- Estruturado: os atributos do CloudEvent são transmitidos no corpo da solicitação.
- Binário: os atributos do CloudEvent são transmitidos para o cabeçalho da solicitação.
Para cenários em que você precisa enviar dados de eventos brutos diretamente para serviços Google Cloud , ignorando a especificação do CloudEvents, deixe esse campo em branco.
-
Salve a nova entrada.
Estender o módulo do editor
Para integrar com outros serviços Google Cloud ou destinos personalizados além dos destinos pré-criados, é possível estender o módulo do editor criando suas próprias implementações.
Para criar uma implementação personalizada, faça o seguinte:
- Na transação
SE24
do SAP, crie uma nova classe herdada de/GOOG/CL_PUBLISHER_BASE
. Implemente os métodos
PUBLISH_EVENT
eVALIDATE_PARAMS
.PUBLISH_EVENT
: contém sua lógica personalizada para enviar dados de evento para o destino. Mapeie os parâmetros de entrada, transmita os dados e preencha a estrutura de saída com a resposta do destino.VALIDATE_PARAMS
: permite verificar se todos os parâmetros necessários estão configurados na tabela/GOOG/CE_ROUTER
. Se algum valor obrigatório estiver ausente, gerará uma exceção do tipo/GOOG/CX_SDK
.
Quando o código ABAP é executado, a classe Publisher lê as configurações dessa tabela para orientar o processo de publicação de eventos.
Configurar o listener para eventos de negócios
Para capturar os eventos acionados devido a mudanças nos objetos de negócios, é necessário configurar um listener de eventos de negócios para cada objeto de negócios.
Para configurar um listener de eventos de negócios, faça o seguinte:
Na GUI do SAP, execute o código de transação
SWETYPV
.Clique em Novas entradas.
Especifique uma categoria e um tipo de objeto de negócios adequados.
Especifique um evento para o qual você quer ouvir e encaminhar usando o Business Eventing Toolkit para SAP.
No campo Tipo de receptor, insira
Google_Cloud
ouGoogle
.Na seção Configuração de vinculação (receptor), forneça as seguintes informações:
- Ligação do receptor: selecione Método na lista suspensa.
- Nome da turma: insira
/GOOG/CL_BO_EVENT_FORWARD
.
Marque a caixa de seleção Linkage Activated.
Salve a configuração.
Mapear um listener de eventos para uma chave de evento
Para mapear um listener de eventos a uma chave de evento, faça o seguinte:
Na GUI do SAP, execute o código de transação
/GOOG/SDK_IMG
.Como alternativa, execute o código da transação
SPRO
e clique em IMG de referência do SAP.Clique em ABAP SDK for Google Cloud > Configurações básicas > Eventos de negócios: configurar listeners de eventos para objetos de negócios.
Clique em Novas entradas.
Insira valores nos campos a seguir:
Campo Tipo de dado Descrição Tipo de objeto CHAR O nome do objeto de negócios que você configurou na transação SWETYPV
.Evento CHAR O nome do evento vinculado ao objeto de negócios. Nome do destinatário CHAR O nome do receptor configurado na transação SWETYPV
em relação à combinação de tipo de objeto e evento.Chave de evento CHAR O nome da configuração do evento do editor mantido na seção Configurar serviços Google Cloud alvo. Classe de processador CHAR Opcional. O nome da classe do processador em que você escreveu qualquer lógica adicional para preencher o corpo do evento ou estender os atributos de extensão Essa classe precisa implementar a interface
/GOOG/IF_BOR_EVNT_DATA_HANDLER
.Para saber como criar uma classe de processador, consulte Estender a classe de processador.
Salve a configuração.
Atributos padrão do corpo e da extensão de evento da nuvem
Por padrão, o listener de eventos transmite os seguintes atributos, que fazem parte do contêiner de eventos para o destino, conforme determinado com base na chave de evento:
{
"EVENT_OBJECT": "BUS2012",
"EVENT_OBJECT_KEY": "450000011",
"EVENT_NAME": "CHANGED",
"EVENT_CREATOR": "USER-ID",
"EVENT_CREATION_DATE": "20250321",
"EVENT_CREATION_TIME": "135050",
"EVENT_CREATION_TIMESTAMP": "20250321135050",
"EVENT_CREATION_LANGUAGE": "EN"
}
Se os atributos de eventos da nuvem estiverem configurados, a estrutura do payload será a seguinte:
{
"eventObjectType": "BUS2012", - Picked from Event Container
"eventObjectKey": "450000011", - Picked from Event Container
"eventName": "RELEASED", - Picked from Event Container
"eventCreator": "USER", - Picked from Event Container
"eventCreationDate": "20250321", -Picked from Event Container
"eventCreationTime": "135850", - Picked from Event Container
"eventCreationTimestamp": "20250321135850", - Picked from Event Container
"id": "D5D1CB352A321FD081FFF6EEA9566190", - Auto Populated
"source": "sap-s4hana-doc", - Picked from CE Defaults
"type": "pochanged", - Picked from CE Defaults
"specversion": "1.0", - Picked from CE Defaults
"time": "2025-04-09T16:16:38Z", - Auto Populated
"subject": "test-subject-A" - Picked from CE Defaults Table
}
Se você criar e configurar uma classe de processador no ouvinte de eventos, o payload resultante vai refletir sua estrutura de payload personalizada.
Estender a classe de processador
O Business Eventing Toolkit permite definir os dados e adicionar outros atributos de extensão aos eventos da nuvem.
Para fazer isso, implemente uma classe que herda a interface /GOOG/IF_BOR_EVNT_DATA_HANDLER
e implemente o método de interface FILL_EVENT_DATA
.
Esse método tem os seguintes parâmetros de importação e alteração:
Nome | Tipo | Tipo associado | Descrição |
---|---|---|---|
SENDER |
Importando | SIBFLPORB |
Referência de objeto persistente local: compatível com BOR |
EVENT |
Importando | SIBFEVENT |
Evento |
EVENT_CONTAINER |
Importando | Tipo de referência para IF_SWF_IFS_PARAMETER_CONTAINER | Contêiner para transferência de parâmetros |
RECTYPE |
Importando | SWFERECTYP |
Nome do tipo de receptor |
HANDLER |
Importando | SIBFLPORB |
Referência de objeto persistente local: compatível com BOR |
CT_DATA |
Alterando | /GOOG/CL_PUBLISHER_BASE=>TT_MESSAGES |
Tabela de mensagens |
CT_CE_EXTN_ATTRIBUTES |
Alterando | /GOOG/T_CE_ATTR_VALUE |
Evento do Cloud: tabela de pares de nome e valor do atributo |
Exemplo de implementação para o objeto de negócios BUS2012
(ordem de compra) para incluir
informações do cabeçalho da ordem de compra como corpo do evento da nuvem:
TYPES: BEGIN OF ty_event_attributes,
ekgrp TYPE ekgrp,
werks TYPE werks_d,
stlnr TYPE stnum,
stlal TYPE mast-stlal,
stlty TYPE stko-stlty,
END OF ty_event_attributes.
DATA: ls_po_header TYPE bapimepoheader.
DATA: ls_event_attributes TYPE ty_event_attributes,
lv_json TYPE string.
DATA ls_data TYPE /goog/cl_publisher_base=>ty_message.
CALL FUNCTION 'BAPI_PO_GETDETAIL1'
EXPORTING
purchaseorder = '4500000007'
IMPORTING
poheader = ls_po_header.
/ui2/cl_json=>serialize(
EXPORTING
data = ls_po_header
RECEIVING
r_json = lv_json
).
ls_data-data = lv_json.
APPEND ls_data TO ct_data.
Configurar o listener para eventos RAP
Para cada evento RAP que você quer enviar para Google Cloud, é necessário criar uma classe de manipulador de eventos. Essa classe de manipulador de eventos atua como um listener de eventos para esse evento RAP.
Para criar uma classe de manipulador de eventos de forma programática, use o recurso da comunidade disponível no GitHub. Você precisa fornecer os detalhes da entidade RAP e gerar as classes de manipulador de eventos. Para informações sobre objetos de evento, consulte a documentação do Hub de Aceleração de Negócios da SAP.
Para criar manualmente uma classe de manipulador de eventos, faça o seguinte:
Crie uma classe ABAP para eventos RAP:
- Clique com o botão direito do mouse no pacote ABAP e selecione New > ABAP Class.
Digite os seguintes detalhes da sua classe ABAP:
- Nome: um nome para sua classe, por exemplo,
ZCL_PRODUCT_EXT
. - Descrição: uma descrição da sua turma, por exemplo,
Event handler for RAP events
.
- Nome: um nome para sua classe, por exemplo,
Clique em Concluir.
Atualize a definição da classe da seguinte maneira:
class CLASS_NAME definition public abstract final for events of RAP_ENTITY_NAME . public section. protected section. private section. ENDCLASS. CLASS CLASS_NAME IMPLEMENTATION. ENDCLASS.
Substitua:
CLASS_NAME
: nome da classe, por exemplo, ZCL_PRODUCT_EXT.RAP_ENTITY_NAME
: nome da entidade RAP, por exemplo, R_PRODUCT.
Abra a guia Tipos locais e crie uma implementação local:
CLASS lcl_event_extension DEFINITION INHERITING FROM cl_abap_behavior_event_handler. PRIVATE SECTION. METHODS on_EVENT_NAME FOR ENTITY EVENT created FOR RAP_ENTITY_NAME~EVENT_NAME. ENDCLASS. CLASS lcl_event_extension IMPLEMENTATION. METHOD on_EVENT_NAME. TRY. /goog/cl_event_publisher=>publish_event( EXPORTING iv_event_key = 'EVENT_KEY' it_data = VALUE #( FOR <ls_created> IN created ( data = /goog/cl_json=>serialize( data = <ls_created> ) ) ) IMPORTING et_output = DATA(lt_output) ). CATCH /goog/cx_sdk INTO DATA(lo_exp). "Error handling logic here ENDTRY. ENDMETHOD. ENDCLASS.
Substitua:
EVENT_NAME
: nome do evento, por exemplo, CREATED.RAP_ENTITY_NAME
: nome da entidade RAP, por exemplo, ZCL_PRODUCT_EXT.EVENT_KEY
: chave de evento que tem a configuração de destino.
Receber suporte
Se você precisar de ajuda para resolver problemas com o ABAP SDK for Google Cloud, faça o seguinte:
Consulte o guia de solução de problemas do ABAP SDK for Google Cloud.
Faça suas perguntas e discuta o ABAP SDK for Google Cloud com a comunidade nos Fóruns do Cloud.
Colete todas as informações de diagnóstico disponíveis e entre em contato com o Cloud Customer Care. Para mais informações sobre como entrar em contato com o atendimento ao cliente, consulte Como receber suporte para o SAP no Google Cloud.