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
- Wählen Sie in der Google Cloud Console auf der Seite für die Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie eines, z. B.
abap-sdk-poc).
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. Hier erfahren Sie, wie Sie prüfen, ob die Abrechnung für ein Projekt aktiviert ist. Überspringen Sie diesen Schritt, wenn Sie das 90-tägige kostenlose Testkonto verwenden.
- Sie verwenden Cloud Shell, eine Befehlszeilenumgebung, die in Google Cloud ausgeführt wird. Klicken Sie in der Cloud Console rechts oben auf Cloud Shell aktivieren:
- 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 Zoneus-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
- Sie benötigen Zugriff auf ein SAP-System, auf dem das ABAP SDK for Google Cloud installiert ist.
- Weitere Informationen finden Sie im Codelab „ Install ABAP Platform Trial 2022 on Google Cloud Platform and Install ABAP SDK“ um ein neues System einzurichten.
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:
- 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"
- 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:
- Geben Sie auf der SAP-GUI den Transaktionscode SPRO ein.
- Klicken Sie auf SAP-Referenz-IMG.
- Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
- Klicken Sie auf Neue Einträge.
- 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.
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.
- Geben Sie auf dem Tab Technische Einstellungen die folgenden Informationen für das Ziel ZGOOG_ADDRESSVALIDATION_V1 ein.
- Achten Sie darauf, dass im Feld SSL-Zertifikat für beide RFC-Ziele die Option STANDARD SSL-Client (Standard) ausgewählt ist.
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:
- Geben Sie auf der SAP-GUI den Transaktionscode SPRO ein.
- Klicken Sie auf SAP-Referenz-IMG.
- Klicken Sie auf ABAP SDK for Google Cloud > Grundlegende Einstellungen > Dienstzuordnung konfigurieren.
- Klicken Sie für die IAM-Anmeldedaten und Adressvalidierungs-API, die mit den RFC-Zielen verknüpft sind, auf Neue Einträge.
8. Konfiguration validieren
Führen Sie die folgenden Schritte aus, um die Authentifizierungskonfiguration zu validieren:
- Geben Sie auf der SAP-GUI den Transaktionscode SPRO ein.
- Klicken Sie auf SAP-Referenz-IMG.
- Klicken Sie auf ABAP SDK for Google Cloud > Dienstprogramme > Authentifizierungskonfiguration validieren.
- Geben Sie den Namen des Clientschlüssels als
ABAP_SDK_DEMO
ein. - Klicken Sie auf Ausführen, um zu prüfen, ob der gesamte Ablauf erfolgreich konfiguriert wurde.
- Ein grünes Häkchen in der Ergebnisspalte zeigt an, dass alle Konfigurationsschritte erfolgreich abgeschlossen wurden.
9. Berichtsprogramm zum Aufrufen des Address Validation-Dienstes erstellen
- Melden Sie sich in Ihrem SAP-System an.
- Rufen Sie den Transaktionscode SE38 auf und erstellen Sie ein Berichtsprogramm namens ZDEMO_ADDRESS_VALIDATION.
- Geben Sie im Pop-up-Fenster, das geöffnet wird, die folgenden Informationen ein und klicken Sie auf Speichern.
- Wählen Sie im nächsten Pop-up-Fenster entweder Lokales Objekt aus oder geben Sie einen Paketnamen an.
- 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.
- Speichern und aktivieren Sie den Bericht.
- Führen Sie den Bericht aus (F8).
Nach erfolgreicher Ausführung sollte die Berichtsausgabe so aussehen:
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
- Löschen Sie die Clientschlüssel-Konfigurationseinträge. Rufen Sie dazu IMG > Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
- Löschen Sie die Konfigurationseinträge der Service Mapping-Konfiguration. Gehen Sie dazu zu IMG > Google Cloud > Grundlegende Einstellungen > Clientschlüssel konfigurieren.
- Löschen Sie die RFC-Ziele ZGOOG_IAMCREDENTIALS und ZGOOG_ADDRESSVALIDATION_V1.
- Löschen Sie das Dienstkonto:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com