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
- En la consola de Google Cloud, en la página del selector de proyectos, selecciona o crea un proyecto de Google Cloud (por ejemplo,
abap-sdk-poc).
- Asegúrate de que la facturación esté habilitada para tu proyecto de Cloud. Obtén información sobre cómo verificar si la facturación está habilitada en un proyecto. Omite este paso si usas la cuenta de prueba gratuita de 90 días.
- Usarás Cloud Shell, un entorno de línea de comandos que se ejecuta en Google Cloud. En la consola de Cloud, haz clic en Activar Cloud Shell en la esquina superior derecha:
- 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 zonaus-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
- Asegúrate de tener acceso a un sistema SAP con el SDK de ABAP para Google Cloud instalado.
- Puedes consultar el codelab " Install ABAP Platform Testing 2022 on Google Cloud Platform and Install ABAP SDK (Instala la prueba de 2022 de la plataforma ABAP en Google Cloud Platform e instala el SDK de ABAP). para configurar un sistema nuevo.
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:
- 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"
- 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:
- En la GUI de SAP, ingresa el código de transacción SPRO.
- Haz clic en IMG de referencia de SAP.
- Haz clic en el SDK de ABAP para Google Cloud > Configuración básica > Configurar clave de cliente.
- Haz clic en Entradas nuevas.
- 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
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.
- En la pestaña Configuración técnica, ingresa los siguientes detalles para el destino ZGOOG_ADDRESSVALIDATION_V1.
- En el campo Certificado SSL, asegúrate de que esté seleccionada la opción Cliente SSL PREDETERMINADO (Estándar) para ambos destinos RFC.
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:
- En la GUI de SAP, ingresa el código de transacción SPRO.
- Haz clic en IMG de referencia de SAP.
- Haz clic en SDK de ABAP para Google Cloud > Configuración básica > Configurar asignación de servicios.
- Haz clic en New Entries (Nuevas entradas) para la credencial de IAM y la API de Address Validation vinculada a los destinos de RFC.
8. Valida la configuración
Para validar la configuración de autenticación, sigue estos pasos:
- En la GUI de SAP, ingresa el código de transacción SPRO.
- Haz clic en IMG de referencia de SAP.
- Haz clic en SDK de ABAP para Google Cloud > Utilidades > Valida la configuración de autenticación
- Ingresa el nombre de la clave de cliente como
ABAP_SDK_DEMO
. - Haz clic en Ejecutar para verificar si el flujo general se configuró correctamente.
- Una marca de verificación verde en la columna Resultado indica que todos los pasos de configuración se completaron correctamente.
9. Crea un programa de informes para llamar al servicio Address Validation
- Accede a tu sistema SAP.
- Ve al código de transacción SE38 y crea un programa de informes con el nombre ZDEMO_ADDRESS_VALIDATION.
- En la ventana emergente que se abre, ingresa los detalles como se muestra a continuación y haz clic en Guardar.
- En la siguiente ventana emergente, selecciona Local Object o proporciona un nombre de paquete según corresponda.
- 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.
- Guarda y activa el informe.
- Ejecuta el informe (F8).
Si la ejecución es exitosa, deberías ver el resultado del informe como se muestra a continuación:
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
- Borra las entradas de configuración de la clave de cliente en IMG > Google Cloud > Configuración básica > Configura la clave de cliente.
- Borra las entradas de configuración de asignación de servicios en IMG > Google Cloud > Configuración básica > Configura la clave de cliente.
- Borra los destinos de RFC ZGOOG_IAMCREDENTIALS y ZGOOG_ADDRESSVALIDATION_V1.
- Borra la cuenta de servicio:
gcloud iam service-accounts delete \
abap-sdk-dev@abap-sdk-poc.iam.gserviceaccount.com