1. Introdução
Neste codelab, você verá as etapas para configurar a autenticação e acessar as APIs do Google Cloud usando tokens quando seu sistema SAP estiver hospedado em uma instância de VM do Compute Engine.
A lista de serviços usados é:
- Compute Engine
- Serviços de rede
- Cloud Shell
O que você vai criar
Você vai fazer o seguinte:
- Configure o SDK do ABAP instalado no sistema SAP para se conectar às APIs do Google.
- Crie um exemplo de programa de relatório para chamar a API Address Validation.
2. Requisitos
- Um navegador, como o Chrome ou o Firefox
- Um projeto do Google Cloud com faturamento ativado ou crie uma conta de teste sem custo financeiro de 90 dias no Google Cloud Platform.
- GUI do SAP (Windows ou Java) instalada no sistema. Se a GUI do SAP já estiver instalada no sistema, conecte-se ao SAP usando o endereço IP externo da VM como o IP do servidor de aplicativos. No Mac, você também pode instalar a GUI do SAP para Java, disponível neste link.
3. Antes de começar
- No console do Google Cloud, na página do seletor de projetos, selecione ou crie um projeto do Google Cloud (por exemplo,
abap-sdk-poc).
- Verifique se o faturamento está ativado para seu projeto do Cloud. Saiba como verificar se o faturamento está ativado em um projeto. Pule esta etapa se você estiver usando a conta de teste sem custo financeiro de 90 dias.
- Você vai usar o Cloud Shell, um ambiente de linha de comando em execução no Google Cloud. No console do Cloud, clique em Ativar o Cloud Shell no canto superior direito:
- Verifique se todas as APIs necessárias (API IAM Service Account Credentials e API Address Validation) estão ativadas.
- Execute os comandos a seguir para autenticar sua conta e definir o projeto padrão como
abap-sdk-poc
. A zonaus-west4-b
é usada como exemplo. Se necessário, altere o projeto e a zona nos comandos abaixo de acordo com sua preferência.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
PROJECT_NAME=abap-sdk-poc
REGION=us-west4
ZONE=us-west4-b
- Verifique se você tem acesso a um sistema SAP com o SDK do ABAP para Google Cloud instalado.
- Consulte o codelab " Instale o teste da plataforma do ABAP 2022 no Google Cloud Platform e instale o SDK do ABAP" para configurar um novo sistema.
4. Criar uma conta de serviço e definir o papel "Criador de token da conta de serviço"
Para criar uma conta de serviço com o papel necessário, siga estas etapas:
- Execute o seguinte comando para criar uma conta de serviço: (pule esta etapa se a conta de serviço já existir)
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Execute o comando a seguir para definir o papel Criador de token da conta de serviço:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/iam.serviceAccountTokenCreator
5. Configurar chave do cliente
Faça login no sistema SAP com o nome de usuário DEVELOPER
e a senha Htods70334
e siga estas etapas para configurar a chave de cliente:
- Na GUI do SAP, insira o código de transação SPRO.
- Clique em IMG de referência SAP.
- Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar chave do cliente.
- Clique em Novas entradas.
- Insira valores nos campos a seguir:
Campo | Descrição |
Nome da chave do Google Cloud | ABAP_SDK_DEMO |
Nome da conta de serviço do Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Escopo do Google Cloud | https://www.googleapis.com/auth/cloud-platform |
Identificador de projeto do Google Cloud | abap-sdk-poc |
Classe de autorização | /GOOG/CL_AUTH_GOOGLE. |
Deixar os outros campos em branco
6. Criar destino RFC
Crie um destino RFC para a credencial do IAM e a API Address Validation.
Nome do destino do RFC | Host de destino (endpoint da API) | Observações |
ZGOOG_IAMCREDENTIALS | Host: iamcredentials.googleapis.comCaminho: prefixo: /v1/Porta: 443SSL: ativo | Este destino do RFC é destinado à API do IAM. |
ZGOOG_ADDRESSVALIDATION_V1 | Host: addressvalidation.googleapis.comPorta: 443SSL: ativo | Este destino RFC tem como alvo a API de validação de endereço |
- Na guia Configurações técnicas, insira os detalhes a seguir para o destino ZGOOG_IAMCREDENTIALS.
- Na guia Configurações técnicas, insira os seguintes detalhes para o destino ZGOOG_ADDRESSVALIDATION_V1.
- No campo Certificado SSL, verifique se a opção Cliente SSL PADRÃO (padrão) está selecionada para os dois destinos RFC.
7. Configurar o mapeamento de serviços
Para configurar a tabela de mapeamento de serviço da API IAM e da API Address Validation, siga estas etapas:
- Na GUI do SAP, insira o código de transação SPRO.
- Clique em IMG de referência SAP.
- Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar mapeamento de serviços.
- Clique em Novas entradas para a API IAM Credential and Address validada vinculada aos destinos RFC.
8. Validar configuração
Para validar a configuração da autenticação, execute as seguintes etapas:
- Na GUI do SAP, insira o código de transação SPRO.
- Clique em IMG de referência SAP.
- Clique em ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration.
- Insira o nome da chave de cliente como
ABAP_SDK_DEMO
. - Clique em Executar para verificar se o fluxo geral foi configurado.
- Uma marca de seleção verde na coluna "Result" indica que todas as etapas de configuração foram concluídas com êxito.
9. Criar um programa de relatórios para chamar o serviço de validação de endereço
- Faça login no seu sistema SAP.
- Acesse o código da transação SE38 e crie um programa de relatórios chamado ZDEMO_ADDRESS_VALIDATION.
- No pop-up que aparece, forneça os detalhes conforme mostrado abaixo e clique em Salvar.
- No próximo pop-up, selecione Objeto local ou forneça um nome de pacote conforme apropriado.
- No Editor do ABAP, adicione o seguinte código:
" data declarations
DATA lv_ret_code TYPE i.
DATA lv_err_text TYPE string.
DATA ls_input TYPE /goog/cl_addrvaldn_v1=>ty_012.
DATA ls_output TYPE /goog/cl_addrvaldn_v1=>ty_013.
DATA ls_err_resp TYPE /goog/err_resp.
DATA lo_exception TYPE REF TO /goog/cx_sdk.
DATA lo_address_validator TYPE REF TO /goog/cl_addrvaldn_v1.
" instantiate api client stub
TRY.
lo_address_validator = NEW #( iv_key_name = 'ABAP_SDK_DEV' ).
" Pass the address to be validated and corrected.
" Mountain misspelled as Moutain
" Amphitheatre misspelled as Amphithetre
ls_input-address-region_code = 'US'.
ls_input-address-locality = 'Moutain View'.
APPEND '1600, Amphithetre, Parkway' TO ls_input-address-address_lines.
" call the api method to validate address
lo_address_validator->validate_address( EXPORTING is_input = ls_input
IMPORTING es_output = ls_output
ev_ret_code = lv_ret_code
ev_err_text = lv_err_text
es_err_resp = ls_err_resp ).
IF lo_address_validator->is_success( lv_ret_code ) = abap_true
AND ls_output-result-verdict-address_complete = abap_true.
cl_demo_output=>new(
)->begin_section( `Original Address`
)->write_data( ls_input-address-region_code
)->write_data( ls_input-address-locality
)->write_data( ls_input-address-address_lines
)->next_section( `Validated & Corrected Address`
)->begin_section( `Elementary Object`
)->write_data( ls_output-result-address-formatted_address
)->display( ).
ENDIF.
CATCH /goog/cx_sdk INTO lo_exception.
" write code here to handle exceptions
cl_demo_output=>display( lo_exception->get_text( ) ).
ENDTRY.
- Salve e ative o relatório.
- Execute o relatório (F8).
Após a execução, a saída do relatório será exibida, conforme mostrado abaixo:
10. Parabéns
Parabéns! Você configurou o SDK do ABAP para chamar o serviço de validação de endereço.
Prossiga com os outros codelabs do SDK do ABAP para continuar sua jornada de aprendizado sobre como usar o SDK do ABAP para o Google Cloud e acessar vários serviços do Google Cloud.
11. Limpar
Caso não queira continuar com outros codelabs relacionados ao SDK do ABAP para Google Cloud, faça a limpeza.
Excluir o projeto
- Exclua o projeto do Google Cloud:
gcloud projects delete abap-sdk-poc
Excluir recursos individuais
- Exclua as entradas de configuração da chave de cliente acessando IMG > Google Cloud > Configurações básicas > Configurar chave de cliente.
- Exclua as entradas de configuração do Mapeamento de serviço acessando IMG > Google Cloud > Configurações básicas > Configurar chave de cliente.
- Exclua os destinos RFC ZGOOG_IAMCREDENTIALS e ZGOOG_ADDRESSVALIDATION_V1.
- Exclua a conta de serviço:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com