Configurar a autenticação do SDK do ABAP usando tokens para SAP hospedados na VM do Compute Engine e executar a API Address validação

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

6757b2fb50ddcc2d.png

  • 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 zona us-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

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:

  1. 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"
  1. 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:

  1. Na GUI do SAP, insira o código de transação SPRO.
  2. Clique em IMG de referência SAP.
  3. Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar chave do cliente.
  4. Clique em Novas entradas.
  5. 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

c72e71da6fd75b29.png

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.

e670c6a91acba40f.png

  • Na guia Configurações técnicas, insira os seguintes detalhes para o destino ZGOOG_ADDRESSVALIDATION_V1.

fcf92530ece612ea.png

  • No campo Certificado SSL, verifique se a opção Cliente SSL PADRÃO (padrão) está selecionada para os dois destinos RFC.

b6370d12bd332318.png

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:

  1. Na GUI do SAP, insira o código de transação SPRO.
  2. Clique em IMG de referência SAP.
  3. Clique em ABAP SDK for Google Cloud > Configurações básicas > Configurar mapeamento de serviços.
  4. Clique em Novas entradas para a API IAM Credential and Address validada vinculada aos destinos RFC.

e227316b0f249823.png

8. Validar configuração

Para validar a configuração da autenticação, execute as seguintes etapas:

  1. Na GUI do SAP, insira o código de transação SPRO.
  2. Clique em IMG de referência SAP.
  3. Clique em ABAP SDK for Google Cloud > Utilities > Validate Authentication Configuration.
  4. Insira o nome da chave de cliente como ABAP_SDK_DEMO.
  5. Clique em Executar para verificar se o fluxo geral foi configurado.
  6. Uma marca de seleção verde na coluna "Result" indica que todas as etapas de configuração foram concluídas com êxito.

d7285e64e22c25b6.png

9. Criar um programa de relatórios para chamar o serviço de validação de endereço

  1. Faça login no seu sistema SAP.
  2. Acesse o código da transação SE38 e crie um programa de relatórios chamado ZDEMO_ADDRESS_VALIDATION.
  3. No pop-up que aparece, forneça os detalhes conforme mostrado abaixo e clique em Salvar.

d8aac0f9e0bc5f9d.png

  1. No próximo pop-up, selecione Objeto local ou forneça um nome de pacote conforme apropriado.
  2. 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.
  1. Salve e ative o relatório.
  2. Execute o relatório (F8).

Após a execução, a saída do relatório será exibida, conforme mostrado abaixo:

8b0aed97320f4ef.png

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

  1. Exclua as entradas de configuração da chave de cliente acessando IMG > Google Cloud > Configurações básicas > Configurar chave de cliente.
  2. Exclua as entradas de configuração do Mapeamento de serviço acessando IMG > Google Cloud > Configurações básicas > Configurar chave de cliente.
  3. Exclua os destinos RFC ZGOOG_IAMCREDENTIALS e ZGOOG_ADDRESSVALIDATION_V1.
  4. Exclua a conta de serviço:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com