Configurer l'authentification du SDK ABAP à l'aide de jetons pour SAP hébergés sur une VM Compute Engine et exécuter l'API Address validation

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

6757b2fb50ddcc2d.png

  • 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 zone us-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

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:

  1. 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"
  1. 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:

  1. Dans l'IUG SAP, saisissez le code de transaction SPRO.
  2. Cliquez sur SAP Reference IMG.
  3. Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer la clé client.
  4. Cliquez sur Nouvelles entrées.
  5. 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.

c72e71da6fd75b29.png

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.

e670c6a91acba40f.png

  • Dans l'onglet Technical Settings (Paramètres techniques), saisissez les informations suivantes pour la destination ZGOOG_ADDRESSVALIDATION_V1.

fcf92530ece612ea.png

  • 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.

b6370d12bd332318.png

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:

  1. Dans l'IUG SAP, saisissez le code de transaction SPRO.
  2. Cliquez sur SAP Reference IMG.
  3. Cliquez sur SDK ABAP pour Google Cloud > Paramètres de base > Configurer le mappage des services.
  4. Cliquez sur Nouvelles entrées pour l'API de validation des identifiants et des adresses IAM associée aux destinations RFC.

e227316b0f249823.png

8. Valider la configuration

Pour valider la configuration d'authentification, procédez comme suit :

  1. Dans l'IUG SAP, saisissez le code de transaction SPRO.
  2. Cliquez sur SAP Reference IMG.
  3. Cliquez sur SDK ABAP pour Google Cloud > Utilitaires > Valider la configuration de l'authentification.
  4. Saisissez ABAP_SDK_DEMO comme nom de clé client.
  5. Cliquez sur Exécuter pour vérifier si le flux global est correctement configuré.
  6. Une coche verte dans la colonne "Résultat" indique que toutes les étapes de configuration ont été effectuées avec succès.

d7285e64e22c25b6.png

9. Créer un programme de rapport pour appeler le service Address Validation

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

d8aac0f9e0bc5f9d.png

  1. Dans le pop-up suivant, sélectionnez Objet local ou indiquez un nom de package, le cas échéant.
  2. 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.
  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:

8b0aed97320f4ef.png

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

  1. Supprimez les entrées de configuration de clé client en accédant à IMG > Google Cloud > Paramètres généraux > Configurez la clé client.
  2. 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.
  3. Supprimez les destinations RFC ZGOOG_IAMCREDENTIALS et ZGOOG_ADDRESSVALIDATION_V1.
  4. Supprimez le compte de service :
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com