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 de destino, 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 + ID seja exclusiva 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 evento do Cloud 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 eventos 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 um 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 para cada objeto de negócios.
Criar uma vinculação de evento de negócios
Você cria uma vinculação de evento de negócios para acionar e publicar automaticamente mudanças importantes de objetos de negócios do SAP como eventos para Google Cloud serviços, usando o Business Eventing Toolkit para SAP.
Com essa vinculação, você define um receptor que funciona como o listener para eventos de negócios.
Para criar uma vinculação de evento 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 o listener de eventos para uma chave de evento
Para definir como o Business Eventing Toolkit para SAP processa eventos de negócios específicos da SAP para Google Cloud integração, mapeie o listener de eventos de negócios para uma chave de evento que mantenha as configurações para a publicação de eventos.
Para mapear o 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 outra lógica 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, quando você publica eventos no Pub/Sub, o listener de eventos retransmite os seguintes atributos do contêiner de eventos de negócios para os serviços Google Cloud de destino:
{
"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
Com o Business Eventing Toolkit para SAP, você pode 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 um 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 SAP 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
: o 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.
Configurar um listener para eventos de IDoc
Para capturar os eventos acionados devido a mudanças no IDoc, é necessário configurar um listener de eventos para eventos do IDoc.
Configurar o listener de eventos do IDoc
Para definir como o Business Eventing Toolkit para SAP processa eventos IDoc para Google Cloud integração, configure um listener de eventos para eventos IDoc. Você mapeia o listener de eventos do IDoc para uma chave de evento que mantém as configurações para a publicação de eventos.
Para configurar um listener de eventos do IDoc, 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 IDoc.
Clique em Novas entradas.
Insira valores nos campos a seguir:
Campo Tipo de dado Descrição Tipo básico CHAR
O nome do tipo básico de IDoc para o qual você quer enviar eventos, por exemplo, Google Cloud. MATMAS05
Direção do IDoc CHAR
A direção do IDoc: Entrada ou Saída. 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 outra lógica para preencher o corpo do evento ou estender os atributos de extensão Essa classe precisa implementar a interface
/GOOG/IF_IDOC_EVT_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, quando você publica eventos no Pub/Sub, o listener de eventos transmite os seguintes atributos:
{
"messages": [
{
"attributes": {
"idocNumber": "0000000000000134",
"direct": "1",
"messageType": "MATMAS",
"basicType": "MATMAS05",
"createdOn": "20250515",
"createdAt": "132254",
"updatedOn": "20250410",
"updatedAt": "144958"
},
"data": [
{
"mandt": "100",
"docnum": "0000000000000132",
"segnum": "000001",
"segnam": "E1MARAM",
"hlevel": "02",
"dtint2": 1000,
"sdata": " TEST-MATNR-IDOC-0111032025KRITIS 11032025KRITIS KL ROH C01 EA"
},
{
"mandt": "100",
"docnum": "0000000000000132",
"segnum": "000002",
"segnam": "E1MARA1",
"psgnum": "000001",
"hlevel": "03",
"dtint2": 1000
}
// ...additional IDOC segments
]
}
]
}
Se os atributos de eventos da nuvem estiverem configurados, a estrutura do payload será a seguinte:
{
"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
"messages": [
{
"attributes": {
"idocNumber": "0000000000000134",
"direct": "1",
"messageType": "MATMAS",
"basicType": "MATMAS05",
"createdOn": "20250515",
"createdAt": "132254",
"updatedOn": "20250410",
"updatedAt": "144958"
},
"data": [
{
"mandt": "100",
"docnum": "0000000000000132",
"segnum": "000001",
"segnam": "E1MARAM",
"hlevel": "02",
"dtint2": 1000,
"sdata": " TEST-MATNR-IDOC-0111032025KRITIS 11032025KRITIS KL ROH C01 EA"
},
{
"mandt": "100",
"docnum": "0000000000000132",
"segnum": "000002",
"segnam": "E1MARA1",
"psgnum": "000001",
"hlevel": "03",
"dtint2": 1000
}
// ...additional IDOC segments
]
}
]
}
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 para SAP permite personalizar dados de eventos e adicionar
atributos de extensão a eventos na nuvem.
Para fazer isso, implemente uma classe que herda a interface /GOOG/IF_IDOC_EVT_DATA_HANDLER
e implemente o método de interface FILL_EVENT_DATA
.
O método FILL_EVENT_DATA
tem os seguintes parâmetros:
Nome | Tipo | Tipo associado | Descrição |
---|---|---|---|
IS_IDOC_CONTRL |
Importando | EDIDC |
Os registros de controle do IDoc. |
IT_IDOC_DATA |
Importando | TAB_EDIDD |
Tabela de registros de dados do IDoc. |
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 |
Integrar a publicação de eventos de IDoc com o processo padrão de IDoc do SAP
Para publicar eventos de IDoc em serviços Google Cloud , é necessário integrar o Business Eventing Toolkit para a lógica de encaminhamento de eventos de IDoc do SAP no processamento de IDoc do SAP. Isso garante que, quando os IDocs forem criados, alterados ou atingirem um status específico, os dados deles serão publicados automaticamente como eventos.
É possível integrar a publicação de eventos do IDoc usando um dos seguintes métodos:
Usar o IDOC_DATA_MAPPER
BAdI
O IDOC_DATA_MAPPER
complemento comercial (BAdI)
permite implementar uma lógica personalizada que é acionada durante o processamento de IDocs de entrada e saída.
Você pode usar esse BAdI para publicar eventos de IDoc em Google Cloud.
Para implementar o BAdI IDOC_DATA_MAPPER
, faça o seguinte:
- Abra a transação
SE18
. - No campo Nome do BADI, insira
IDOC_DATA_MAPPER
. - Acesse o menu Implementação e selecione Criar.
- No campo Nome da implementação da melhoria, insira um nome para a
implementação da melhoria, por exemplo,
ZEI_IDOC_DATA_MAPPER
. - Na implementação, atualize o nome da classe de implementação para
/GOOG/CL_IM_BADI_IDOC_MAPPER
. - Ative a implementação do BAdI.
Usar as saídas de melhoria
Se você tiver saídas de melhoria no fluxo de processamento de IDoc, poderá inserir a lógica de publicação de eventos de IDoc diretamente nelas.
Insira o snippet ABAP abaixo na saída da melhoria:
DATA : lt_return TYPE bapiret2_t.
/goog/cl_idoc_event_forward=>publish_event(
EXPORTING
is_control = IDOC_CONTROL " Replace with your IDoc control record
it_data = IDOC_DATA " Replace with your IDoc data records
IMPORTING
et_return = lt_return
).
" Handle errors if LT_RETURN contains erroneous records.
Substitua:
IDOC_CONTROL
: o registro de controle do IDoc.IDOC_DATA
: os registros de dados do IDoc.
Use um módulo de função personalizada (com base no modelo OWN_FUNCTION
)
Para publicar eventos de IDoc de saída, é possível configurar o processamento de IDoc do SAP para
chamar um módulo de função personalizado, que é baseado no modelo padrão
OWN_FUNCTION
. Esse módulo de função personalizada permite processar dados de IDoc e acionar a publicação de eventos antes que os dados sejam enviados ao serviço de destino Google Cloud .
Para conferir etapas detalhadas de configuração sobre como usar um módulo de função personalizada para publicar eventos de IDoc de saída, consulte Kit de ferramentas de eventos de negócios para utilitários do SAP. Ao implementar sua função personalizada, use o exemplo de implementação Z disponível no GitHub.
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 a SAP no Google Cloud.