1. Introduction
Dans cet atelier de programmation, vous allez configurer l'authentification pour accéder aux API Google Cloud à l'aide de jetons lorsque votre système SAP est hébergé sur une instance de VM Compute Engine.
Voici la liste des services utilisés:
- Compute Engine
- Services réseau
- Cloud Shell
Ce que vous allez faire
Vous allez effectuer les opérations suivantes:
- Configurez le SDK ABAP installé sur le système SAP pour qu'il se connecte aux API Google.
- Créez un exemple de programme de rapports pour appeler l'API Address Validation.
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 système, 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 via ce lien.
3. Avant de commencer
- 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 le compte d'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:
- Assurez-vous que toutes les API nécessaires (API d'identifiants de compte de service IAM et API Address Validation) sont activées.
- Exécutez les commandes suivantes pour authentifier votre compte et définir le projet par défaut sur
abap-sdk-poc
. La zoneus-west4-b
est utilisée à titre d'exemple. Si nécessaire, veuillez modifier le projet et la zone dans les commandes ci-dessous 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
PROJECT_NAME=abap-sdk-poc
REGION=us-west4
ZONE=us-west4-b
- Assurez-vous d'avoir accès à un système SAP sur lequel le SDK ABAP pour Google Cloud est installé.
- Vous pouvez vous reporter à l'atelier de programmation " Install ABAP Platform Trial 2022 on Google Cloud Platform and Install ABAP SDK" pour mettre en place un nouveau système.
4. Créer un compte de service et définir le rôle de créateur de jetons du compte de service
Pour créer un compte de service avec le rôle requis, procédez comme suit:
- Exécutez la commande suivante pour créer un compte de service: (Veuillez ignorer cette étape si le compte de service existe déjà.)
gcloud iam service-accounts create abap-sdk-dev \
--description="ABAP SDK Dev Account" \
--display-name="ABAP SDK Dev Account"
- Exécutez la commande suivante pour définir le rôle Créateur de jetons du compte de service:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
--member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
--role=roles/iam.serviceAccountTokenCreator
5. Configurer la clé client
Connectez-vous au système SAP avec le nom d'utilisateur DEVELOPER
et le mot de passe Htods70334
, puis procédez comme suit pour configurer la clé client:
- Dans l'IUG 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.
- Cliquez sur Nouvelles entrées.
- Renseignez les champs suivants :
Champ | Description |
Nom de la clé Google Cloud | ABAP_SDK_DEMO |
Nom du compte de service Google Cloud | abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com |
Champ d'application Google Cloud | https://www.googleapis.com/auth/cloud-platform |
Identifiant de projet Google Cloud | abap-sdk-poc |
Classe d'autorisation | /GOOG/CL_AUTH_GOOGLE. |
Ne renseignez pas les autres champs.
6. Créer une destination RFC
Créez une destination RFC pour les identifiants IAM et l'API Address Validation.
Nom de la destination RFC | Hôte cible (point de terminaison de l'API) | Remarques |
ZGOOG_IAMCREDENTIALS | Hôte: iamcredentials.googleapis.comChemin: Préfixe: /v1/Port: 443SSL: Active | Cette destination RFC cible l'API Cloud IAM. |
ZGOOG_ADDRESSVALIDATION_V1 | Hôte: addressvalidation.googleapis.comPort: 443SSL: actif | Cette destination RFC cible l'API Address validation |
- Dans l'onglet Technical Settings (Paramètres techniques), saisissez les informations suivantes pour la destination ZGOOG_IAMCREDENTIALS.
- Dans l'onglet Technical Settings (Paramètres techniques), saisissez les informations suivantes pour la destination ZGOOG_ADDRESSVALIDATION_V1.
- Dans le champ Certificat SSL, assurez-vous que l'option Client SSL par défaut (standard) est sélectionnée pour les deux destinations RFC.
7. Configurer le mappage de service
Pour configurer la table de mappage de services pour l'API IAM et l'API Address Validation, procédez comme suit:
- Dans l'IUG SAP, saisissez le code de transaction SPRO.
- Cliquez sur SAP Reference IMG.
- Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer le mappage des services.
- Cliquez sur Nouvelles entrées pour l'API de validation des identifiants et des adresses IAM associée aux destinations RFC.
8. Valider la configuration
Pour valider la configuration d'authentification, procédez comme suit :
- Dans l'IUG SAP, saisissez le code de transaction SPRO.
- Cliquez sur SAP Reference IMG.
- Cliquez sur SDK ABAP pour Google Cloud > Utilitaires > Valider la configuration de l'authentification.
- Saisissez
ABAP_SDK_DEMO
comme nom de clé client. - Cliquez sur Exécuter pour vérifier si le flux global est correctement configuré.
- Une coche verte dans la colonne "Résultat" indique que toutes les étapes de configuration ont été effectuées avec succès.
9. Créer un programme de rapport pour appeler le service Address Validation
- Connectez-vous à votre système SAP.
- Accédez au code de transaction SE38 et créez un programme de création de rapports nommé ZDEMO_ADDRESS_VALIDATION.
- Dans le pop-up qui s'affiche, fournissez les détails comme indiqué ci-dessous, puis cliquez sur Enregistrer.
- Dans le pop-up suivant, sélectionnez Objet local ou indiquez un nom de package, le cas échéant.
- Dans l'éditeur ABAP, ajoutez le code suivant:
" data declarations
DATA lv_ret_code TYPE i.
DATA lv_err_text TYPE string.
DATA ls_input TYPE /goog/cl_addrvaldn_v1=>ty_012.
DATA ls_output TYPE /goog/cl_addrvaldn_v1=>ty_013.
DATA ls_err_resp TYPE /goog/err_resp.
DATA lo_exception TYPE REF TO /goog/cx_sdk.
DATA lo_address_validator TYPE REF TO /goog/cl_addrvaldn_v1.
" instantiate api client stub
TRY.
lo_address_validator = NEW #( iv_key_name = 'ABAP_SDK_DEV' ).
" Pass the address to be validated and corrected.
" Mountain misspelled as Moutain
" Amphitheatre misspelled as Amphithetre
ls_input-address-region_code = 'US'.
ls_input-address-locality = 'Moutain View'.
APPEND '1600, Amphithetre, Parkway' TO ls_input-address-address_lines.
" call the api method to validate address
lo_address_validator->validate_address( EXPORTING is_input = ls_input
IMPORTING es_output = ls_output
ev_ret_code = lv_ret_code
ev_err_text = lv_err_text
es_err_resp = ls_err_resp ).
IF lo_address_validator->is_success( lv_ret_code ) = abap_true
AND ls_output-result-verdict-address_complete = abap_true.
cl_demo_output=>new(
)->begin_section( `Original Address`
)->write_data( ls_input-address-region_code
)->write_data( ls_input-address-locality
)->write_data( ls_input-address-address_lines
)->next_section( `Validated & Corrected Address`
)->begin_section( `Elementary Object`
)->write_data( ls_output-result-address-formatted_address
)->display( ).
ENDIF.
CATCH /goog/cx_sdk INTO lo_exception.
" write code here to handle exceptions
cl_demo_output=>display( lo_exception->get_text( ) ).
ENDTRY.
- Enregistrez et activez le rapport.
- Exécutez le rapport (F8).
Si l'exécution réussit, le rapport doit s'afficher comme suit:
10. Félicitations
Félicitations ! Vous avez correctement configuré le SDK ABAP pour appeler le service Address Validation.
Vous pouvez maintenant suivre les autres ateliers de programmation sur le SDK ABAP pour poursuivre votre apprentissage concernant l'utilisation du SDK ABAP pour Google Cloud afin d'accéder aux différents services Google Cloud.
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
- Supprimez les entrées de configuration de clé client en accédant à IMG > Google Cloud > Paramètres généraux > Configurez la clé client.
- Supprimez les entrées de configuration du mappage de service en accédant à IMG > Google Cloud > Paramètres généraux > Configurez la clé client.
- Supprimez les destinations RFC ZGOOG_IAMCREDENTIALS et ZGOOG_ADDRESSVALIDATION_V1.
- Supprimez le compte de service :
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com