Neste guia de início rápido, mostramos como criar um programa que publica uma mensagem "Hello World!" para um tópico do Pub/Sub usando a API Pub/Sub por meio da edição SAP BTP do ABAP SDK for Google Cloud.
Antes de começar
Antes de executar este guia de início rápido, verifique se você ou seus administradores concluíram os seguintes pré-requisitos:
Você tem uma conta e um projeto do Google Cloud.
O faturamento está ativado para o projeto. Veja como confirmar se o faturamento está ativado para o projeto.
A edição SAP BTP do ABAP SDK for Google Cloud está instalada e configurada. Confira como instalar e configurar a edição SAP BTP do ABAP SDK for Google Cloud.
A autenticação para acessar as APIs do Google Cloud está configurada. Saiba como configurar a autenticação.
Você tem acesso ao ambiente SAP BTP e ABAP.
Você fez o download e instalou a versão mais recente do ABAP Development Tools (ADT) na plataforma mais recente do Eclipse.
Você criou um projeto do Cloud ABAP.
Conceda o papel do IAM
roles/pubsub.publisher
à conta de serviço.Verifique se a API Pub/Sub está ativada no seu projeto do Google Cloud.
Crie um tópico do Pub/Sub
SAMPLE_TOPIC_01
e adicione a ele uma assinatura de pullSAMPLE_SUB_TOPIC_01
. Para mais informações, consulte Criar um tópico e Criar uma assinatura.
Criar uma classe ABAP para publicar mensagens em um tópico do Pub/Sub
Criar um pacote:
- No ADT, acesse o Project Explorer.
- Clique com o botão direito do mouse no pacote
ZLOCAL
e selecione New > ABAP Package. Insira os seguintes detalhes do pacote:
- Nome: insira
ZABAPSDK_TEST
. - Descrição: insira
ABAP SDK Test Package
.
- Nome: insira
Clique em Próxima.
Na caixa de diálogo Selecione uma solicitação de transporte, marque a caixa de seleção Criar uma nova solicitação.
Insira uma descrição para a solicitação de transporte.
Clique em Finish.
Crie uma classe ABAP para chamar a API Pub/Sub:
- Clique com o botão direito do mouse no pacote ABAP e selecione Nova > Classe ABAP.
Digite os seguintes detalhes da sua classe ABAP:
- Nome: insira
ZGOOG_CL_QS_PUBSUB
. - Descrição: insira
Quick start for Pub/Sub API
.
- Nome: insira
Clique em Próxima.
Selecione uma solicitação de transporte e clique em Concluir.
No editor de código, substitua o código padrão pelo seguinte snippet de código:
CLASS zcl_qs_publish_messages DEFINITION PUBLIC FINAL CREATE PUBLIC. PUBLIC SECTION. INTERFACES if_oo_adt_classrun. ENDCLASS. CLASS zcl_qs_publish_messages IMPLEMENTATION. METHOD if_oo_adt_classrun~main. DATA ls_input TYPE /goog/cl_pubsub_v1=>ty_023. DATA lo_pubsub TYPE REF TO /goog/cl_pubsub_v1. DATA lv_p_projects_id TYPE string. DATA lv_p_topics_id TYPE string. TRY. " Open HTTP connection lo_pubsub = NEW /goog/cl_pubsub_v1( iv_key_name = 'DEMO_PUBSUB' ). " Pass the relevant input parameters lv_p_topics_id = 'SAMPLE_TOPIC_01'. lv_p_projects_id = lo_pubsub->gv_project_id. APPEND VALUE #( data = cl_http_utility=>encode_base64( 'Hello World!' ) ) TO ls_input-messages. " Call the API lo_pubsub->publish_topics( EXPORTING iv_p_projects_id = lv_p_projects_id iv_p_topics_id = lv_p_topics_id is_input = ls_input IMPORTING 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) ). " Handle the output IF lo_pubsub->is_success( lv_ret_code ). out->write( 'Message was published!' ). ELSE. out->write( 'Message was not published!' ). ENDIF. " Close the HTTP Connection lo_pubsub->close( ). CATCH /goog/cx_sdk INTO DATA(lo_exception). MESSAGE lo_exception->get_text( ) TYPE 'E'. ENDTRY. ENDMETHOD. ENDCLASS.
Substitua
DEMO_PUBSUB
pelo nome da chave do cliente.Salve e ative as alterações.
Execute o aplicativo:
- Selecione a classe ABAP
ZGOOG_CL_QS_PUBSUB
. - Clique em Run > Run As > ABAP Application (Console).
Ou pressione
F9
.
- Selecione a classe ABAP
Para validar os resultados, siga estas etapas:
No console do Google Cloud, acesse o Pub/Sub.
Selecione a assinatura
SAMPLE_SUB_TOPIC_01
e acesse a guia Mensagens.Use o recurso PULL para verificar se a mensagem "Hello World!" foi publicada no tópico.
A seguir
- Leia o guia Desenvolvimento de aplicativos com a edição SAP BTP 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.