Utiliser l'API Translation avec le SDK ABAP pour Google Cloud

1. Introduction

Cet atelier de programmation explique comment appeler les méthodes de l'API Translation V3 (avancé) à l'aide du SDK ABAP pour Google Cloud. Dans cet atelier de programmation, nous verrons comment traduire un texte, en détecter la langue et afficher la liste des langues compatibles à l'aide de l'API Translation V3.

Les services Google Cloud suivants sont utilisés dans cet atelier de programmation:

  • Compute Engine
  • Services réseau
  • Cloud Shell
  • API Cloud Translation V3

Prérequis

Ce que vous allez faire

Vous allez créer les programmes suivants dans votre système SAP à l'aide du SDK ABAP pour Google Cloud:

  • Traduisez du texte dans plusieurs langues à l'aide de l'API Cloud Translation V3 de Google
  • Détecter la langue du texte source à l'aide de l'API Google Cloud Translation V3
  • Lister les langues disponibles dans l'API Google Cloud Translation V3

2. Conditions requises

  • Un navigateur (Chrome ou Firefox, par exemple)
  • Un projet Google Cloud avec la facturation activée ou créez un compte d'essai sans frais de 90 jours pour Google Cloud Platform.
  • L'IUG SAP (Windows ou Java) doit être installée sur votre système. Si l'IUG SAP est déjà installée sur votre machine, connectez-vous à SAP en utilisant l'adresse IP externe de la VM comme adresse IP du serveur d'applications. Si vous utilisez Mac, vous pouvez également installer l'IUG SAP pour Java disponible en cliquant sur ce lien.

3. Avant de commencer

6757b2fb50ddcc2d.png

  • Exécutez les commandes suivantes pour authentifier votre compte et définir le projet par défaut sur abap-sdk-poc. La zone us-west4-b est utilisée à titre d'exemple. Si nécessaire, veuillez modifier le projet et la zone à l'aide des commandes suivantes, en fonction de vos préférences.
gcloud auth login
gcloud config set project abap-sdk-poc
gcloud config set compute/zone us-west4-b
  • Vous devez avoir accès à un système SAP sur lequel le SDK ABAP pour Google Cloud est installé.
  • Avant de poursuivre cet atelier de programmation, vous devez suivre l'atelier de programmation 1 (Installer la plate-forme ABAP d'essai 1909 sur Google Cloud Platform et installer le SDK ABAP pour Google Cloud) et l'atelier de programmation 2 (Configurer l'authentification du SDK ABAP à l'aide de jetons pour SAP Hosted on Compute Engine) avant de poursuivre cet atelier de programmation.
  • Si vous avez terminé les ateliers 1 et 2, vous disposez d'un système ABAP Platform Trial 1909 sur Google Cloud, ainsi que de la configuration requise pour l'authentification et la connectivité.
  • Si vous n'avez pas terminé l'atelier de programmation 1 et 2, vous ne disposez pas de l'infrastructure et de la connectivité requises pour suivre les étapes de cet atelier de programmation. Par conséquent, vous devez suivre les ateliers de programmation 1 et 2 avant de poursuivre.

4. Activer l'API Cloud Translation V3 dans votre projet Google Cloud

  1. Exécutez la commande ci-dessous dans Cloud Shell pour activer l'API Cloud Translation dans votre projet Google Cloud:
gcloud services enable translate.googleapis.com

Si l'exécution réussit, le message suivant doit s'afficher:

b5f52859df2c2f56.png

L'API Cloud Translation doit maintenant être activée dans votre projet Google Cloud

5. Créer un compte de service avec le rôle utilisateur Cloud Translation

Pour créer un compte de service avec le rôle requis, procédez comme suit:

  1. Exécutez la commande suivante dans le terminal Cloud Shell :
gcloud iam service-accounts create abap-sdk-translation-tester \
--display-name="Service Account for Translation"
  1. Ajoutez maintenant les rôles requis au compte de service créé à l'étape ci-dessus
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'

La commande ci-dessus utilise abap-sdk-poc comme nom de modèle pour le projet Google Cloud. Remplacez-le par l'ID de votre projet.

  1. Pour vérifier que le rôle a été ajouté, accédez à la page IAM. Le compte de service que vous avez créé doit s'afficher avec le rôle qui lui a été attribué, comme indiqué ci-dessous:

6af77a519ed3e357.png

6. Créer une configuration de clé client

Maintenant que vous avez défini les conditions préalables côté Google Cloud, nous pouvons passer à la configuration côté SAP.

Pour la configuration de l'authentification et de la connectivité, le SDK ABAP pour Google Cloud utilise le tableau /GOOG/CLIENT_KEY

Pour conserver la configuration figurant dans la table /GOOG/CLIENT_KEY, procédez comme suit:

  1. Dans l'IUG SAP, saisissez le code de transaction SPRO.
  2. Cliquez sur SAP Reference IMG.
  3. Cliquez sur ABAP SDK for Google Cloud > Paramètres généraux > Configurez la clé client.
  4. Conservez les valeurs suivantes dans les champs:

Champ

Valeur

Nom de la clé Google Cloud

TEST_TRANSLATION

Nom du compte de service Google Cloud

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

Champ d'application Google Cloud

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

ID du projet

abap-sdk-poc

Classe d'autorisation

/GOOG/CL_AUTH_GOOGLE

Ne renseignez pas les autres champs.

7. Créer un rapport Z pour appeler l'API Cloud Translation V3 et traduire un texte

  1. Connectez-vous à votre système SAP.
  2. Accéder au code de transaction SE38 et créer un programme de rapport nommé ZDEMO_TRANSLATE_TEXT.
  3. Dans le pop-up qui s'affiche, fournissez les détails comme indiqué ci-dessous, puis cliquez sur Enregistrer.

6ba124f9187d1fc0.png

Dans le pop-up suivant, sélectionnez "Objet local" ou indiquez le nom de package de votre choix.

  1. Dans l'éditeur ABAP, ajoutez le code suivant:
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. Enregistrez et activez le rapport.
  2. Exécutez le rapport (F8).

Si l'exécution réussit, le rapport doit s'afficher comme suit:

2dd3bf270d2b1477.png

8. Créer un rapport Z pour appeler l'API Cloud Translation V3 et détecter la langue

  1. Connectez-vous à votre système SAP.
  2. Accéder au code de transaction SE38 et créer un programme de rapport nommé ZDEMO_DETECT_LANGUAGE.
  3. Dans le pop-up qui s'affiche, fournissez les détails comme indiqué ci-dessous, puis cliquez sur Enregistrer:

64c2eb0e0173ae51.png

Dans le pop-up suivant, sélectionnez "Objet local" ou indiquez le nom de package de votre choix.

  1. Dans l'éditeur ABAP, ajoutez le code suivant:
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. Enregistrez et activez le rapport.
  2. Exécutez le rapport (F8).

Si l'exécution réussit, le rapport doit s'afficher comme suit:

a36e48bded53e62d.png

9. Créer un rapport Z pour appeler la méthode GET_SUPPORTED_LANGUAGES

  1. Connectez-vous à votre système SAP
  2. Accéder au code de transaction SE38 et créer un programme de rapport nommé ZDEMO_GET_LANGUAGES.
  3. Dans le pop-up qui s'affiche, fournissez les détails comme indiqué ci-dessous, puis cliquez sur Enregistrer.

3819fc355cf2cd4d.png

Dans le pop-up suivant, sélectionnez "Objet local" ou indiquez le nom de package de votre choix.

  1. Dans l'éditeur ABAP, ajoutez le code suivant:
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. Enregistrez et activez le rapport.
  2. Exécutez le rapport (F8).

Si l'exécution réussit, le rapport doit s'afficher comme suit:

78199926919e7801.png

10. Félicitations

Félicitations ! Vous avez terminé la formation "Utiliser l'API Translation avec le SDK ABAP pour Google Cloud". dans cet atelier de programmation.

L'API Cloud Translation V3, également appelée API Cloud Translation Advanced, offre de nombreuses fonctionnalités, y compris les suivantes:

  • Traduction avec des modèles personnalisés
  • Traduire à l'aide de glossaires
  • Compatibilité avec la translittération
  • Document Translation

Vous pouvez maintenant suivre les ateliers de programmation suivants pour poursuivre votre apprentissage concernant l'utilisation du SDK ABAP pour Google Cloud afin d'accéder aux différents services Google Cloud.

  • Envoyer un événement à Pub/Sub
  • Recevoir un événement de Cloud Pub/Sub
  • Importer un objet volumineux dans un bucket Cloud Storage à l'aide de la fragmentation
  • Utiliser l'API DLP pour masquer les informations permettant d'identifier personnellement l'utilisateur
  • Appeler BigQuery ML à partir d'ABAP

11. Effectuer un nettoyage

Si vous ne souhaitez pas continuer avec les autres ateliers de programmation liés au SDK ABAP pour Google Cloud, veuillez procéder au nettoyage.

Supprimer le projet

  • Supprimez le projet Google Cloud:
gcloud projects delete abap-sdk-poc

Supprimer des ressources individuelles

  1. Supprimez l'instance de calcul:
gcloud compute instances delete abap-trial-docker
  1. Supprimez les règles de pare-feu:
gcloud compute firewall-rules delete sapmachine
  1. Supprimez le compte de service :
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com