Configura la autenticación del SDK de ABAP con tokens para SAP alojados en la VM de Compute Engine y ejecuta la API de Address Validation

1. Introducción

En este codelab, seguirás los pasos para configurar la autenticación y acceder a las APIs de Google Cloud con tokens cuando tu sistema SAP esté alojado en una instancia de VM de Compute Engine.

La lista de servicios usados es la siguiente:

  • Compute Engine
  • Servicios de red
  • Cloud Shell

Qué compilarás

Harás lo siguiente:

  • Configura el SDK de ABAP instalado en el sistema SAP para conectarte a las APIs de Google.
  • Crea un programa de informes de ejemplo para llamar a la API de Address Validation.

2. Requisitos

  • Un navegador, como Chrome o Firefox
  • Tener un proyecto de Google Cloud con facturación habilitada o crear una cuenta de prueba gratuita de 90 días para Google Cloud Platform
  • GUI de SAP (Windows o Java) instalada en tu sistema Si la GUI de SAP ya está instalada en tu sistema, conéctate a SAP con la dirección IP externa de la VM como la IP del servidor de aplicaciones. Si utilizas Mac, también puedes instalar la GUI de SAP para Java disponible en este vínculo.

3. Antes de comenzar

6757b2fb50ddcc2d.png

  • Asegúrate de que todas las APIs necesarias (API de IAM Service Account Credentials y Address Validation API) estén habilitadas.
  • Ejecuta los siguientes comandos para autenticar tu cuenta y establece el proyecto predeterminado como abap-sdk-poc. Se usa la zona us-west4-b como ejemplo. Si es necesario, cambia el proyecto y la zona en los siguientes comandos según tus preferencias.
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. Crea una cuenta de servicio y configura el rol Creador de tokens de cuentas de servicio

Para crear una cuenta de servicio con el rol necesario, sigue estos pasos:

  1. Ejecuta el siguiente comando para crear una cuenta de servicio (omite este paso si ya existe la cuenta de servicio):
gcloud iam service-accounts create abap-sdk-dev \
    --description="ABAP SDK Dev Account" \
    --display-name="ABAP SDK Dev Account"
  1. Ejecuta el siguiente comando para establecer el rol Creador de tokens de cuenta de servicio:
gcloud projects add-iam-policy-binding $PROJECT_NAME \
    --member=serviceAccount:abap-sdk-dev@$PROJECT_NAME.iam.gserviceaccount.com \
    --role=roles/iam.serviceAccountTokenCreator

5. Configura la clave de cliente

Accede al sistema SAP con el nombre de usuario DEVELOPER y la contraseña Htods70334, y sigue estos pasos para configurar la clave de cliente:

  1. En la GUI de SAP, ingresa el código de transacción SPRO.
  2. Haz clic en IMG de referencia de SAP.
  3. Haz clic en el SDK de ABAP para Google Cloud > Configuración básica > Configurar clave de cliente.
  4. Haz clic en Entradas nuevas.
  5. Ingresa los valores para los siguientes campos:

Campo

Descripción

Nombre de la clave de Google Cloud

ABAP_SDK_DEMO

Nombre de la cuenta de servicio de Google Cloud

abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com

Permiso de Google Cloud

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

Identificador de proyecto de Google Cloud

abap-sdk-poc

Clase de autorización

/GOOG/CL_AUTH_GOOGLE

Deja los otros campos en blanco

c72e71da6fd75b29.png

6. Crear destino RFC

Crea el destino RFC para la credencial de IAM y la API de Address Validation.

Nombre del destino de RFC

Host del destino (extremo de API)

Notas

ZGOOG_IAMCREDENTIALS

Host: iamcredentials.googleapis.comRuta: Prefijo: /v1/Puerto: 443SSL: Activo

Este destino de RFC se orienta a la API de IAM.

ZGOOG_ADDRESSVALIDATION_V1

Host: addressvalidation.googleapis.comPuerto: 443SSL: activo

Esta RFC de destino se orienta a la API de Address Validation

  • En la pestaña Configuración técnica, ingresa los siguientes detalles para el destino ZGOOG_IAMCREDENTIALS.

e670c6a91acba40f.png

  • En la pestaña Configuración técnica, ingresa los siguientes detalles para el destino ZGOOG_ADDRESSVALIDATION_V1.

fcf92530ece612ea.png

  • En el campo Certificado SSL, asegúrate de que esté seleccionada la opción Cliente SSL PREDETERMINADO (Estándar) para ambos destinos RFC.

b6370d12bd332318.png

7. Configura la asignación de servicios

Para configurar la tabla de asignación de servicios para la API de IAM y la API de Address Validation, sigue estos pasos:

  1. En la GUI de SAP, ingresa el código de transacción SPRO.
  2. Haz clic en IMG de referencia de SAP.
  3. Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar asignación de servicios.
  4. Haz clic en New Entries (Nuevas entradas) para la credencial de IAM y la API de Address Validation vinculada a los destinos de RFC.

e227316b0f249823.png

8. Valida la configuración

Para validar la configuración de autenticación, sigue estos pasos:

  1. En la GUI de SAP, ingresa el código de transacción SPRO.
  2. Haz clic en IMG de referencia de SAP.
  3. Haz clic en SDK de ABAP para Google Cloud > Utilidades > Valida la configuración de autenticación
  4. Ingresa el nombre de la clave de cliente como ABAP_SDK_DEMO.
  5. Haz clic en Ejecutar para verificar si el flujo general se configuró correctamente.
  6. Una marca de verificación verde en la columna Resultado indica que todos los pasos de configuración se completaron correctamente.

d7285e64e22c25b6.png

9. Crea un programa de informes para llamar al servicio Address Validation

  1. Accede a tu sistema SAP.
  2. Ve al código de transacción SE38 y crea un programa de informes con el nombre ZDEMO_ADDRESS_VALIDATION.
  3. En la ventana emergente que se abre, ingresa los detalles como se muestra a continuación y haz clic en Guardar.

d8aac0f9e0bc5f9d.png

  1. En la siguiente ventana emergente, selecciona Local Object o proporciona un nombre de paquete según corresponda.
  2. En el Editor de ABAP, agrega el siguiente código:
" 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. Guarda y activa el informe.
  2. Ejecuta el informe (F8).

Si la ejecución es exitosa, deberías ver el resultado del informe como se muestra a continuación:

8b0aed97320f4ef.png

10. Felicitaciones

¡Felicitaciones! Configuraste correctamente el SDK de ABAP para llamar al servicio de Address Validation.

Ahora puedes continuar con los otros codelabs del SDK de ABAP para continuar con tu recorrido de aprendizaje sobre el uso del SDK de ABAP para Google Cloud y acceder a varios servicios de Google Cloud.

11. Limpia

Si no quieres continuar con los codelabs adicionales relacionados con el SDK de ABAP para Google Cloud, continúa con la limpieza.

Borra el proyecto

  • Borra el proyecto de Google Cloud:
gcloud projects delete abap-sdk-poc

Borra recursos individuales

  1. Borra las entradas de configuración de la clave de cliente en IMG > Google Cloud > Configuración básica > Configura la clave de cliente.
  2. Borra las entradas de configuración de asignación de servicios en IMG > Google Cloud > Configuración básica > Configura la clave de cliente.
  3. Borra los destinos de RFC ZGOOG_IAMCREDENTIALS y ZGOOG_ADDRESSVALIDATION_V1.
  4. Borra la cuenta de servicio:
gcloud iam service-accounts delete \
    abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com