Configura l'autenticazione dell'SDK ABAP utilizzando token per SAP ospitati sulla VM di Compute Engine ed esegui l'API Address Validation

1. Introduzione

In questo codelab, seguirai i passaggi per configurare l'autenticazione per accedere alle API Google Cloud utilizzando i token quando il sistema SAP è ospitato su un'istanza VM di Compute Engine.

Ecco l'elenco dei servizi utilizzati:

  • Compute Engine
  • Servizi di rete
  • Cloud Shell

Cosa creerai

Eseguirai queste operazioni:

  • Configura l'SDK ABAP installato sul sistema SAP per connetterti alle API di Google.
  • Crea un programma di report di esempio per chiamare l'API Address Validation.

2. Requisiti

  • Un browser, ad esempio Chrome o Firefox.
  • Un progetto Google Cloud con fatturazione abilitata o crea un account di prova senza costi di 90 giorni per Google Cloud Platform.
  • GUI SAP (Windows o Java) installata nel sistema. Se la GUI SAP è già installata nel sistema, connettiti utilizzando l'indirizzo IP esterno della VM come IP server delle applicazioni. Se utilizzi Mac, puoi anche installare la GUI di SAP per Java disponibile in questo link.

3. Prima di iniziare

6757b2fb50ddcc2d.png

  • Assicurati che tutte le API necessarie (API IAM Service Account Credentials e API Address Validation) siano abilitate.
  • Esegui questi comandi per eseguire l'autenticazione per il tuo account e imposta il progetto predefinito su abap-sdk-poc. La zona us-west4-b viene utilizzata come esempio. Se necessario, modifica il progetto e la zona nei comandi seguenti in base alle tue preferenze.
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. Creare un account di servizio e impostare il ruolo Creatore token account di servizio

Per creare un account di servizio con il ruolo richiesto, segui questi passaggi:

  1. Esegui questo comando per creare un account di servizio: (ignora questo passaggio se l'account di servizio esiste già)
gcloud iam service-accounts create abap-sdk-dev \
    --description="ABAP SDK Dev Account" \
    --display-name="ABAP SDK Dev Account"
  1. Esegui questo comando per impostare il ruolo Creatore token account di servizio:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
    --member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountTokenCreator

5. Configura chiave client

Accedi al sistema SAP con il nome utente DEVELOPER e la password Htods70334 e segui questi passaggi per configurare la chiave client:

  1. Nella GUI di SAP, inserisci il codice della transazione SPRO.
  2. Fai clic su IMG di riferimento SAP.
  3. Fai clic su SDK ABAP per Google Cloud > Impostazioni di base > Configura chiave client.
  4. Fai clic su Nuove voci.
  5. Inserisci i valori nei seguenti campi:

Campo

Descrizione

Nome chiave Google Cloud

ABAP_SDK_DEMO

Nome dell'account di servizio Google Cloud

abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com

Ambito Google Cloud

https://www.googleapis.com/auth/cloud-platform

Identificatore di progetto Google Cloud

abap-sdk-poc

Classe di autorizzazione

/GOOG/CL_AUTH_GOOGLE.

Lasciare gli altri campi vuoti

c72e71da6fd75b29.png

6. Crea destinazione RFC

Crea una destinazione RFC per le credenziali IAM e l'API Address Validation.

Nome destinazione RFC

Host di destinazione (endpoint API)

Note

ZGOOG_IAMCREDENTIALS

Host: iamcredentials.googleapis.comPercorso: Prefisso: /v1/Porta: 443SSL: attivo

Questa destinazione RFC ha come target l'API IAM.

ZGOOG_ADDRESSVALIDATION_V1

Host: addressvalidation.googleapis.comPorta: 443SSL: attivo

Questa destinazione RFC ha come target l'API Address Validation

  • Nella scheda Impostazioni tecniche, inserisci i seguenti dettagli per la destinazione ZGOOG_IAMCREDENTIALS.

e670c6a91acba40f.png

  • Nella scheda Impostazioni tecniche, inserisci i seguenti dettagli per la destinazione ZGOOG_ADDRESSVALIDATION_V1.

fcf92530ece612ea.png

  • Per il campo Certificato SSL, assicurati che sia selezionata l'opzione Client SSL PREDEFINITO (Standard) per entrambe le destinazioni RFC.

b6370d12bd332318.png

7. Configura mappatura servizi

Per configurare la tabella di mappatura del servizio per l'API IAM e l'API Address Validation, segui questi passaggi:

  1. Nella GUI di SAP, inserisci il codice della transazione SPRO.
  2. Fai clic su IMG di riferimento SAP.
  3. Fai clic su SDK ABAP per Google Cloud > Impostazioni di base > Configurare la mappatura dei servizi.
  4. Fai clic su New Entries (Nuove voci) per l'API IAM Credential and Address Validation collegata alle destinazioni RFC.

e227316b0f249823.png

8. Convalida configurazione

Per convalidare la configurazione dell'autenticazione, segui questi passaggi:

  1. Nella GUI di SAP, inserisci il codice della transazione SPRO.
  2. Fai clic su IMG di riferimento SAP.
  3. Fai clic su SDK ABAP per Google Cloud > Utilità > Convalida configurazione dell'autenticazione.
  4. Inserisci ABAP_SDK_DEMO come nome della chiave client.
  5. Fai clic su Esegui per verificare se il flusso complessivo è configurato correttamente.
  6. Un segno di spunta verde nella colonna Risultato indica che tutti i passaggi di configurazione sono stati completati correttamente.

d7285e64e22c25b6.png

9. Crea un programma di report per chiamare il servizio Address Validation

  1. Accedi al tuo sistema SAP.
  2. Vai al codice transazione SE38 e crea un programma di report con il nome ZDEMO_ADDRESS_VALIDATION.
  3. Nel popup che si apre, fornisci i dettagli indicati di seguito e fai clic su Salva.

d8aac0f9e0bc5f9d.png

  1. Nel popup successivo, seleziona Oggetto locale o fornisci un nome di pacchetto a seconda dei casi.
  2. Nell'editor ABAP, aggiungi il seguente codice:
" 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. Salva e attiva il report.
  2. Esegui il report (F8).

Una volta eseguita correttamente, dovresti vedere l'output del report come mostrato di seguito:

8b0aed97320f4ef.png

10. Complimenti

Complimenti! Hai configurato correttamente l'SDK ABAP per chiamare il servizio Address Validation.

Ora puoi procedere con gli altri codelab dell'SDK ABAP per continuare il tuo percorso di apprendimento sull'utilizzo dell'SDK ABAP per Google Cloud per accedere a vari servizi Google Cloud.

11. Esegui la pulizia

Se non vuoi continuare con i codelab aggiuntivi relativi all'SDK ABAP per Google Cloud, procedi con la pulizia.

Elimina il progetto

  • Elimina il progetto Google Cloud:
gcloud projects delete abap-sdk-poc

Eliminare singole risorse

  1. Elimina le voci di configurazione della chiave client da IMG > Google Cloud > Impostazioni di base > Configura chiave client.
  2. Elimina le voci di configurazione di Service Mapping da IMG > Google Cloud > Impostazioni di base > Configura chiave client.
  3. Elimina le destinazioni RFC ZGOOG_IAMCREDENTIALS e ZGOOG_ADDRESSVALIDATION_V1.
  4. Elimina l'account di servizio:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com