Utilizzo dell'API Translation con l'SDK ABAP per Google Cloud

1. Introduzione

Questo codelab fornisce i passaggi per chiamare i metodi dell'API Translation V3 (avanzata) utilizzando l'SDK ABAP per Google Cloud. In questo codelab vedremo come tradurre un testo, rilevare la lingua del testo ed elencare le lingue supportate utilizzando l'API Translation V3

In questo codelab vengono utilizzati i seguenti servizi Google Cloud:

  • Compute Engine
  • Servizi di rete
  • Cloud Shell
  • API Cloud Translation V3

Prerequisiti

Cosa creerai

Creerai i seguenti programmi nel tuo sistema SAP utilizzando l'SDK ABAP per Google Cloud:

  • Traduci il testo in più lingue utilizzando l'API Cloud Translation V3 di Google
  • Rileva la lingua del testo di origine utilizzando l'API Google Cloud Translation V3
  • Elenca le lingue supportate dell'API Google Cloud Translation V3

2. Requisiti

  • Un browser, ad esempio Chrome o Firefox.
  • Un progetto Google Cloud con fatturazione abilitata o crea un account di prova senza costi di 90 giorni per Google Cloud Platform.
  • GUI SAP (Windows o Java) installata nel sistema. Se la GUI SAP è già installata sulla macchina, connettiti a SAP utilizzando l'indirizzo IP esterno della VM come IP server delle applicazioni. Se usi Mac, puoi anche installare la GUI SAP per Java disponibile in questo link.

3. Prima di iniziare

6757b2fb50ddcc2d.png

  • Esegui questi comandi per eseguire l'autenticazione per il tuo account e imposta il progetto predefinito su abap-sdk-poc. La zona us-west4-b viene utilizzata come esempio. Se necessario, modifica il progetto e la zona nei comandi seguenti in base alle tue preferenze.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
  • Devi avere accesso a un sistema SAP in cui è installato l'SDK ABAP per Google Cloud.
  • Devi completare il codelab 1 (Installare la prova della piattaforma ABAP 1909 sulla piattaforma Google Cloud e installare l'SDK ABAP per Google Cloud) e il codelab 2 (Configurare l'autenticazione dell'SDK ABAP mediante token per SAP ospitato sulla VM di Compute Engine) prima di procedere con questo codelab.
  • Se hai completato il codelab 1 e il codelab 2, avrai eseguito il provisioning di un sistema 1909 di prova della piattaforma ABAP su Google Cloud, insieme alla configurazione richiesta per l'autenticazione e la connettività.
  • Se non hai completato il codelab 1 e il codelab 2, non avrai a disposizione l'infrastruttura e la connettività necessarie per eseguire i passaggi indicati in questo codelab. Pertanto, devi completare il codelab 1 e il codelab 2 prima di procedere con questo codelab.

4. Abilita l'API Cloud Translation V3 nel tuo progetto Google Cloud

  1. Esegui questo comando in Cloud Shell per abilitare l'API Cloud Translation nel tuo progetto Google Cloud:
gcloud services enable translate.googleapis.com

Una volta eseguita correttamente, dovrebbe essere visualizzato un messaggio come mostrato di seguito:

b5f52859df2c2f56.png

A questo punto dovresti avere abilitato l'API Cloud Translation nel tuo progetto Google Cloud

5. Crea un account di servizio con il ruolo utente Cloud Translation

Per creare un account di servizio con il ruolo richiesto, segui questi passaggi:

  1. Esegui questo comando nel terminale Cloud Shell:
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
  1. Ora aggiungi i ruoli richiesti all'account di servizio creato nel passaggio precedente
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'

Il comando precedente utilizza abap-sdk-poc come nome modello per il progetto Google Cloud. Sostituiscilo con il tuo ID progetto.

  1. Per verificare che il ruolo sia stato aggiunto, vai alla pagina IAM. L'account di servizio che hai creato dovrebbe essere elencato insieme al ruolo che gli è stato assegnato, come mostrato di seguito:

6af77a519ed3e357.png

6. Crea configurazione chiave client

Ora che hai impostato i prerequisiti per Google Cloud, possiamo procedere con la configurazione lato SAP.

Per la configurazione relativa all'autenticazione e alla connettività, l'SDK ABAP per Google Cloud utilizza la tabella /GOOG/CLIENT_KEY

Per mantenere la configurazione nella tabella /GOOG/CLIENT_KEY, segui questi passaggi:

  1. Nella GUI di SAP, inserisci il codice della transazione SPRO.
  2. Fai clic su IMG di riferimento SAP.
  3. Fai clic su SDK ABAP per Google Cloud > Impostazioni di base > Configura chiave client.
  4. Mantieni i seguenti valori rispetto ai campi:

Campo

Valore

Nome chiave Google Cloud

TEST_TRANSLATION

Nome dell'account di servizio Google Cloud

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

Ambito Google Cloud

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

ID progetto

abap-sdk-poc

Classe di autorizzazione

/GOOG/CL_AUTH_GOOGLE

Lascia vuoti tutti gli altri campi

7. Crea un report Z per chiamare l'API Cloud Translation V3 e tradurre un testo

  1. Accedi al sistema SAP.
  2. Vai al codice transazione SE38 e crea un programma di report con il nome ZDEMO_TRANSLATE_TEXT.
  3. Nel popup che si apre, fornisci i dettagli indicati di seguito e fai clic su Salva.

6ba124f9187d1fc0.png

Nel popup successivo, seleziona Oggetto locale o fornisci un nome del pacchetto a tua scelta.

  1. Nell'editor ABAP, aggiungi il seguente codice:
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. Salva e attiva il report.
  2. Esegui il report (F8).

Una volta eseguita correttamente, dovresti vedere l'output del report come mostrato di seguito:

2dd3bf270d2b1477.png

8. Crea uno Z-Report per chiamare l'API Cloud Translation V3 e rilevare il linguaggio

  1. Accedi al sistema SAP.
  2. Vai al codice transazione SE38 e crea un programma di report con il nome ZDEMO_DETECT_LANGUAGE.
  3. Nel popup che si apre, fornisci i dettagli riportati di seguito e fai clic su Salva:

64c2eb0e0173ae51.png

Nel popup successivo, seleziona Oggetto locale o fornisci un nome del pacchetto a tua scelta.

  1. Nell'editor ABAP, aggiungi il seguente codice:
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. Salva e attiva il report.
  2. Esegui il report (F8).

Una volta eseguita correttamente, dovresti vedere l'output del report come mostrato di seguito:

a36e48bded53e62d.png

9. Crea un rapporto Z per chiamare il metodo GET_SUPPORTED_LANGUAGES

  1. Accedi al tuo sistema SAP
  2. Vai al codice transazione SE38 e crea un programma di report con il nome ZDEMO_GET_LANGUAGES.
  3. Nel popup che si apre, fornisci i dettagli mostrati di seguito e fai clic su Salva.

3819fc355cf2cd4d.png

Nel popup successivo, seleziona Oggetto locale o fornisci un nome del pacchetto a tua scelta.

  1. Nell'editor ABAP, aggiungi il seguente codice:
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. Salva e attiva il report.
  2. Esegui il report (F8).

Una volta eseguita correttamente, dovresti vedere l'output del report come mostrato di seguito:

78199926919e7801.png

10. Complimenti

Complimenti! Hai completato il corso "Utilizzare l'API Translation con l'SDK ABAP per Google Cloud" codelab.

L'API Cloud Translation V3, nota anche come API Cloud Translation Advanced, offre molte funzionalità, tra cui:

  • Traduzione con modelli personalizzati
  • Traduci utilizzando i glossari
  • Supporto della traslitterazione
  • Traduzione di documenti

Ora puoi procedere con i seguenti codelab per continuare il tuo percorso di apprendimento sull'utilizzo dell'SDK ABAP per Google Cloud per accedere a vari servizi Google Cloud.

  • Invia un evento a Pub/Sub
  • Ricevi un evento da Cloud Pub/Sub
  • carica un oggetto di grandi dimensioni in un bucket Cloud Storage utilizzando il chunking
  • Utilizza l'API DLP per l'oscuramento delle PII
  • Chiama BigQuery ML da ABAP

11. Esegui la pulizia

Se non vuoi continuare con i codelab aggiuntivi relativi all'SDK ABAP per Google Cloud, procedi con la pulizia.

Elimina il progetto

  • Elimina il progetto Google Cloud:
gcloud projects delete abap-sdk-poc

Eliminare singole risorse

  1. Elimina l'istanza Compute:
gcloud compute instances delete abap-trial-docker
  1. Elimina le regole firewall:
gcloud compute firewall-rules delete sapmachine
  1. Elimina l'account di servizio:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com