Translation API mit dem ABAP SDK for Google Cloud verwenden

1. Einführung

In diesem Codelab erfahren Sie, wie Sie die Methoden der Translation API V3 (Advanced) 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 Textes 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

Aufgaben

Sie erstellen in Ihrem SAP-System mit dem ABAP SDK for Google Cloud die folgenden Programme:

  • Texte mit der Cloud Translation API V3 von Google in mehrere Sprachen übersetzen
  • Sprache des Ausgangstexts mit der Google Cloud Translation API V3 erkennen
  • Unterstützte Sprachen der Google Cloud Translation API V3 auflisten

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 dem Computer 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

  • 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
  • Sie müssen Zugriff auf ein SAP-System haben, auf 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 mit Tokens für SAP Hosted on Compute Engine VM konfigurieren) absolvieren, bevor Sie mit diesem Codelab fortfahren.
  • Wenn Sie Codelab 1 und Codelab 2 abgeschlossen haben, hätten Sie dadurch ein ABAP Platform Trial 1909-System in Google Cloud sowie die erforderliche Einrichtung für Authentifizierung und Konnektivität erhalten.
  • 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. Daher musst du Codelab 1 und Codelab 2 abschließen, bevor du mit diesem Codelab fortfahren kannst.

4. Cloud Translation API V3 in Ihrem Google Cloud-Projekt aktivieren

  1. Führen Sie den folgenden Befehl in Cloud Shell aus. Dadurch wird die Cloud Translation API in Ihrem Google Cloud-Projekt aktiviert:
gcloud services enable translate.googleapis.com

Nach erfolgreicher Ausführung sollte die folgende Meldung angezeigt werden:

b5f52859df2c2f56.png

Die Cloud Translation API sollte jetzt in Ihrem Google Cloud-Projekt aktiviert sein

5. Dienstkonto mit der Cloud Translation-Nutzerrolle erstellen

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

  1. 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"
  1. Fügen Sie nun dem Dienstkonto, das im vorherigen Schritt erstellt wurde, 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'

Der obige Befehl verwendet abap-sdk-poc als Vorlagennamen für das Google Cloud-Projekt. Ersetzen Sie ihn durch Ihre Projekt-ID.

  1. 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 ihm zugewiesenen Rolle wie unten dargestellt aufgeführt sein:

6af77a519ed3e357.png

6. Clientschlüsselkonfiguration erstellen

Nachdem Sie nun die Voraussetzungen auf der Google Cloud-Seite eingerichtet haben, können wir mit der Konfiguration auf SAP-Seite fortfahren.

Für die Konfiguration in Bezug auf Authentifizierung und Konnektivität 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 beizubehalten:

  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. Behalten Sie für die Felder die folgenden Werte bei:

Feld

Wert

Google Cloud-Schlüsselname

TEST_TRANSLATION

Name des Google Cloud-Dienstkontos

abap-sdk-translation-tester@abap-sdk-poc.iam.gserviceaccount.com

Google Cloud-Bereich

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

Projekt-ID

abap-sdk-poc

Autorisierungsklasse

/GOOG/CL_AUTH_GOOGLE

Lassen Sie alle anderen Felder leer.

7. Erstellen Sie einen Z-Bericht, um die Cloud Translation API V3 aufzurufen und einen Text zu übersetzen

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

6ba124f9187d1fc0.png

Wählen Sie im nächsten Pop-up-Fenster entweder Lokales Objekt oder geben Sie einen Paketnamen an.

  1. Fügen Sie im ABAP-Editor den folgenden Code hinzu:
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.
  1. Speichern und aktivieren Sie den Bericht.
  2. Führen Sie den Bericht aus (F8).

Nach erfolgreicher Ausführung sollte die Berichtsausgabe so aussehen:

2dd3bf270d2b1477.png

8. Erstellen Sie einen Z-Bericht, um die Cloud Translation API V3 aufzurufen und die Sprache zu erkennen

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

64c2eb0e0173ae51.png

Wählen Sie im nächsten Pop-up-Fenster entweder Lokales Objekt oder geben Sie einen Paketnamen an.

  1. Fügen Sie im ABAP-Editor den folgenden Code hinzu:
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.
  1. Speichern und aktivieren Sie den Bericht.
  2. Führen Sie den Bericht aus (F8).

Nach erfolgreicher Ausführung sollte die Berichtsausgabe so aussehen:

a36e48bded53e62d.png

9. Erstellen Sie einen Z-Bericht zum Aufrufen der Methode GET_SUPPORTED_LANGUAGES

  1. Im SAP-System anmelden
  2. Rufen Sie den Transaktionscode SE38 auf und erstellen Sie ein Berichtsprogramm namens ZDEMO_GET_LANGUAGES..
  3. Geben Sie im Pop-up-Fenster, das geöffnet wird, die folgenden Informationen ein und klicken Sie auf Speichern.

3819fc355cf2cd4d.png

Wählen Sie im nächsten Pop-up-Fenster entweder Lokales Objekt oder geben Sie einen Paketnamen an.

  1. Fügen Sie im ABAP-Editor den folgenden Code hinzu:
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.
  1. Speichern und aktivieren Sie den Bericht.
  2. Führen Sie den Bericht aus (F8).

Nach erfolgreicher Ausführung sollte die Berichtsausgabe so aussehen:

78199926919e7801.png

10. Glückwunsch

Glückwunsch! Sie haben den Kurs „Translation API mit dem ABAP SDK for Google Cloud verwenden“ abgeschlossen Codelab.

Die Cloud Translation API V3, auch bekannt als Cloud Translation API Advanced, bietet unter anderem folgende Funktionen:

  • Mit benutzerdefinierten Modellen übersetzen
  • Übersetzung mithilfe von Glossaren
  • Unterstützung für Transliteration
  • Document Translation

Sie können jetzt mit den folgenden Codelabs fortfahren, um Ihre Lernreise zur Verwendung des ABAP SDK for Google Cloud für den Zugriff auf verschiedene Google Cloud-Dienste fortzusetzen.

  • Ereignis an Pub/Sub senden
  • Ereignis von Cloud Pub/Sub empfangen
  • Großes Objekt mithilfe von Aufteilung in einen Cloud Storage-Bucket hochladen
  • DLP API zum Entfernen personenidentifizierbarer Informationen verwenden
  • BigQuery ML über ABAP aufrufen

11. Bereinigen

Wenn Sie nicht mit den zusätzlichen Codelabs im Zusammenhang mit dem ABAP SDK for Google Cloud fortfahren möchten, fahren Sie bitte 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 Compute-Instanz:
gcloud compute instances delete abap-trial-docker
  1. Löschen Sie die Firewallregeln:
gcloud compute firewall-rules delete sapmachine
  1. Löschen Sie das Dienstkonto:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com