Używanie interfejsu Translation API z pakietem SDK ABAP dla Google Cloud

1. Wprowadzenie

Dzięki temu ćwiczeniu w Codelabs dowiesz się, jak wywoływać metody interfejsu Translation API V3 (zaawansowane) za pomocą pakietu SDK ABAP dla Google Cloud. W ramach tego ćwiczenia w programie zobaczymy, jak przetłumaczyć tekst, wykryć język tekstu i wyświetlić listę obsługiwanych języków za pomocą interfejsu Translation API (wersja 3)

W tym ćwiczeniu z programowania używane są następujące usługi Google Cloud:

  • Compute Engine
  • Usługi sieciowe
  • Cloud Shell
  • Cloud Translation API wersja 3

Wymagania wstępne

Co utworzysz

Przy użyciu pakietu SDK ABAP dla Google Cloud utworzysz w systemie SAP następujące programy:

  • Tłumaczenie tekstu na wiele języków za pomocą interfejsu Google Cloud Translation API wersja 3
  • Wykrywanie języka tekstu źródłowego za pomocą interfejsu Google Cloud Translation API wersja 3
  • Lista obsługiwanych języków interfejsu Google Cloud Translation API V3

2. Wymagania

  • Przeglądarka, na przykład Chrome lub Firefox.
  • Projekt Google Cloud z włączonymi płatnościami lub utwórz bezpłatne konto próbne na 90 dni dla Google Cloud Platform.
  • zainstalowanego w systemie SAP GUI (Windows lub Java). Jeśli na komputerze jest już zainstalowany SAP GUI, połącz się z SAP, używając zewnętrznego adresu IP maszyny wirtualnej jako adresu IP serwera aplikacji. Jeśli korzystasz z komputera Mac, możesz również zainstalować interfejs SAP GUI dla języka Java dostępny tutaj.

3. Zanim zaczniesz

6757b2fb50ddcc2d.png

  • Uruchom te polecenia, aby uwierzytelnić się na swoim koncie i ustawić projekt domyślny na abap-sdk-poc. Przykładem jest strefa us-west4-b. W razie potrzeby zmień projekt i strefę w poniższych poleceniach zgodnie ze swoimi preferencjami.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
  • Musisz mieć dostęp do systemu SAP z zainstalowanym pakietem ABAP SDK dla Google Cloud.
  • Zanim przejdziesz do tego ćwiczenia z programowania, musisz wykonać ćwiczenia w Codelabs 1 (Instalowanie wersji próbnej platformy ABAP Platform w Google Cloud Platform i zainstalowanie pakietu SDK ABAP dla Google Cloud) oraz ćwiczenia z Codelabs 2 (Konfigurowanie uwierzytelniania ABAP SDK za pomocą tokenów dla maszyny wirtualnej SAP hostowanej w Compute Engine).
  • Jeśli udało Ci się ukończyć ćwiczenie z programowania 1 i ćwiczenia z programowania 2, otrzymasz system w wersji próbnej platformy ABAP w Google Cloud oraz wymaganą konfigurację uwierzytelniania i łączności.
  • Jeśli nie masz ukończonych ćwiczeń z programowania 1 i 2, nie będziesz mieć całej wymaganej infrastruktury i połączeń, aby wykonać czynności opisane w tym ćwiczeniu. Dlatego najpierw musisz wykonać ćwiczenie z programowania 1 i 2.

4. Włączanie Cloud Translation API wersji 3 w projekcie Google Cloud

  1. Wykonaj poniższe polecenie w Cloud Shell. Spowoduje to włączenie interfejsu Cloud Translation API w Twoim projekcie Google Cloud:
gcloud services enable translate.googleapis.com

Po pomyślnym wykonaniu powinien wyświetlić się następujący komunikat:

b5f52859df2c2f56.png

Interfejs Cloud Translation API powinien być teraz włączony w Twoim projekcie Google Cloud

5. Utwórz konto usługi z rolą użytkownika Cloud Translation

Aby utworzyć konto usługi z wymaganą rolą, wykonaj te czynności:

  1. Uruchom w terminalu Cloud Shell to polecenie:
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
  1. Teraz dodaj wymagane role do konta usługi utworzonego w kroku powyżej
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'

W powyższym poleceniu nazwa szablonu projektu Google Cloud to abap-sdk-poc. Zastąp go identyfikatorem projektu.

  1. Aby sprawdzić, czy rola została dodana, otwórz stronę Uprawnienia. Utworzone konto usługi powinno być widoczne na liście wraz z przypisaną do niego rolą, jak pokazano poniżej:

6af77a519ed3e357.png

6. Utwórz konfigurację klucza klienta

Po skonfigurowaniu wymagań wstępnych po stronie Google Cloud możemy przejść do konfiguracji po stronie SAP.

Do konfiguracji związanych z uwierzytelnianiem i połączeniami pakiet ABAP SDK dla Google Cloud używa tabeli /GOOG/CLIENT_KEY

Aby zachować konfigurację w tabeli /GOOG/CLIENT_KEY, wykonaj te czynności:

  1. W GUI SAP wpisz kod transakcji SPRO.
  2. Kliknij Plik referencyjny usługi SAP.
  3. Kliknij ABAP SDK for Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta.
  4. W polach pozostaw te wartości:

Pole

Wartość

Nazwa klucza Google Cloud

TEST_TRANSLATION

Nazwa konta usługi Google Cloud

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

Zakres Google Cloud

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

Identyfikator projektu

abap-sdk-poc

Klasa autoryzacji

/GOOG/CL_AUTH_GOOGLE

Zostaw wszystkie inne pola puste

7. Utwórz raport Z, aby wywołać interfejs Cloud Translation API (wersja 3) i przetłumaczyć tekst

  1. Zaloguj się w systemie SAP.
  2. Przejdź do kodu transakcji SE38 i utwórz program raportów o nazwie ZDEMO_TRANSLATE_TEXT..
  3. W wyskakującym okienku podaj szczegóły zgodnie z poniższymi instrukcjami i kliknij Zapisz.

6ba124f9187d1fc0.png

W następnym wyskakującym okienku wybierz Obiekt lokalny lub podaj nazwę pakietu.

  1. W edytorze ABAP dodaj ten kod:
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. Zapisz i aktywuj raport.
  2. Uruchom raport (F8).

Po pomyślnym wykonaniu raportu powinny pojawić się następujące dane wyjściowe raportu:

2dd3bf270d2b1477.png

8. Utwórz raport Z, aby wywołać interfejs Cloud Translation API V3 i wykryć język

  1. Zaloguj się w systemie SAP.
  2. Przejdź do kodu transakcji SE38 i utwórz program raportów o nazwie ZDEMO_DETECT_LANGUAGE..
  3. W wyskakującym okienku podaj szczegóły opisane poniżej i kliknij Zapisz:

64c2eb0e0173ae51.png

W następnym wyskakującym okienku wybierz Obiekt lokalny lub podaj nazwę pakietu.

  1. W edytorze ABAP dodaj ten kod:
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. Zapisz i aktywuj raport.
  2. Uruchom raport (F8).

Po pomyślnym wykonaniu raportu powinny pojawić się następujące dane wyjściowe raportu:

a36e48bded53e62d.png

9. Utwórz raport Z, aby wywołać metodę GET_SUPPORTED_LANGUAGES

  1. Zaloguj się w systemie SAP.
  2. Przejdź do kodu transakcji SE38 i utwórz program raportów o nazwie ZDEMO_GET_LANGUAGES..
  3. W wyskakującym okienku podaj szczegóły opisane poniżej i kliknij Zapisz.

3819fc355cf2cd4d.png

W następnym wyskakującym okienku wybierz Obiekt lokalny lub podaj nazwę pakietu.

  1. W edytorze ABAP dodaj ten kod:
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. Zapisz i aktywuj raport.
  2. Uruchom raport (F8).

Po pomyślnym wykonaniu raportu powinny pojawić się następujące dane wyjściowe raportu:

78199926919e7801.png

10. Gratulacje

Gratulacje! Udało Ci się ukończyć „Korzystanie z interfejsu Translation API z pakietem SDK ABAP dla Google Cloud” ćwiczenie w Codelabs.

Interfejs Cloud Translation API V3, znany również jako Cloud Translation API Advanced, oferuje wiele funkcji, w tym:

  • Przetłumacz z użyciem modeli niestandardowych
  • Tłumaczenie za pomocą glosariuszy
  • Obsługa transliteracji
  • Tłumaczenie dokumentów

Jeśli chcesz kontynuować naukę korzystania z pakietu SDK ABAP w Google Cloud w celu uzyskiwania dostępu do różnych usług Google Cloud, możesz kontynuować poniższe ćwiczenia z programowania.

  • Wyślij zdarzenie do Pub/Sub
  • Odbieraj zdarzenie z Cloud Pub/Sub
  • Przesyłanie dużego obiektu do zasobnika Cloud Storage przy użyciu podziału na fragmenty
  • Używanie interfejsu DLP API do pomijania informacji umożliwiających identyfikację osób
  • Wywoływanie BigQuery ML z ABAP

11. Czyszczenie danych

Jeśli nie chcesz wykonywać dodatkowych ćwiczeń z programowania związanych z pakietem SDK ABAP dla Google Cloud, możesz kontynuować czyszczenie.

Usuwanie projektu

  • Usuń projekt Google Cloud:
gcloud projects delete abap-sdk-poc

Usuwanie poszczególnych zasobów

  1. Usuń instancję obliczeniową:
gcloud compute instances delete abap-trial-docker
  1. Usuń reguły zapory sieciowej:
gcloud compute firewall-rules delete sapmachine
  1. Usuń konto usługi:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com