Neste documento, você encontra informações e recursos úteis para desenvolver aplicativos SAP usando o ABAP SDK for Google Cloud no local ou em qualquer edição na nuvem.
Este documento é destinado a desenvolvedores do SAP ABAP.
Para conferir uma lista completa de bibliotecas de cliente que o ABAP SDK for Google Cloud oferece no local ou em qualquer edição na nuvem, consulte qualquer edição do ABAP SDK for Google Cloud no local ou na nuvem.
Janela única de interação
Cada API do Google Cloud ativada no ABAP SDK for Google Cloud é representada
por uma classe ABAP, contida no pacote /GOOG/CLIENT
. Uma classe ABAP consiste em vários métodos públicos e cada um deles corresponde a um método da Google Cloud API. Cada método público consiste ainda mais nos parâmetros IMPORTING
e EXPORTING
. Uma classe ABAP também contém
tipos de dados personalizados, que podem ser usados para construir e mapear os parâmetros IMPORTING
e EXPORTING
. Esses tipos de dados personalizados são mapeados para as definições de esquema da API.
Para cada interação com uma API do Google Cloud de destino, a classe ABAP correspondente atua como o único ponto de interação. Chamamos esse conceito de única janela de interação, que protege todas as complexidades subjacentes da interação com uma API do Google Cloud e apresenta uma interface simplificada. Essa interface simplificada permite que você se concentre nas soluções empresariais que estão sendo desenvolvidas usando o SDK, sem se preocupar com os recursos subjacentes do SDK.
Fluxo de interação
Para chamar um método de API, você tem o seguinte fluxo de interação:
- Conecte-se a uma API.
- Crie uma solicitação de entrada usando os tipos ABAP.
- Chame um método de API.
- Analise erros e exceções.
- Leia a resposta usando os tipos ABAP.
Stub de cliente da API
Uma classe de stubs de cliente de API típica consiste nas seguintes seções:
- Os tipos ABAP que mapeiam para os esquemas da API. Use tipos ABAP para criar uma solicitação de entrada e analisar a resposta.
- As constantes e os atributos para uso interno ou externo.
- Os métodos de API para interagir com os recursos da API.
Recursos
Os recursos do ABAP SDK for Google Cloud são:
- Comunicação HTTP: o SDK estabelece uma conexão HTTP com os endpoints da API.
- Solicitação do marshaling: o SDK converte dados em tipos ABAP para payload JSON que é enviado como o corpo da solicitação.
- Tratamento de erros e exceções: o SDK processa os códigos e as mensagens de erro retornados pela API e gera exceções, se houver.
- Resposta desmarcada: o SDK converte de volta o payload JSON no corpo da resposta para os tipos ABAP correspondentes.
- Geração de registros de erros locais: o SDK registra as mensagens de erro usando o framework logging.
Design da API e API Explorer
As APIs publicadas pelo Google seguem o design orientado a recursos. Para saber mais sobre o design de API do Google, consulte o guia de design de API.
O ABAP SDK for Google Cloud permite a integração com as APIs baseadas em REST publicadas pelo Google.
A API Explorer é uma ferramenta que permite testar métodos da API Google Cloud sem escrever código. Use essa ferramenta para estudar as APIs e os parâmetros de entrada necessários que você quer passar para os métodos ABAP correspondentes.
Construção de códigos
Explica as construções de código que você usa para criar seus programas do ABAP usando o ABAP SDK for Google Cloud.
Construtor
Primeiro, você instancia a classe de API que você quer usar. O construtor de cada classe de API teria um padrão semelhante ao mostrado no exemplo a seguir:
METHODS constructor IMPORTING !iv_key_name TYPE /goog/keyname OPTIONAL "Google Cloud Key Name !iv_log_obj TYPE balobj_d OPTIONAL "Application log: Object name !iv_log_subobj TYPE balsubobj OPTIONAL. "Application log: Subobject RAISING /goog/cx_sdk . "Exception Classes
Como importar parâmetros
A tabela a seguir explica os parâmetros de importação de um construtor de método:
Nome do parâmetro | Tipo | Obrigatório/Opcional | Descrição |
---|---|---|---|
iv_key_name |
/GOOG/KEYNAME |
Obrigatório | Especifique a chave do cliente da configuração que você usa para criar uma conexão com o Google Cloud. Para informações sobre a configuração da chave do cliente, consulte Autenticação. |
iv_log_object |
balobj_d |
Opcional | Especifique o objeto de registro do aplicativo, que você usa para armazenar os erros gerados pelo SDK. Para informações sobre a configuração da geração de registros, consulte Geração de registros do aplicativo. |
iv_log_subobject |
balsubobj |
Opcional | Especifique o subobjeto de registro do aplicativo, que você usa para armazenar os erros gerados pelo SDK. Para informações sobre a configuração da geração de registros, consulte Geração de registros do aplicativo. |
Método de API
Com o design orientado a recursos das APIs do Google Cloud, um método de API é uma ação que pode ser executada em um recurso publicado pela API.
Por exemplo, se Topics
for um recurso publicado pela API Pub/Sub, topics.get
será um método de API que representa uma ação no recurso Topics
para receber a configuração de um tópico.
Para mapear um método de classe ABAP para um método de API, consulte a descrição do método que segue o padrão:<resource>.<method_verb>
.
Por exemplo, a descrição de um método do Pub/Sub é pubsub.projects.topics.get
.
projects.topics
: o nome do recurso.get
: a ação do método.
O nome em um mapeamento de método ABAP para uma ação da API segue o padrão:<method_verb>_<resource>
.
Por exemplo, um nome de método ABAP para Pub/Sub é: GET_TOPICS
GET
: a ação do método.TOPICS
: o nome do recurso.
Um método ABAP consiste nas seguintes seções que mapeiam para os métodos da REST API:
Como importar parâmetros
Um método de API pode ter os parâmetros de importação a seguir. Esses parâmetros são opcionais e podem ser passados com base nos requisitos de um método de API que você precisa usar.
Nome do parâmetro | Tipo | Categoria | Descrição |
---|---|---|---|
iv_q_<name> (De |
String | Parâmetros de consulta | Os parâmetros de consulta são anexados ao endpoint da API depois de ( Eles são usados para definir classificação, paginação ou filtro. Pode haver parâmetros de consulta de |
iv_p_<name> (De |
String | Parâmetros de caminho | Os parâmetros de caminho fazem parte do endpoint. Eles são usados para apontar para recursos específicos da REST API. Pode haver parâmetros de caminho de |
is_input (De |
TY_CODE (tipo de classe) | Parâmetros de estrutura de entrada | Os dados transmitidos como o corpo da solicitação podem ser mapeados usando a estrutura de entrada. A API REST aceita o payload JSON como o corpo da solicitação. É um parâmetro totalmente digitado que é convertido em payload JSON para a classe de API e o desenvolvedor não precisa trabalhar com JSON. Consulte os tipos de classe disponíveis para entender os tipos de ABAP para o mapeamento de dados. Por exemplo, o tipo Um método pode ter no máximo um parâmetro de corpo de solicitação. Alguns métodos não têm corpo de solicitação. |
Como exportar parâmetros
Um método de API é compatível com os seguintes parâmetros de exportação:
Nome do parâmetro | Tipo | Categoria | Descrição |
---|---|---|---|
es_raw | dados | Saída bruta |
Esse parâmetro contém a resposta JSON (Erro ou Sucesso) retornada pelo método da API. Mapeie esse parâmetro para uma variável do tipo String para receber a string de resposta JSON. Nos casos em que a resposta é de qualquer outro tipo, por exemplo, xstring para saída de arquivo em Use esse parâmetro para cenários avançados de solução de problemas ou para cenários avançados da API. |
es_output | TY_CODE (tipo de classe) | Estrutura de saída |
A resposta JSON é desserializada para a estrutura ABAP e retornada usando esse parâmetro de exportação digitado. Você pode usá-la como a forma principal de ler as respostas da API usando construções ABAP. |
ev_ret_code | I (inteiro) | Código de retorno |
O código de retorno que pode ser usado para verificar se a execução do método da API conseguiu executar a funcionalidade dele. Para mais informações, consulte Códigos de retorno da API, erros e exceções. |
ev_err_text | String | Texto do erro |
Se a chamada do método falhar, esse parâmetro conterá a mensagem de erro usada para saber o motivo da falha. Para mais informações, consulte Códigos de retorno da API, erros e exceções. |
ev_err_resp |
|
Resposta de erro |
O parâmetro fornece mais informações sobre o erro. Para mais informações, consulte Códigos de retorno da API, erros e exceções. |
Tipo de classe
As APIs do Google Cloud usam JSON como o formato principal para a troca de dados. O ABAP SDK for Google Cloud fornece tipos do ABAP que são mapeados para o esquema JSON esperado pelas APIs do Google Cloud.
Esses tipos de ABAP e de tabela relacionados estão disponíveis como tipos de classe em todas as classes de API fornecidas pelo SDK.
O exemplo a seguir mostra o tipo de classe para a classe /GOOG/CL_PUBSUB_V1
da API Pub/Sub.
A descrição do tipo de classe TY_041
em /GOOG/CL_PUBSUB_V1
é mapeada para o recurso REST Topic
, que é transmitido como JSON Payload
para o método CREATE_TOPICS
.
Comentários ABAP Doc
foram adicionados a todas as classes de API do cliente.
Ao usar as ferramentas de desenvolvimento ABAP para SAP NetWeaver (ADT, na sigla em inglês), esses comentários fornecem descrições dos tipos de classe.
Códigos de erro, exceções e retorno da API
Se um erro ocorre quando o método da API da classe ABAP é chamado, o ABAP SDK for Google Cloud transmite as informações de erro para o programa de chamada usando os parâmetros de exportação do SDK ou gerando exceções.
Código de retorno da API e erros
As APIs do Google Cloud usam um modelo de erroque oferece experiência consistente em diferentes APIs. Quando um método da Google Cloud API é chamado a partir do SDK, os parâmetros a seguir contêm o código de retorno e as mensagens da API:
ev_ret_code
: código de retorno ou código de erro na resposta.ev_error_text
: mensagem de erro na resposta, se houver.es_raw
: resposta de erro bruto, se uma chamada de método de API falhar.
Para verificar o status de uma chamada de API, use o método IS_SUCCESS
. É possível usar o valor de ev_ret_code
para determinar se uma chamada de API foi
bem-sucedida ou não. Em geral, quando ev_ret_code = 2XX
, a chamada do método é considerada bem-sucedida. Para todos os outros valores, a chamada do método é considerada malsucedida.
IF lo_client->is_success( ev_ret_code ).
"Success: Implement custom code
ELSE
"Handle the HTTP error status code
ENDIF.
Para algumas APIs da Plataforma Google Maps, se você chamar uma API com entradas inválidas, ela vai retornar um código de status de sucesso HTTP 2XX
com uma mensagem e um status de erro. em vez de um código de status de erro HTTP
(4XX
ou 5XX
). A mensagem e o status de erro na resposta da API podem ajudar você a solucionar o problema e corrigir as entradas inválidas.
Para essas APIs da Plataforma Google Maps, além do código de retorno ev_ret_code
, verifique a mensagem e o status do erro retornados na resposta da API chamando o método IS_STATUS_OK
após a API chamada. O snippet abaixo mostra um exemplo de como
usar o método IS_STATUS_OK
.
IF lo_client->is_status_ok( ).
"Success: Implement custom code
ELSE
"Handle the HTTP error status code
ENDIF.
O parâmetro es_err_resp
fornece mais informações sobre o erro.
A tabela a seguir explica os campos no parâmetro es_err_resp
.
Campo | Valor |
---|---|
es_err_resp-error_description |
Mensagem de erro recebida da API. Esse valor é igual ao parâmetro ev_error_text . |
es_err_resp-error |
Descrição do status HTTP retornada do cliente HTTP SAP. |
Processar erros retornados pelas APIs do Google Cloud
Use as seguintes orientações para processar erros retornados pelas APIs do Google Cloud:
Códigos de erro comuns: para informações sobre erros comuns retornados pelas APIs do Google Cloud e respectivas causas, consulte códigos de erro.
Capturar detalhes do erro: para capturar informações detalhadas do erro com o ABAP SDK for Google Cloud, use o parâmetro de exportação
es_raw
dos métodos de classe do SDK e mapeie esse parâmetro com uma variável do tipoString
. Essa variável contém uma resposta JSON que contém mensagens de erro detalhadas e violações específicas encontradas pelas APIs.Ver detalhes do erro: para ver informações detalhadas do erro, use um destes métodos:
- Depurador: veja o conteúdo da variável que contém a resposta JSON na ferramenta do depurador ABAP para uma análise mais detalhada.
Interface da GUI: use a classe ABAP
cl_demo_output=>display( lv_response )
para uma representação visual do erro em um programa de relatório. Se você estiver usando os métodos da API em um programa de relatórios e a execução do programa estiver no modo de primeiro plano, use a classe ABAPcl_demo_output=>display_json( lv_response )
.O snippet de código a seguir ilustra como exibir a resposta da API em caso de erro:
DATA lv_response TYPE string, TRY. lo_translate = NEW #( iv_key_name = 'DEMO_TRANSLATE' ). lo_translate->translate_translations EXPORTING is_input = ls_input IMPORTING es_raw = lv_response es_output = ls_output ev_ret_code = lv_ret_code ev_err_text = lv_err_text es_err_resp = ls_err_resp. IF lo_translate->is_error( lv_ret_code ) = abap_true. " Display API response in case of an error cl_demo_output=>display_json( lv_response ). ENDIF. CATCH /goog/cx_sdk INTO lo_exception. lv_err_text = lo_exception->get_text( ). ENDTRY.
Documentação específica da API: algumas APIs do Google Cloud mostram informações detalhadas sobre erros e orientações para solução de problemas na respectiva documentação individual. Para resolver um erro relacionado a uma API, consulte a documentação específica dessa API, por exemplo, Pub/Sub, Document AI e Cloud Storage.
Exceções
Quando ocorre um erro inesperado durante uma chamada de método da API, como configuração incorreta
do SDK ou falha na comunicação HTTP, o SDK gera
uma exceção de classe do tipo /GOOG/CX_SDK
. Você precisa capturar essa exceção no seu código e escrever uma lógica apropriada de tratamento de erros.
Você pode receber a mensagem de erro chamando o método get_text
da classe de exceção. A mensagem de erro retornada pela classe de exceção tem o seguinte formato:
/GOOG/MSG : Return_Code - Error_Message
A causa das etapas de erro e resolução depende do valor de Return_Code
.
Valor de Return_Code |
Causa do erro | Resolução |
---|---|---|
461 | O ABAP SDK for Google Cloud usa um código de retorno especial, 461 , para informar que uma etapa específica de instalação e configuração não foi concluída ou foi concluída incorretamente. Error_Message correspondente fornece mais detalhes sobre o erro. |
Leia com atenção as instruções de instalação e configuração do SDK e verifique se elas estão corretas. |
Qualquer outro valor | Esse código de retorno é o último erro HTTP da classe de cliente SAP padrão. Esse erro indica que o SAP ICM enfrentou um problema de comunicação ao chamar um método da API REST do Google. | Analise cuidadosamente sua rede, firewall, as configurações do SAP ICM e verifique se elas permitem chamadas HTTP para as APIs do Google Cloud. |
Para mensagens de erro típicas acionadas no ABAP SDK for Google Cloud e a resolução, consulte o guia de solução de problemas.
Logging
O ABAP SDK for Google Cloud permite registrar mensagens de erro usando um framework de geração de registros incorporado. O objeto de registro ZGOOG
e o subobjeto
ZABAP_SDK
são enviados com os arquivos de transporte do SDK que podem ser usados
como objetos padrão para configurações de registro.
Como desenvolvedor, você pode transmitir seus objetos de registro e subobjetos personalizados enquanto instancia o stub de cliente da API. Isso requer uma configuração adicional para indicar ao SDK que use seus objetos de registro personalizados em vez do objeto e do subobjeto de registro padrão.
O exemplo a seguir mostra um código de chamada com o objeto de registro personalizado e o subobjeto transmitidos:
TRY.
CREATE OBJECT lo_api_class
EXPORTING
iv_key_name = 'CLIENT_KEY
'
iv_log_obj = 'ZSD' "Application Log Object
iv_log_subobj = 'ZSD_SALES_ORDERS'. "Subobject
CATCH /goog/cx_sdk INTO DATA(lo_exception).
DATA(lv_msg) = lo_exception->get_text( ).
MESSAGE lv_msg TYPE 'E'.
ENDTRY.
Para mais informações sobre como configurar a geração de registros e criar objetos de registro personalizados, consulte Geração de registros do aplicativo.
Mapeamento de tipo de dados
As tabelas a seguir fornecem uma lista completa de valores type
e format
compatíveis com o serviço de descoberta de APIs do Google e o tipo de dados ABAP correspondente.
Para mais informações sobre os valores type
e format
compatíveis com o Serviço de descoberta de APIs do Google, consulte Resumo de tipo e formato.
Valor "Tipo" | Valor do formato | Tipo de dados ABAP | Significado |
---|---|---|---|
qualquer | REFERÊNCIA DE TIPO PARA DADOS | A propriedade pode ter qualquer tipo. Definido pela especificação do esquema JSON. | |
matriz | TIPO DE TABELA COM CHAVES NÃO EXCLUSIVAS | Uma matriz de valores JavaScript. A propriedade "items" indica o esquema dos valores da matriz. Definido pela especificação do esquema JSON. | |
booleano | ABAP_BOOL | Um valor booleano, "true" ou "false". Definido pela especificação do esquema JSON. | |
integer | int32 | INT4 | Um número inteiro assinado de 32 bits Ele tem um valor mínimo de -2.147.483.648 e um valor máximo de 2.147.483.647 (incluso). |
integer | uint32 | INT4 | Um número inteiro sem assinatura de 32 bits. Ele tem um valor mínimo de 0 e um valor máximo de 4.294.967.295 (incluso). |
número | double | /GOOG/NUM_DOUBLE (string) |
Um ponto flutuante IEEE 754 de dupla precisão de 64 bits. |
número | float | /GOOG/NUM_FLOAT (string) |
Um ponto flutuante IEEE 754 de 32 bits de precisão única. |
objeto | TYPES | Um objeto JavaScript. Definido pela especificação do esquema JSON. | |
string | STRING | Uma string arbitrária. Definido pela especificação do esquema JSON. | |
string | byte | STRING | Uma string de bytes preenchida e codificada em base64, codificada com um URL e alfabeto seguro de nome de arquivo (às vezes chamado de "seguro para Web" ou "base64url"). Definido pela RFC 4648. |
string | data | STRING | Uma data RFC 3339 no formato AAAA-MM-DD. Definido na especificação do Esquema JSON. |
string | date-time | STRING | Um carimbo de data/hora RFC 3339 no horário UTC. Isso está no formato aaaa-MM-ddTHH:mm:ss.SSSZ. A parte de milissegundos (".SSS") é opcional. Definido na especificação do Esquema JSON. |
string | google-datetime | STRING | Um carimbo de data/hora RFC 3339 no horário UTC. Isso está no formato aaaa-MM-ddTHH:mm:ss.SSSZ. A parte de milissegundos (".SSS") é opcional. |
string | google-duration | STRING | Uma string termina com o sufixo "s" (indicando segundos) e é precedida pelo número de segundos, com nanossegundos expressos como segundos fracionários. O ponto é sempre usado como um separador decimal, não uma vírgula. |
string | google-fieldmask | STRING | Uma string em que os nomes de campos são separados por uma vírgula. Os nomes dos campos são representados em convenções de nomenclatura de letras minúsculas. |
string | int64 | STRING | Um número inteiro assinado de 64 bits Ele tem um valor mínimo de -9.223.372.036.854.775.808 e um valor máximo de 9.223.372.036.854.775.807 (incluso). |
string | uint64 | STRING | Um número inteiro sem assinatura de 64 bits. Ele tem um valor mínimo de 0 e um valor máximo de (2^64)-1 (incluso). |
Programas de demonstração
O ABAP SDK for Google Cloud vem com vários programas de demonstração que mostram
como consumir serviços do Google usando o SDK. Os programas de demonstração estão
localizados no pacote /GOOG/DEMO
.
Os programas de demonstração abrangem vários serviços do Google, como:
- Document AI
- Pub/Sub
- Cloud Translation
- Cloud Storage
- Secret Manager
Os programas de demonstração são uma ótima maneira de aprender a usar o ABAP SDK for Google Cloud. Eles também são uma ótima maneira de testar sua configuração. A documentação do programa com demonstrações fornece mais detalhes sobre cada demonstração.
Para acessar os programas de demonstração, siga estas etapas:
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.Acesse ABAP SDK for Google Cloud > Demonstrações.
Serialização e desserialização de solicitações e respostas da API
Por padrão, o SDK ABAP para Google Cloud cuida do gerenciamento e do despacho de solicitações e respostas da API. Cada classe ABAP de uma API do Google Cloud tem tipos incorporados de ABAP para formar a entrada e a saída dos métodos. Para implementar uma transformação personalizada de solicitação e resposta, use o ponto de melhoria com as definições do Business Add-In (BAdI) do SAP que são enviadas com o SDK.
Implementar uma transformação personalizada
O ponto de melhoria /GOOG/ES_TRANSFORM_JSON
, que é enviado com o SDK,
inclui as seguintes definições de BAdI:
/GOOG/BADI_SERIALIZE_JSON
: para implementar a lógica de serialização personalizada./GOOG/BADI_DESERIALIZE_JSON
: para implementar a lógica de desserialização personalizada.
Você pode escrever uma lógica de transformação específica nas implementações desses BAdIs.
As interfaces desses BAdIs têm IV_METHOD_NAME
como o parâmetro de importação.
Use esse parâmetro para separar a lógica de transformação de cada API e
método de API usando blocos IF…ENDIF
. No bloco de implementação, defina
o parâmetro de exportação EV_HANDLED
como X
.
Para implementar uma transformação personalizada, siga estas etapas:
Para
/GOOG/BADI_SERIALIZE_JSON
, crie uma implementação de melhoria:- Para transformar as solicitações de API, crie uma implementação para o BAdI
/GOOG/BADI_SERIALIZE_JSON
com uma classe de implementação. - Para transformar as respostas da API, crie uma implementação para o BAdI
/GOOG/BADI_DESERIALIZE_JSON
com uma classe de implementação.
- Para transformar as solicitações de API, crie uma implementação para o BAdI
Determine o ID do método da API em que você precisa gravar a transformação. O ID do método é uma concatenação do seguinte:
- O valor da constante
C_SERVICE_NAME
do atributo de classe. - O caractere
#
. - A descrição do método da classe de API em que você precisa implementar a transformação.
Por exemplo, para gravar transformações para publicar mensagens em um tópico do Pub/Sub, o ID do método é:
pubsub:v1#pubsub.projects.topics.publish
- O valor da constante
Na implementação do método do BAdI, faça o seguinte:
- No ID do método, escreva sua transformação personalizada em
IF….ENDIF block
. Defina o parâmetro de exportação
EV_HANDLED
comoX
.Se
EV_HANDLED
não estiver definido comoX
, a lógica padrão de marshalling e unmarshalling do SDK será aplicada.
- No ID do método, escreva sua transformação personalizada em
A lógica de transformação personalizada é invocada durante o ambiente de execução. Quando você usa transformações personalizadas, a lógica padrão de serialização e desserialização enviada com o SDK é ignorada.
Namespace
Todo o código fornecido pelo Google é colocado no namespace reservado /GOOG/
.
Assistente de código
O assistente de código ajuda a acelerar o desenvolvimento de todos os métodos públicos
dos stubs do cliente da API fornecidos pelo ABAP SDK for Google Cloud. O assistente de código é semelhante à opção pattern
usada no desenvolvimento ABAP. No entanto, além do pattern
do ABAP, o assistente de código também ajuda com o seguinte:
- Gera todas as declarações de dados necessárias.
- Fornece marcadores no código para preencher os parâmetros de importação de métodos.
- Gera resposta básica e processamento de exceções.
- Fornece personalizações e recursos adicionais na forma de escolher a sintaxe ABAP 7.5, adicionar e remover blocos para abrir e fechar conexões HTTP.
- Fornece uma opção de cópia para o código gerado.
O assistente de código fornece apenas um frame de código que você pode modificar de acordo com seus requisitos. O assistente de código é compatível com a sintaxe SAP S/4HANA e SAP ECC.
Para acessar o Assistente de código, execute as seguintes etapas:
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.Acesse ABAP SDK for Google Cloud > Utilitários > Assistente de código.
O exemplo a seguir mostra o código padrão criado para um método de API CREATE_TOPICS
do stub do cliente do Pub/Sub, /GOOG/CL_PUBSUB_V1
:
DATA: lv_p_projects_id TYPE string, lv_p_topics_id TYPE string, ls_input TYPE /goog/cl_pubsub_v1=>ty_041. TRY. * Open HTTP Connection DATA(lo_client) = NEW /goog/cl_pubsub_v1( iv_key_name = 'client_key' ). * Populate relevant parameters * lv_p_projects_id = 'string_value'. * lv_p_topics_id = 'string_value'. * ls_input =. * Call API method CALL METHOD lo_client->create_topics EXPORTING iv_p_projects_id = lv_p_projects_id iv_p_topics_id = lv_p_topics_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 /goog/cl_http_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.
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.