Konfigurieren Sie die ABAP SDK-Authentifizierung mit Tokens für SAP, die auf einer Compute Engine-VM gehostet werden, und führen Sie die Address Validation API aus

1. Einführung

In diesem Codelab richten Sie die Authentifizierung ein, um mithilfe von Tokens auf Google Cloud APIs zuzugreifen, wenn Ihr SAP-System auf einer Compute Engine-VM-Instanz gehostet wird.

Folgende Dienste werden verwendet:

  • Compute Engine
  • Netzwerkdienste
  • Cloud Shell

Aufgaben

Sie werden Folgendes tun:

  • Konfigurieren Sie das auf dem SAP-System installierte ABAP SDK, um eine Verbindung zu Google APIs herzustellen.
  • Erstellen Sie ein Beispielberichtsprogramm zum Aufrufen der Address Validation API.

2. Voraussetzungen

  • Ein Browser wie Chrome oder Firefox
  • Ein Google Cloud-Projekt mit aktivierter Abrechnung oder erstellen Sie ein kostenloses 90-tägiges Testkonto für die Google Cloud Platform.
  • Auf Ihrem System installiertes SAP GUI (Windows oder Java). Wenn SAP GUI bereits auf Ihrem System installiert ist, stellen Sie eine Verbindung zu SAP her. Verwenden Sie dazu die externe IP-Adresse der VM als IP-Adresse des Anwendungsservers. Wenn Sie einen Mac verwenden, können Sie auch das SAP GUI für Java installieren.

3. Hinweis

6757b2fb50ddcc2d.png

  • Prüfen Sie, ob alle erforderlichen APIs (IAM Service Account Credentials API und Address Validation API) aktiviert sind.
  • Führen Sie die folgenden Befehle aus, um sich bei Ihrem Konto zu authentifizieren und das Standardprojekt auf abap-sdk-poc festzulegen. Als Beispiel dient Zone us-west4-b. Ändern Sie bei Bedarf das Projekt und die Zone in den folgenden Befehlen nach Bedarf.
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. Dienstkonto erstellen und die Rolle „Ersteller von Dienstkonto-Tokens“ festlegen

Führen Sie die folgenden Schritte aus, um ein Dienstkonto mit der erforderlichen Rolle zu erstellen:

  1. Führen Sie den folgenden Befehl aus, um ein Dienstkonto zu erstellen: (Überspringen Sie diesen Schritt, wenn das Dienstkonto bereits vorhanden ist.)
gcloud iam service-accounts create abap-sdk-dev \
    --description="ABAP SDK Dev Account" \
    --display-name="ABAP SDK Dev Account"
  1. Führen Sie den folgenden Befehl aus, um die Rolle Ersteller von Dienstkonto-Tokens festzulegen:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
    --member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountTokenCreator

5. Clientschlüssel konfigurieren

Melden Sie sich im SAP-System mit dem Nutzernamen DEVELOPER und dem Passwort Htods70334 an und führen Sie die folgenden Schritte aus, um den Clientschlüssel zu konfigurieren:

  1. Geben Sie auf der SAP-GUI den Transaktionscode SPRO ein.
  2. Klicken Sie auf SAP-Referenz-IMG.
  3. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
  4. Klicken Sie auf Neue Einträge.
  5. Geben Sie Werte für die folgenden Felder ein:

Feld

Beschreibung

Google Cloud-Schlüsselname

ABAP_SDK_DEMO

Name des Google Cloud-Dienstkontos

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

Google Cloud-Bereich

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

Google Cloud-Projekt-ID

abap-sdk-poc

Autorisierungsklasse

/GOOG/CL_AUTH_GOOGLE

Lassen Sie die anderen Felder leer.

c72e71da6fd75b29.png

6. RFC-Ziel erstellen

Erstellen Sie ein RFC-Ziel für IAM-Anmeldedaten und die Address Validation API.

Name des RFC-Ziels

Zielhost (API-Endpunkt)

Hinweise

ZGOOG_IAMCREDENTIALS

Host: iamcredentials.googleapis.comPfad: Präfix: /v1/Port: 443SSL: Aktiv

Dieses RFC-Ziel zielt auf die IAM API ab.

ZGOOG_ADDRESSVALIDATION_V1

Host: addressvalidation.googleapis.comPort: 443SSL: Aktiv

Dieses RFC-Ziel ist auf die Address Validation API ausgerichtet

  • Geben Sie auf dem Tab Technical Settings (Technische Einstellungen) die folgenden Informationen für das Ziel „ZGOOG_IAMCREDENTIALS“ ein.

e670c6a91acba40f.png

  • Geben Sie auf dem Tab Technische Einstellungen die folgenden Informationen für das Ziel ZGOOG_ADDRESSVALIDATION_V1 ein.

fcf92530ece612ea.png

  • Achten Sie darauf, dass im Feld SSL-Zertifikat für beide RFC-Ziele die Option STANDARD SSL-Client (Standard) ausgewählt ist.

b6370d12bd332318.png

7. Dienstzuordnung konfigurieren

Führen Sie die folgenden Schritte aus, um die Dienstzuordnungstabelle für die IAM API und die Address Validation API zu konfigurieren:

  1. Geben Sie auf der SAP-GUI den Transaktionscode SPRO ein.
  2. Klicken Sie auf SAP-Referenz-IMG.
  3. Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.
  4. Klicken Sie für die IAM-Anmeldedaten und Adressvalidierungs-API, die mit den RFC-Zielen verknüpft sind, auf Neue Einträge.

e227316b0f249823.png

8. Konfiguration validieren

Führen Sie die folgenden Schritte aus, um die Authentifizierungskonfiguration zu validieren:

  1. Geben Sie auf der SAP-GUI den Transaktionscode SPRO ein.
  2. Klicken Sie auf SAP-Referenz-IMG.
  3. Klicken Sie auf ABAP SDK for Google Cloud > Dienstprogramme > Authentifizierungskonfiguration validieren.
  4. Geben Sie den Namen des Clientschlüssels als ABAP_SDK_DEMO ein.
  5. Klicken Sie auf Ausführen, um zu prüfen, ob der gesamte Ablauf erfolgreich konfiguriert wurde.
  6. Ein grünes Häkchen in der Ergebnisspalte zeigt an, dass alle Konfigurationsschritte erfolgreich abgeschlossen wurden.

d7285e64e22c25b6.png

9. Berichtsprogramm zum Aufrufen des Address Validation-Dienstes erstellen

  1. Melden Sie sich in Ihrem SAP-System an.
  2. Rufen Sie den Transaktionscode SE38 auf und erstellen Sie ein Berichtsprogramm namens ZDEMO_ADDRESS_VALIDATION.
  3. Geben Sie im Pop-up-Fenster, das geöffnet wird, die folgenden Informationen ein und klicken Sie auf Speichern.

d8aac0f9e0bc5f9d.png

  1. Wählen Sie im nächsten Pop-up-Fenster entweder Lokales Objekt aus oder geben Sie einen Paketnamen an.
  2. Fügen Sie im ABAP-Editor den folgenden Code hinzu:
" 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. Speichern und aktivieren Sie den Bericht.
  2. Führen Sie den Bericht aus (F8).

Nach erfolgreicher Ausführung sollte die Berichtsausgabe so aussehen:

8b0aed97320f4ef.png

10. Glückwunsch

Glückwunsch! Du hast das ABAP SDK so konfiguriert, dass der Address Validation-Dienst aufgerufen wird.

Sie können jetzt mit den anderen ABAP SDK-Codelabs fortfahren und Ihr Lernpfad zur Verwendung des ABAP SDK for Google Cloud für den Zugriff auf verschiedene Google Cloud-Dienste fortsetzen.

11. Bereinigen

Wenn Sie nicht mit den zusätzlichen Codelabs im Zusammenhang mit dem ABAP SDK for Google Cloud fortfahren möchten, fahren Sie mit der Bereinigung fort.

Projekt löschen

  • Löschen Sie das Google Cloud-Projekt:
gcloud projects delete abap-sdk-poc

Einzelne Ressourcen löschen

  1. Löschen Sie die Clientschlüssel-Konfigurationseinträge. Rufen Sie dazu IMG > Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
  2. Löschen Sie die Konfigurationseinträge der Service Mapping-Konfiguration. Gehen Sie dazu zu IMG > Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
  3. Löschen Sie die RFC-Ziele ZGOOG_IAMCREDENTIALS und ZGOOG_ADDRESSVALIDATION_V1.
  4. Löschen Sie das Dienstkonto:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com