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

1. Wprowadzenie

Ten projekt Codelab zawiera instrukcje wywoływania metod interfejsu Translation API w wersji 3 (zaawansowanej) za pomocą pakietu ABAP SDK dla Google Cloud. W tym laboratorium kodu dowiesz się, jak tłumaczyć tekst, wykrywać język tekstu i wyświetlać listę obsługiwanych języków za pomocą interfejsu Translation API v3.

W tym samouczku są używane te usługi Google Cloud:

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

Wymagania wstępne

Co utworzysz

W systemie SAP utworzysz te programy za pomocą pakietu ABAP SDK dla Google Cloud:

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

2. Wymagania

  • przeglądarkę, np. Chrome lub Firefox;
  • Projekt Google Cloud z włączonymi płatnościami lub utwórz konto na 90-dniowy okres próbny w Google Cloud Platform.
  • interfejs graficzny SAP (wersja na system Windows lub Java) zainstalowany w systemie; Jeśli interfejs SAP GUI jest już zainstalowany na komputerze, połącz się z SAP, używając zewnętrznego adresu IP maszyny wirtualnej jako adresu IP serwera aplikacji. Jeśli używasz komputera Mac, możesz też zainstalować interfejs SAP dla Javy, który jest dostępny pod tym linkiem.

3. Zanim zaczniesz

6757b2fb50ddcc2d.png

  • Uruchom te polecenia, aby uwierzytelnić swoje konto i ustawić projekt domyślny jako abap-sdk-poc. W tym przykładzie użyto strefy 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 for Google Cloud.
  • Zanim przejdziesz do tego ćwiczenia, musisz ukończyć ćwiczenie 1 (Zainstaluj wersję próbną platformy ABAP 1909 w Google Cloud Platform i zainstaluj pakiet ABAP SDK dla Google Cloud) oraz ćwiczenie 2 (Skonfiguruj uwierzytelnianie pakietu ABAP SDK za pomocą tokenów dla SAP hostowanego w maszynie wirtualnej Compute Engine).
  • Jeśli wykonasz ćwiczenia 1 i 2, w Google Cloud zostanie utworzony system ABAP Platform Trial 1909 wraz z wymaganą konfiguracją uwierzytelniania i łączności.
  • Jeśli nie ukończysz ćwiczeń 1 i 2, nie będziesz mieć całej wymaganej infrastruktury ani połączeń, aby wykonać czynności opisane w tym ćwiczeniu. Dlatego zanim przejdziesz do tego ćwiczenia, musisz ukończyć ćwiczenia 1 i 2.

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

  1. Uruchom to polecenie w Cloud Shell, aby włączyć interfejs Cloud Translation API w projekcie Google Cloud:
gcloud services enable translate.googleapis.com

Po pomyślnym wykonaniu polecenia powinien wyświetlić się komunikat podobny do tego:

b5f52859df2c2f56.png

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

5. Tworzenie konta 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 poprzednim kroku.
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 jako nazwa szablonu projektu Google Cloud jest używana nazwa abap-sdk-poc. Zastąp go identyfikatorem projektu.

  1. Aby sprawdzić, czy dodano rolę, otwórz stronę IAM. Utworzone konto usługi powinno być widoczne wraz z przypisaną do niego rolą, jak pokazano poniżej:

6af77a519ed3e357.png

6. Tworzenie konfiguracji klucza klienta

Ponieważ masz już skonfigurowane wymagania wstępne po stronie Google Cloud, możemy przejść do konfiguracji po stronie SAP.

W przypadku konfiguracji związanej z uwierzytelnianiem i łącznością pakiet ABAP SDK for Google Cloud używa tabeli /GOOG/CLIENT_KEY

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

  1. W interfejsie graficznym SAP wpisz kod transakcji SPRO.
  2. Kliknij SAP Reference IMG (Referencyjny obraz SAP).
  3. Kliknij ABAP SDK for Google Cloud > Ustawienia podstawowe > Skonfiguruj klucz klienta.
  4. Zachowaj te wartości w polach:

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

Pozostaw wszystkie pozostałe pola puste.

7. Tworzenie raportu Z-Report w celu wywołania interfejsu Cloud Translation API w wersji 3 i tłumaczenia tekstu

  1. Zaloguj się w systemie SAP.
  2. Otwórz kod transakcji SE38 i utwórz program raportowania o nazwie ZDEMO_TRANSLATE_TEXT..
  3. W otwartym oknie podaj informacje widoczne poniżej 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. Wykonaj raport (F8).

Po pomyślnym wykonaniu powinieneś zobaczyć dane wyjściowe raportu, jak pokazano poniżej:

2dd3bf270d2b1477.png

8. Tworzenie raportu Z-Report do wywoływania Cloud Translation API w wersji 3 i wykrywania języka

  1. Zaloguj się w systemie SAP.
  2. Otwórz kod transakcji SE38 i utwórz program raportowania o nazwie ZDEMO_DETECT_LANGUAGE..
  3. W wyskakującym okienku podaj informacje widoczne 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. Wykonaj raport (F8).

Po pomyślnym wykonaniu powinieneś zobaczyć dane wyjściowe raportu, jak pokazano poniżej:

a36e48bded53e62d.png

9. Tworzenie raportu Z-Report do wywołania metody GET_SUPPORTED_LANGUAGES

  1. Logowanie się w systemie SAP
  2. Otwórz kod transakcji SE38 i utwórz program raportowania o nazwie ZDEMO_GET_LANGUAGES..
  3. W wyświetlonym okienku podaj informacje, jak pokazano 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. Wykonaj raport (F8).

Po pomyślnym wykonaniu powinieneś zobaczyć dane wyjściowe raportu, jak pokazano poniżej:

78199926919e7801.png

10. Gratulacje

Gratulacje! Udało Ci się ukończyć Codelab „Korzystanie z interfejsu Translation API za pomocą pakietu ABAP SDK w Google Cloud”.

Interfejs Cloud Translation API w wersji 3, zwany też Cloud Translation API Advanced, ma wiele funkcji, takich jak:

  • Tłumaczenie za pomocą modeli niestandardowych
  • Tłumaczenie za pomocą glosariuszy
  • Pomoc dotycząca transliteracji
  • Tłumaczenie dokumentów

Aby dowiedzieć się więcej o korzystaniu z pakietu ABAP SDK w Google Cloud do uzyskiwania dostępu do różnych usług Google Cloud, możesz teraz przejść do tych ćwiczeń z programowania.

  • Wysyłanie zdarzenia do Pub/Sub
  • Odbieranie zdarzenia z Cloud Pub/Sub
  • Przesyłanie dużego obiektu do zasobnika Cloud Storage za pomocą dzielenia na części
  • Używanie interfejsu DLP API do pomijania informacji umożliwiających identyfikację
  • Wywoływanie BigQuery ML z ABAP

11. Czyszczenie danych

Jeśli nie chcesz kontynuować dodatkowych samouczków związanych z pakietem ABAP SDK dla Google Cloud, przejdź do czyszczenia.

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