1. Einführung
In diesem Codelab erfahren Sie, wie Sie die Methoden der Translation API V3 (erweitert) mit dem ABAP SDK for Google Cloud aufrufen. In diesem Codelab erfahren Sie, wie Sie mit der Translation API V3 einen Text übersetzen, die Sprache des Texts erkennen und die unterstützten Sprachen auflisten.
In diesem Codelab werden die folgenden Google Cloud-Dienste verwendet:
- Compute Engine
- Netzwerkdienste
- Cloud Shell
- Cloud Translation API v3
Vorbereitung
- Sie benötigen Zugriff auf ein SAP-System, auf dem das ABAP SDK for Google Cloud installiert ist.
- Im Codelab Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK (ABAP-Plattform-Testversion auf der Google Cloud-Plattform installieren und ABAP SDK installieren) erfahren Sie, wie Sie ein neues System einrichten.
Aufgaben
Sie erstellen die folgenden Programme in Ihrem SAP-System mit dem ABAP SDK for Google Cloud:
- Text mit der Cloud Translation API V3 von Google in mehrere Sprachen übersetzen
- Sprache des Quelltexts mit der Google Cloud Translation API V3 erkennen
- Liste der unterstützten Sprachen der Google Cloud Translation API V3
2. Voraussetzungen
- Ein Browser, z. B. Chrome oder Firefox.
- Ein Google Cloud-Projekt mit aktivierter Abrechnung oder ein kostenloses Testkonto für 90 Tage für die Google Cloud Platform erstellen
- SAP GUI (Windows oder Java) auf Ihrem System installiert Wenn die SAP GUI bereits auf Ihrem Computer installiert ist, stellen Sie eine Verbindung zu SAP her, indem Sie die externe IP-Adresse der VM als IP-Adresse des Anwendungsservers verwenden. Wenn Sie einen Mac verwenden, können Sie auch die SAP GUI for Java installieren, die über diesen Link verfügbar ist.
3. Hinweis
- Sie benötigen Zugriff auf ein SAP-System, auf dem das ABAP SDK for Google Cloud installiert ist.
- Im Codelab Install ABAP Platform Trial on Google Cloud Platform and Install ABAP SDK (ABAP-Plattform-Testversion auf der Google Cloud-Plattform installieren und ABAP SDK installieren) erfahren Sie, wie Sie ein neues System einrichten.
- Wählen Sie in der Google Cloud Console auf der Seite der Projektauswahl ein Google Cloud-Projekt aus oder erstellen Sie ein solches Projekt (z. B.
abap-sdk-poc).
- Die Abrechnung für das Cloud-Projekt muss aktiviert sein. So prüfen Sie, ob die Abrechnung für ein Projekt aktiviert ist Überspringen Sie diesen Schritt, wenn Sie das Konto mit 90-tägigem kostenlosen Testzeitraum 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:
- Führen Sie die folgenden Befehle aus, um sich für Ihr Konto zu authentifizieren und das Standardprojekt auf
abap-sdk-poc
festzulegen. Als Beispiel wird Zoneus-west4-b
verwendet. Ändern Sie bei Bedarf das Projekt und die Zone in den folgenden Befehlen entsprechend Ihren Anforderungen.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
- Sie benötigen Zugriff auf ein SAP-System, in dem das ABAP SDK for Google Cloud installiert ist.
- Sie müssen Codelab 1 (ABAP Platform Trial 1909 auf der Google Cloud Platform installieren und ABAP SDK for Google Cloud installieren) und Codelab 2 (ABAP SDK-Authentifizierung mithilfe von Tokens für SAP konfigurieren, die auf einer Compute Engine-VM gehostet wird) abschließen, bevor Sie mit diesem Codelab fortfahren können.
- Wenn Sie Codelab 1 und Codelab 2 abgeschlossen haben, wurde Ihnen ein ABAP Platform Trial 1909-System in Google Cloud mit der erforderlichen Authentifizierungs- und Verbindungskonfiguration bereitgestellt.
- Wenn Sie Codelab 1 und Codelab 2 nicht abgeschlossen haben, haben Sie nicht die erforderliche Infrastruktur und Konnektivität, um die Schritte in diesem Codelab auszuführen. Sie müssen daher Codelab 1 und Codelab 2 abschließen, bevor Sie mit diesem Codelab fortfahren können.
4. Cloud Translation API V3 in Ihrem Google Cloud-Projekt aktivieren
- Führen Sie den folgenden Befehl in Cloud Shell aus, um die Cloud Translation API in Ihrem Google Cloud-Projekt zu aktivieren:
gcloud services enable translate.googleapis.com
Nach erfolgreicher Ausführung sollte die folgende Meldung angezeigt werden:
Die Cloud Translation API sollte jetzt in Ihrem Google Cloud-Projekt aktiviert sein.
5. Dienstkonto mit der Rolle „Cloud Translation-Nutzer“ erstellen
So erstellen Sie ein Dienstkonto mit der erforderlichen Rolle:
- Führen Sie im Cloud Shell-Terminal den folgenden Befehl aus:
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
- Fügen Sie dem im vorherigen Schritt erstellten Dienstkonto jetzt die erforderlichen Rollen hinzu.
gcloud projects add-iam-policy-binding abap-sdk-poc\
--member='serviceAccount:abap-sdk-translation-tester@abap-sdk-poc.iam.gserviceaccount.com' \
--role='roles/cloudtranslate.user'
Im obigen Befehl wird „abap-sdk-poc“ als Vorlagenname für das Google Cloud-Projekt verwendet. Ersetzen Sie sie durch Ihre Projekt-ID.
- Rufen Sie die Seite IAM auf, um zu prüfen, ob die Rolle hinzugefügt wurde. Das von Ihnen erstellte Dienstkonto sollte zusammen mit der zugewiesenen Rolle aufgeführt sein, wie unten dargestellt:
6. Clientschlüsselkonfiguration erstellen
Nachdem Sie die Voraussetzungen auf Google Cloud-Seite eingerichtet haben, können wir mit der Konfiguration auf SAP-Seite fortfahren.
Für die Authentifizierung und für die Konfiguration von Verbindungen verwendet das ABAP SDK for Google Cloud die Tabelle /GOOG/CLIENT_KEY
.
Führen Sie die folgenden Schritte aus, um die Konfiguration in der Tabelle /GOOG/CLIENT_KEY
zu verwalten:
- Geben Sie in 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.
- Achten Sie auf die folgenden Werte in den Feldern:
Feld | Wert |
Google Cloud-Schlüsselname | TEST_TRANSLATION |
Name des Google Cloud-Dienstkontos |
|
Google Cloud-Bereich |
|
Projekt-ID | abap-sdk-poc |
Autorisierungsklasse |
|
Lassen Sie alle anderen Felder leer.
7. Z-Bericht zum Aufrufen der Cloud Translation API V3 und Übersetzen eines Textes erstellen
- Melden Sie sich in Ihrem SAP-System an.
- Rufen Sie den Transaktionscode
SE38
auf und erstellen Sie ein Berichtsprogramm mit dem NamenZDEMO_TRANSLATE_TEXT.
. - Geben Sie im Pop-up-Fenster die Details wie unten gezeigt ein und klicken Sie auf Speichern.
Wählen Sie im nächsten Pop-up-Fenster entweder „Local Object“ (Lokales Objekt) oder „Provide a package name“ (Paketnamen angeben) aus.
- Fügen Sie im ABAP-Editor den folgenden Code ein:
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.
DATA ls_input TYPE /goog/cl_translation_v3=>ty_050.
TRY.
lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').
ls_input = VALUE #( mime_type = 'text/plain'
source_language_code = 'en-US'
target_language_code = 'es-ES'
contents = VALUE #( ( |Sun is our nearest star| ) ) ).
lo_translate->translate_text_projects(
EXPORTING
iv_p_projects_id = CONV #( lo_translate->gv_project_id )
is_input = ls_input
IMPORTING
es_output = DATA(ls_output)
ev_ret_code = DATA(lv_ret_code)
ev_err_text = DATA(lv_err_text)
es_err_resp = DATA(lv_err_resp)
).
IF lo_translate->is_success( lv_ret_code ) = abap_true.
cl_demo_output=>new(
)->begin_section( 'API Call Successful:'
)->write_text( 'Translated Text:'
)->write_data( ls_output-translations[ 1 ]-translated_text
)->display( ).
ELSE.
cl_demo_output=>new(
)->begin_section( 'API Call Unsuccessful:'
)->write_text( 'Error Message:'
)->write_text( lv_err_text
)->display( ).
ENDIF.
CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
DATA(lv_error) = lo_sdk_excp->get_text( ).
cl_demo_output=>new(
)->begin_section( 'Exception Occured:'
)->write_text( lv_error
)->display( ).
ENDTRY.
- Speichern und aktivieren Sie den Bericht.
- Führen Sie den Bericht aus (F8).
Nach erfolgreicher Ausführung sollte die Berichtsausgabe wie unten dargestellt aussehen:
8. Z-Bericht zum Aufrufen der Cloud Translation API V3 und zur Erkennung der Sprache erstellen
- Melden Sie sich in Ihrem SAP-System an.
- Rufen Sie den Transaktionscode
SE38
auf und erstellen Sie ein Berichtsprogramm mit dem NamenZDEMO_DETECT_LANGUAGE.
. - Geben Sie im Pop-up-Fenster die folgenden Details ein und klicken Sie auf Speichern:
Wählen Sie im nächsten Pop-up-Fenster entweder „Lokales Objekt“ oder „Paketname angeben“ aus.
- Fügen Sie im ABAP-Editor den folgenden Code ein:
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.
DATA ls_input TYPE /goog/cl_translation_v3=>ty_009.
TRY.
lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').
ls_input = VALUE #( mime_type = |text/plain|
content = |La luce viaggia più veloce del suono| ).
lo_translate->detect_language_projects(
EXPORTING
iv_p_projects_id = CONV #( lo_translate->gv_project_id )
is_input = ls_input
IMPORTING
es_output = DATA(ls_output)
ev_ret_code = DATA(lv_ret_code)
ev_err_text = DATA(lv_err_text)
es_err_resp = DATA(lv_err_resp)
).
IF lo_translate->is_success( lv_ret_code ) = abap_true.
cl_demo_output=>new(
)->begin_section( 'API Call Successful:'
)->write_text( 'Detected Language:'
)->write_data( ls_output-languages[ 1 ]-language_code
)->display( ).
ELSE.
cl_demo_output=>new(
)->begin_section( 'API Call Unsuccessful:'
)->write_text( 'Error Message:'
)->write_text( lv_err_text
)->display( ).
ENDIF.
CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
DATA(lv_error) = lo_sdk_excp->get_text( ).
cl_demo_output=>new(
)->begin_section( 'Exception Occured:'
)->write_text( lv_error
)->display( ).
ENDTRY.
- Speichern und aktivieren Sie den Bericht.
- Führen Sie den Bericht aus (F8).
Nach erfolgreicher Ausführung sollte die Berichtsausgabe wie unten dargestellt aussehen:
9. Z-Bericht zum Aufrufen der Methode „GET_SUPPORTED_LANGUAGES“ erstellen
- Melden Sie sich in Ihrem SAP-System an.
- Rufen Sie den Transaktionscode
SE38
auf und erstellen Sie ein Berichtsprogramm mit dem NamenZDEMO_GET_LANGUAGES.
. - Geben Sie im Pop-up-Fenster die Details wie unten gezeigt ein und klicken Sie auf Speichern.
Wählen Sie im nächsten Pop-up-Fenster entweder „Lokales Objekt“ oder „Paketname angeben“ aus.
- Fügen Sie im ABAP-Editor den folgenden Code ein:
DATA lo_translate TYPE REF TO /goog/cl_translation_v3.
TRY.
lo_translate = NEW #( iv_key_name = 'TEST_TRANSLATION').
lo_translate->get_supported_languages_pro(
EXPORTING
iv_q_displaylanguagecode = 'en-US'
iv_p_projects_id = CONV #( lo_translate->gv_project_id )
IMPORTING
es_output = DATA(ls_output)
ev_ret_code = DATA(lv_ret_code)
ev_err_text = DATA(lv_err_text)
es_err_resp = DATA(lv_err_resp)
).
IF lo_translate->is_success( lv_ret_code ) = abap_true.
cl_demo_output=>new(
)->begin_section( 'API Call Successful:'
)->write_text( 'Supported Languages:'
)->write_data( ls_output-languages
)->display( ).
ELSE.
cl_demo_output=>new(
)->begin_section( 'API Call Unsuccessful:'
)->write_text( 'Error Message:'
)->write_text( lv_err_text
)->display( ).
ENDIF.
CATCH /goog/cx_sdk INTO DATA(lo_sdk_excp).
DATA(lv_error) = lo_sdk_excp->get_text( ).
cl_demo_output=>new(
)->begin_section( 'Exception Occured:'
)->write_text( lv_error
)->display( ).
ENDTRY.
- Speichern und aktivieren Sie den Bericht.
- Führen Sie den Bericht aus (F8).
Nach erfolgreicher Ausführung sollte die Berichtsausgabe wie unten dargestellt aussehen:
10. Glückwunsch
Glückwunsch! Sie haben das Codelab „Translation API mit ABAP SDK for Google Cloud verwenden“ erfolgreich abgeschlossen.
Die Cloud Translation API v3, auch Cloud Translation API Advanced genannt, bietet viele Funktionen, darunter:
- Mit benutzerdefinierten Modellen übersetzen
- Mit Glossaren übersetzen
- Unterstützung der Transliteration
- Document Translation
Sie können jetzt mit den folgenden Codelabs fortfahren, um mehr darüber zu erfahren, wie Sie mit dem ABAP SDK for Google Cloud auf verschiedene Google Cloud-Dienste zugreifen.
- Ereignis an Pub/Sub senden
- Ereignis von Cloud Pub/Sub empfangen
- Große Objekte mithilfe von Chunking in einen Cloud Storage-Bucket hochladen
- DLP API zum Entfernen von personenidentifizierbaren Informationen verwenden
- BigQuery ML aus ABAP aufrufen
11. Bereinigen
Wenn Sie nicht mit den zusätzlichen Codelabs zum ABAP SDK for Google Cloud fortfahren möchten, fahren Sie mit der Bereinigung fort.
Projekt löschen
- So löschen Sie das Google Cloud-Projekt:
gcloud projects delete abap-sdk-poc
Einzelne Ressourcen löschen
- Löschen Sie die Compute-Instanz:
gcloud compute instances delete abap-trial-docker
- Löschen Sie die Firewallregeln:
gcloud compute firewall-rules delete sapmachine
- Löschen Sie das Dienstkonto:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com