1. Introduction
Cet atelier de programmation explique comment appeler les méthodes de l'API Translation V3 (Advanced) à l'aide du SDK ABAP pour Google Cloud. Dans cet atelier de programmation, nous allons voir comment traduire un texte, détecter sa langue et lister les langues prises en charge à 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
- Assurez-vous d'avoir accès à un système SAP sur lequel le SDK ABAP pour Google Cloud est installé.
- Vous pouvez consulter l'atelier de programmation Installer la version d'essai de la plate-forme ABAP sur Google Cloud Platform et installer le SDK ABAP pour configurer un nouveau système.
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:
- Traduire 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 pour lequel la facturation est activée ou créez un compte d'essai sans frais de 90 jours pour Google Cloud Platform.
- Interface utilisateur graphique SAP (Windows ou Java) installée sur votre système. Si l'interface utilisateur SAP est déjà installée sur votre machine, connectez-vous à SAP en utilisant l'adresse IP externe de la VM comme adresse du serveur d'applications. Si vous utilisez un Mac, vous pouvez également installer la GUI SAP pour Java disponible sur ce lien.
3. Avant de commencer
- Assurez-vous d'avoir accès à un système SAP sur lequel le SDK ABAP pour Google Cloud est installé.
- Vous pouvez consulter l'atelier de programmation Installer la version d'essai de la plate-forme ABAP sur Google Cloud Platform et installer le SDK ABAP pour configurer un nouveau système.
- Dans la console Google Cloud, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud (par exemple:
abap-sdk-poc).
- Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier si la facturation est activée sur un projet. Ignorez cette étape si vous utilisez un compte avec essai sans frais de 90 jours.
- Vous allez utiliser Cloud Shell, un environnement de ligne de commande exécuté dans Google Cloud. Dans la console Cloud, cliquez sur Activer Cloud Shell en haut à droite:
- Exécutez les commandes suivantes pour vous authentifier pour votre compte et définir le projet par défaut sur
abap-sdk-poc
. La zoneus-west4-b
est utilisée comme exemple. Si nécessaire, veuillez modifier le projet et la zone dans les 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é.
- Vous devez terminer l'atelier de programmation 1 (Installer la version d'essai de la plate-forme ABAP 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 hébergé sur une VM Compute Engine) avant de poursuivre cet atelier de programmation.
- Si vous avez terminé les ateliers de programmation 1 et 2, vous avez alors reçu un système ABAP Platform Trial 1909 sur Google Cloud, ainsi que la configuration requise pour l'authentification et la connectivité.
- Si vous n'avez pas terminé les ateliers de programmation 1 et 2, vous ne disposerez pas de l'infrastructure et de la connectivité requises pour suivre les étapes de cet atelier. Vous devez donc suivre les ateliers de programmation 1 et 2 avant de commencer celui-ci.
4. Activer l'API Cloud Translation V3 dans votre projet Google Cloud
- 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, un message comme celui-ci doit s'afficher:
L'API Cloud Translation devrait maintenant être activée dans votre projet Google Cloud.
5. Créer un compte de service avec le rôle d'utilisateur Cloud Translation
Pour créer un compte de service avec le rôle requis, procédez comme suit:
- 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"
- Ajoutez maintenant les rôles requis au compte de service créé à l'étape précédente.
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.
- Pour vérifier que le rôle a bien été ajouté, accédez à la page IAM. Le compte de service que vous avez créé doit être listé avec le rôle qui lui a été attribué, comme indiqué ci-dessous:
6. Créer une configuration de clé client
Maintenant que vous avez configuré 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é associée, le SDK ABAP pour Google Cloud utilise la table /GOOG/CLIENT_KEY
.
Pour gérer la configuration dans la table /GOOG/CLIENT_KEY
, procédez comme suit:
- Dans l'IUG de SAP, saisissez le code de transaction
SPRO
. - Cliquez sur SAP Reference IMG.
- Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer la clé client.
- Maintenez les valeurs suivantes pour les champs:
Champ | Valeur |
Nom de la clé Google Cloud | TEST_TRANSLATION |
Nom du compte de service Google Cloud |
|
Champ d'application Google Cloud |
|
ID du projet | abap-sdk-poc |
Classe d'autorisation |
|
Laissez tous les autres champs vides.
7. Créer un rapport Z pour appeler l'API Cloud Translation v3 et traduire un texte
- Connectez-vous à votre système SAP.
- Accédez au code de transaction
SE38
et créez un programme de rapports nomméZDEMO_TRANSLATE_TEXT.
. - Dans le pop-up qui s'affiche, fournissez les informations indiquées ci-dessous, puis cliquez sur Enregistrer.
Dans le pop-up suivant, sélectionnez "Objet local" ou "Fournir un nom de package" selon votre choix.
- 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.
- Enregistrez et activez le rapport.
- Exécutez le rapport (F8).
Si l'exécution réussit, le résultat du rapport s'affiche comme suit:
8. Créer un rapport Z pour appeler l'API Cloud Translation v3 et détecter la langue
- Connectez-vous à votre système SAP.
- Accédez au code de transaction
SE38
et créez un programme de rapport nomméZDEMO_DETECT_LANGUAGE.
. - Dans le pop-up qui s'affiche, fournissez les informations indiquées ci-dessous, puis cliquez sur Enregistrer:
Dans le pop-up suivant, sélectionnez "Objet local" ou "Fournir un nom de package" selon votre choix.
- 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.
- Enregistrez et activez le rapport.
- Exécutez le rapport (F8).
Si l'exécution réussit, le résultat du rapport s'affiche comme suit:
9. Créer un rapport Z pour appeler la méthode GET_SUPPORTED_LANGUAGES
- Connectez-vous à votre système SAP.
- Accédez au code de transaction
SE38
et créez un programme de rapport nomméZDEMO_GET_LANGUAGES.
. - Dans la fenêtre pop-up qui s'affiche, renseignez les informations comme indiqué ci-dessous, puis cliquez sur Enregistrer.
Dans le pop-up suivant, sélectionnez "Objet local" ou "Fournir un nom de package" selon votre choix.
- 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.
- Enregistrez et activez le rapport.
- Exécutez le rapport (F8).
Si l'exécution réussit, le résultat du rapport s'affiche comme suit:
10. Félicitations
Félicitations ! Vous avez terminé l'atelier de programmation "Utiliser l'API Translation avec le SDK ABAP pour Google Cloud".
L'API Cloud Translation v3, également appelée API Cloud Translation Advanced, propose de nombreuses fonctionnalités, dont les suivantes:
- Traduire avec des modèles personnalisés
- Traduire à l'aide de glossaires
- Compatibilité avec la translittération
- Document Translation
Vous pouvez maintenant passer aux ateliers de programmation suivants pour continuer à apprendre à utiliser le SDK ABAP pour Google Cloud afin d'accéder à divers services Google Cloud.
- Envoyer un événement à Pub/Sub
- Recevoir un événement à partir 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 les utilisateurs
- Appeler BigQuery ML depuis ABAP
11. Effectuer un nettoyage
Si vous ne souhaitez pas poursuivre les ateliers de programmation supplémentaires 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
- Supprimez l'instance de calcul:
gcloud compute instances delete abap-trial-docker
- Supprimez les règles de pare-feu:
gcloud compute firewall-rules delete sapmachine
- Supprimez le compte de service :
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com