Soluciona problemas de las ediciones locales o en cualquier edición en la nube del SDK de ABAP para Google Cloud

Puedes solucionar problemas con las ediciones locales o en cualquier edición de nube del SDK de ABAP para Google Cloud mediante los registros de aplicaciones de SAP a fin de revisar mensajes de registro y de errores.

Verifica los requisitos de software y los requisitos previos

Asegúrate de que todo el software del sistema se ejecute en las versiones mínimas requeridas y que se cumplan todos los requisitos del SDK de ABAP para Google Cloud.

Para obtener información sobre los requisitos de instalación del SDK, consulta Antes de comenzar.

Lee la documentación de asistencia de SAP

Si tienes una cuenta de usuario de SAP, puedes encontrar la resolución para muchos problemas de software de SAP si lees las notas de SAP y los artículos de la base de conocimiento de SAP disponibles en SAP ONE Support Launchpad (Launchpad de asistencia de SAP ONE).

Logging

Cuando se configura el registro, el SDK de ABAP para Google Cloud registra los mensajes de error en los registros de la aplicación SAP. Para obtener más información sobre el registro, consulta Registro de aplicaciones.

Para ver los mensajes de registro, sigue estos pasos:

  1. En la GUI de SAP, ingresa el código de transacción SLG1.
  2. Ingresa el nombre del objeto de registro y el nombre del subobjeto.
  3. Selecciona un intervalo de tiempo y fecha válidos.
  4. Ejecuta la transacción. Se muestran todos los mensajes de registro que genera el SDK.

Por lo general, un mensaje de registro consta de las siguientes dos entradas:

  • Ingresar: Proporciona información sobre la ubicación del código donde se produjo exactamente el error. Para solucionar problemas, puedes usar esta ubicación de código como interrupción durante la depuración.
  • Mensaje de error: Proporciona información sobre un error que ocurrió cuando se realizó una operación.

Depuración

Si tienes la autorización requerida, puedes depurar las clases de cliente de la API.

Para depurar las clases de cliente de la API, usa una de las siguientes opciones:

  • Agrega una interrupción al constructor de la clase /GOOG/CL_HTTP_CLIENT y, luego, ejecuta tu programa.

  • O bien, agrega una interrupción al método que estás usando y, luego, ejecuta tu programa.

HTTP trace

Cuando solucionas errores, puedes habilitar HTTP trace en la transacción SMICM o ST05. Para limitar el impacto en el rendimiento, inhabilita HTTP trace en cuanto termines.

Problemas comunes de configuración

/GOOG/MSG 461: Insufficient privileges for execution

Problema: El usuario no puede realizar configuraciones de SDK, ejecutar programas de utilidad o programas de demostración.

Causa: Faltan autorizaciones para el usuario.

Resolución: Identifica las autorizaciones faltantes que se requieren para el SDK mediante la transacción SU53. A fin de obtener esas autorizaciones necesarias para tu ID de usuario, comunícate con tus administradores de seguridad de SAP. Para obtener más información, consulta Administra autorizaciones.

/GOOG/MSG: 403 - Permission iam.serviceAccountTokenCreator denied on resource (or it may not exist)

Problema: En el sistema SAP alojado en una VM de Compute Engine, cuando usas el método de autenticación basado en tokens, no puedes acceder a las APIs de Google Cloud.

Causa: Para tu sistema SAP alojado en una VM de Compute Engine, en la configuración de la clave del cliente, la cuenta de servicio especificada se crea en un proyecto de Google Cloud diferente del proyecto que contiene la VM host del SAP.

Resolución: Para resolver este problema, realiza los siguientes pasos:

  1. En el proyecto de Google Cloud que contiene la VM host del SAP, otorga a la cuenta de servicio de la VM host el rol Service Account Token Creator. Para obtener más información sobre los pasos, consulta Otorga un solo rol.
  2. En el proyecto de Google Cloud que contiene la VM host del SAP, haz lo siguiente:
    1. Crea una cuenta de servicio. Toma nota del nombre de la cuenta de servicio. Debes especificar este nombre cuando agregas la cuenta de servicio como principio al otro proyecto que contiene las APIs de Google Cloud. Para obtener información sobre cómo crear una cuenta de servicio, consulta Crea una cuenta de servicio.
    2. En la configuración de la clave del cliente para el SDK, especifica esta cuenta de servicio.
  3. En el otro proyecto que contiene las APIs de Google Cloud, haz lo siguiente:
    1. Agrega la cuenta de servicio como principio.
    2. Otorga los roles adecuados para conectarte a las APIs de Google Cloud. Para obtener más detalles sobre los roles predefinidos específicos de la API, consulta Referencia de los roles básicos y predefinidos de IAM.

Si deseas obtener más información, consulta Autentica mediante tokens para SAP en la VM de Compute Engine.

Problemas operativos comunes

Cuando se consumen las APIs de Google Cloud a través de los métodos públicos de stub para los clientes, los desarrolladores pueden encontrar errores y excepciones. Estos errores y excepciones se clasifican de forma amplia en dos categorías:

  • Errores y excepciones activados por el SDK de ABAP para Google Cloud
  • Errores que muestran las APIs de Google Cloud

En esta sección, se abarcan los errores y las excepciones que activa el SDK. Para los errores que muestran las APIs, te recomendamos que revises la documentación pública de la API correspondiente.

/GOOG/MSG : 461 - Bad Request: Client key is not found in /GOOG/CLIENT_KEY table

Problema: No puedes crear una instancia de un objeto de stub de cliente de la API.

Causa: La tabla de claves de cliente /GOOG/CLIENT_KEY no contiene una clave de cliente válida.

Resolución: En la tabla de claves de cliente /GOOG/CLIENT_KEY, mantén una clave de cliente válida. Cuando crees una instancia de stub de cliente de API, pasa una clave de cliente válida con el parámetro de importación iv_key_name.

Puedes configurar la clave de cliente con los detalles específicos de tu método de autenticación. Para obtener información sobre los métodos de autenticación y la configuración de claves de cliente relacionadas, consulta Autenticación.

Para obtener información sobre cómo pasar una clave de cliente con el parámetro de importación iv_key_name, consulta Constructor.

/GOOG/MSG : 461 - Log Object not maintained in TCode SLG0

Problema: No puedes crear una instancia de un objeto de stub de cliente de la API.

Causa: Se mantiene un objeto de registro predeterminado no válido en la tabla /GOOG/LOG_CONFIG o se pasa un objeto de registro no válido al parámetro de importación iv_log_object.

Resolución: Asegúrate de que exista un objeto de registro válido en el sistema SAP.

Para obtener información sobre el registro, consulta Registro de aplicaciones.

Para obtener información sobre cómo pasar un objeto de registro, consulta Constructor.

/GOOG/MSG : 461 - Log SubObject not maintained in TCode SLG0

Problema: No puedes crear una instancia de un objeto de stub de cliente de la API.

Causa: Se mantiene un subobjeto de registro predeterminado no válido en la tabla /GOOG/LOG_CONFIG o se pasa un subobjeto de registro no válido al parámetro de importación iv_log_subobject.

Resolución: Asegúrate de que exista un subobjeto de registro válido en el sistema SAP.

Para obtener información sobre el registro, consulta Registro de aplicaciones.

Para obtener información sobre cómo pasar un subobjeto de registro, consulta Constructor.

/GOOG/MSG : 461 - Destination does not exist exception occurred in reading RFC destination

Problema: No puedes crear una instancia de un objeto de stub de cliente de la API.

Causa: En la tabla /GOOG/SERVIC_MAP, para la clave de cliente especificada, no existe un destino RFC en el sistema SAP.

Resolución: Crea los destinos de RFC necesarios. Para obtener más información, consulta Configura destinos de RFC.

/GOOG/MSG : 461 - Invalid RFC Destination GOOGLE_API exception occurred in reading RFC destination

Problema: No puedes conectarte a GOOGLE_API.

Causa: Este problema puede deberse a cualquiera de las siguientes causas:

  • El tipo de conexión RFC no es G - HTTP connection to external server.
  • Número de servicio de 443 no se especifica.
  • El cliente SSL predeterminado (estándar) está inactivo.

Resolución: Para los destinos de RFC requeridos, haz lo siguiente:

  • Actualiza el tipo de conexión RFC a G - HTTP connection to external server.
  • Asegúrate de que el número de servicio es 443.
  • En el campo Certificado SSL, asegúrate de que la opción Cliente SSL de CDAULT (estándar) esté seleccionada.
  • Si usas un entorno de Google Cloud en SAP, si creaste un destino RFC para un servidor de metadatos, asegúrate de que el número de servicio es 80.

Para obtener información sobre cómo crear destinos de RFC, consulta los siguientes vínculos:

/GOOG/MSG : 461 - ERROR_MESSAGE exception occurred during the request creation

Problema: No puedes conectarte a las APIs de Google Cloud.

Causa: El sistema SAP no puede crear un objeto de cliente HTTP.

Resolución: Asegúrate de que tu ICM esté configurado para comunicarse a través de HTTP con un servidor externo. Para obtener más información, consulta Valida el Administrador de comunicaciones de Internet (ICM).

/GOOG/MSG: 461 - Secret Manager Client Key not maintained in table /GOOG/CLIENT_KEY ERROR_MESSAGE

Problema: No puedes conectarte a las APIs de Google Cloud con la clase de autorización de Secret Manager /GOOG/CL_AUTH_API_KEY_SM.

Causa: En la configuración de la clave del cliente, faltan Authorization Parameter 1 o Authorization Parameter 2.

Resolución En la tabla de claves del cliente, actualiza el Authorization Parameter 1 o Authorization Parameter 2 requerido. Si deseas obtener más información, consulta Configura la clave de cliente para el acceso a Secret Manager.

/GOOG/MSG: 461 - SSF Application APPLICATION_NAME is not set up in the system ERROR_MESSAGE

Problema: No puedes conectarte a las APIs de Google Cloud con la clase de autorización de SSF /GOOG/CL_AUTH_API_KEY_SSF.

Causa: En la configuración de la clave de cliente, falta Authorization Parameter 1.

Resolución En la tabla de claves del cliente, actualiza el Authorization Parameter 1 requerido. Si deseas obtener más información, consulta Configura la clave de cliente para SSF.

/GOOG/MSG: 461 - Method call of /GOOG/IF_AUTH~GET_ACCESS_TOKEN failed; the class CLASS_NAME does not exist

Problema: No puedes conectarte a las APIs de Google Cloud con la configuración mantenida en la tabla de claves del cliente.

Causa: Authorization Class no es correcto en la tabla de claves del cliente.

Resolución: Mantén el Authorization Class correcto. Para obtener más información, consulta Autentica mediante un token.

/GOOG/MSG: 404 - Not Found

Problema: No puedes conectarte a las APIs de Google Cloud. No se puede acceder al extremo de la API.

Causa: Los destinos de RFC que usa el SDK para conectarse a las APIs de Google Cloud no están configurados de forma correcta. Por ejemplo, se configura un extremo no válido en los destinos de RFC.

Resolución: Verifica si los destinos de RFC están configurados correctamente. Para obtener más información, consulta Configura el destino de RFC.

DESCRIPTION_OF_ISSUE while signing JWT using profile KEY_FILE_NAME.pse. Check JWT config in STRUST

Problema: No puedes conectarte a las APIs de Google Cloud.

Causa: La configuración de JWT y la configuración de la clave de la cuenta de servicio no están configuradas de forma correcta en STRUST.

Resolución: Confirma que la configuración de JWT y la clave de la cuenta de servicio estén configuradas como se explica en Autenticación.

Bad Request invalid_grant. Invalid JWT Signature

Problema: No puedes conectarte a las APIs de Google Cloud.

Causa: El archivo de claves PSE o P12 importado a STRUST no pertenece a la cuenta de servicio que usaste para firmar el JWT.

Resolución: Asegúrate de importar el archivo de claves de la cuenta de servicio correcto a STRUST. Para obtener información sobre cómo importar la clave de la cuenta de servicio a STRUST, consultaImporta la clave de la cuenta de servicio a STRUST.

/GOOG/MSG : 417 - Direct connect to googleapis.com/oauth:443 failed: NIEHOST_UNKNOWN (-2)

Problema: La autenticación en Google Cloud falló con el mensaje de error /GOOG/MSG : 417 - Direct connect to googleapis.com/oauth:443 failed: NIEHOST_UNKNOWN (-2).

Causa: En los destinos de RFC que usa el SDK de ABAP para Google Cloud a fin de autenticarse en Google Cloud, el host de destino no es válido.

Resolución: Para resolver este problema, realiza los siguientes pasos:

  1. Crea un destino de RFC con el destino de RFC de muestra GOOG_OAUTH2_TOKEN. Para obtener información sobre cómo crear destinos de RFC, consulta Destinos de RFC.

  2. Asegúrate de que tu destino de RFC use los siguientes valores:

    • Host: oauth2.googleapis.com
    • Prefijo de ruta de acceso: /token.
  3. Si tu sistema SAP usa un proxy para conectarse a Internet, mantén los detalles del proxy requeridos en el destino RFC.

OAuth RFC HTTP Destination not maintained in /GOOG/SERVIC_MAP

Problema: No puedes conectarte a las APIs de Google Cloud.

Causa: El destino de RFC para OAuth 2.0 no está disponible en la tabla de asignación de servicios /GOOG/SERVIC_MAP.

Resolución: Actualiza el destino de RFC para OAuth 2.0 en la tabla de asignación de servicios /GOOG/SERVIC_MAP. Para obtener información sobre cómo especificar destinos de RFC, consulta Especifica destinos de RFC en /GOOG/SERVIC_MAP.

/GOOG/MSG: 503 - HTTP Communication Failure - SSL client SSL Client (Standard)

Problema: La solicitud HTTP a un método de la API falló.

Causa: Para la carga de trabajo de SAP que se ejecuta en Google Cloud, en los destinos de RFC que el SDK usa a fin de conectarse a las APIs de Google Cloud en las que se mantiene la configuración en la tabla /GOOG/SERVIC_MAP, el valor del campo Host del destino es incorrecto.

Resolución: Verifica si los destinos de RFC están configurados correctamente. Para obtener más información, consulta Configura el destino de RFC.

/GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the request sending

Problema: La solicitud HTTP a un método de la API falló.

Causa: Este problema puede deberse a problemas de conectividad.

Resolución: Valida tu conexión y asegúrate de que tu red esté configurada correctamente, se ejecute sin errores y no esté congestionada.

Para identificar el problema de conectividad de red, verifica el archivo de seguimiento de ICM mediante la transacción SMICM. Para obtener más información, consulta 2351619: ¿Cómo se realiza el seguimiento de SMICM?

/GOOG/MSG: 503 - HTTP Communication Failure exception occurred during the response receiving

Problema: La solicitud HTTP a un método de la API falló.

Este problema puede deberse a las siguientes circunstancias:

El SSL no está activado en tus destinos de RFC

Causa: En los destinos de RFC que usa el SDK para conectarse a las APIs de Google Cloud, la opción de seguridad para usar el certificado SSL no está activada.

Resolución: Verifica si los destinos de RFC están configurados correctamente. Para obtener más información, consulta Configura el destino de RFC.

Error en el protocolo de enlace SSL

Causa: Cuando el protocolo de enlace SSL falló entre el host de SAP y el extremo de la API de Google Cloud. Esto ocurre cuando el certificado que presenta el servidor de TLS no es válido para el nombre de host de destino que proporciona el servidor SAP, posiblemente porque el envío del cliente de la extensión opcional de TLS SNI no se implementa en tu kernel de NetWeaver.

Resolución: En la transacción SMICM, busca el código de retorno, SSLERR_SERVER_CERT_MISMATCH. Si encuentras el código de retorno SSLERR_SERVER_CERT_MISMATCH, debes habilitar el envío de la SNI de la extensión TLS. Además, asegúrate de que el kernel de NetWeaver implemente el envío del cliente de la SNI de la extensión TLS opcional.

Para habilitar el envío de la SNI de la extensión TLS, establece el parámetro de perfil icm/HTTPS/client_sni_enabled o ssl/client_sni_enabled en TRUE, según la versión de kernel de NetWeaver. Para obtener más información sobre SAP, consulta los siguientes vínculos:

The caller does not have permission

Problema: Aunque te hayas autenticado de forma correcta, no puedes acceder a los recursos de la API de Google Cloud.

Causa: No tienes permiso para ver el recurso de la API.

Resolución: Para resolver este problema, realiza los siguientes pasos:

  1. Asegúrate de que el recurso de la API se comparta con las credenciales de tu Cuenta de Google.
  2. Realizar una solicitud a la API y verificar la respuesta.

Google API_NAME API has not been used in project PROJECT_ID before or it is disabled

Problema: No puedes acceder a las APIs de Google Cloud con tus credenciales de cliente de OAuth 2.0.

Causa: Usas un ID de cliente creado en un proyecto de Google Cloud para llamar a una API que está habilitada en otro proyecto de Google Cloud.

Un ID de cliente de un proyecto de Google Cloud no se puede usar para llamar a las APIs desde otro proyecto, incluso si ambos están en la misma organización.

Resolución: Crea un ID de cliente en el proyecto de Google Cloud en el que la API está habilitada. Para obtener más información, consulta Crea un ID de cliente de OAuth 2.0.

/GOOG/MSG : 461 - OAuth 2.0 Client Profile CLIENT_PROFILE_NAME is assigned to multiple OAuth 2.0 clients

Problema: No puedes acceder a las APIs de Google Cloud con tus credenciales de cliente de OAuth 2.0.

Causa: Llamas a una API de Google Cloud con un perfil de OAuth 2.0 asignado a más de un cliente de OAuth 2.0. Sin embargo, el nombre de configuración del cliente de OAuth 2.0 no se especifica en el campo Authorization Parameter 2 de la tabla de claves del cliente /GOOG/CLIENT_KEY.

Resolución: Para asignar un perfil de OAuth 2.0 a más de un cliente de OAuth 2.0, debes definir un nombre de configuración único para cada cliente de OAuth 2.0 y especificar el nombre de la configuración en el Authorization Parameter 2 de la tabla de claves del cliente /GOOG/CLIENT_KEY. Para obtener más información, consulta Situación de varios proyectos de Google Cloud.

/GOOG/MSG : 461 - No refresh token available for current user

Problema: No puedes acceder a las APIs de Google Cloud con tus credenciales de cliente de OAuth 2.0.

Causa: Llamas a una API de Google Cloud con las credenciales de cliente de OAuth 2.0 sin otorgar el token de actualización de OAuth 2.0 para el ID de cliente.

Resolución: solicita un token de OAuth 2.0 para el ID de cliente mediante las credenciales de tu Cuenta de Google. Para obtener más información, consulta Solicita tokens de acceso de OAuth 2.0.

Access blocked: This app's request is invalid (Error 400: redirect_uri_mismatch)

Problema: Cuando solicitas tokens de acceso de OAuth 2.0, se muestra la pantalla Acceder con Google con el mensaje de error Access blocked: This app's request is invalid (Error 400: redirect_uri_mismatch).

Causa: El URI de redireccionamiento autorizado en las credenciales de ID de cliente de OAuth 2.0 es incorrecto o no se mantiene.

Resolución: Para resolver este problema, realiza los siguientes pasos:

  1. En el sistema SAP, ingresa el código de transacción OA2C_CONFIG. La página de acceso de SAP se abre en el navegador predeterminado.
  2. Accede con tus credenciales de SAP.
  3. Selecciona el ID de cliente requerido.
  4. En el campo URI de redireccionamiento, toma nota de tu URI de redireccionamiento de SAP.
  5. En la consola de Google Cloud, ve a Menú  > API y servicios  > Credenciales.

    Ir a Credenciales

  6. Selecciona el ID de cliente de tu aplicación web.

  7. En el campo URI de redireccionamiento autorizados, ingresa el URI de redireccionamiento de SAP.

  8. Guarde los cambios.

/GOOG/MSG : 406 - IcmIConnCheckClientEnabled: Connect for protocol HTTP denied by configuration HTTP Response

Problema: No puedes acceder a las APIs de Google Cloud.

Causa: Falta la configuración del puerto HTTP en tu sistema SAP.

Resolución: Los puertos HTTP y HTTPS deben crearse y estar activos en tu sistema SAP.

Los metadatos de VM se almacenan en un servidor de metadatos, al que solo se puede acceder a través de un puerto HTTP. Por lo tanto, para acceder a los metadatos de VM, debes asegurarte de que un puerto HTTP esté activo. También debes asegurarte de que un puerto HTTPS esté activo para las llamadas a la API posteriores.

Para resolver este problema, realiza los siguientes pasos:

  1. En la GUI de SAP, ingresa el código de transacción SMICM.

  2. En la barra de menú, haz clic en Ir a > Servicios.

  3. Asegúrate de que los puertos HTTP y HTTPS estén creados y activos. Una marca de verificación verde en la columna Actv indica que los puertos HTTP y HTTPS están activos.

Para obtener información sobre la configuración de los puertos HTTP y HTTPS, consulta Configuración de HTTP(S) en ICM.

Problema: /GOOG/MSG: 403 - Request had insufficient authentication scopes

Problema: La llamada a la API falló con el mensaje de error /GOOG/MSG: 403 - Request had insufficient authentication scopes.

Causa: Para tu carga de trabajo de SAP que se ejecuta en Google Cloud, en la tabla /GOOG/CLIENT_KEY, la cuenta de servicio especificada no tiene el permiso necesario para acceder a las APIs de Google Cloud.

Resolución: Para resolver este problema, realiza los siguientes pasos:

  1. En la consola de Google Cloud, ve a la página Instancias de VM de Compute Engine.

    Ir a Instancias de VM

  2. Haz clic en la instancia de VM en la que se ejecuta tu carga de trabajo de SAP.

  3. Haz clic en Detener y sigue las instrucciones para detener la instancia de VM.

  4. Haz clic en Editar.

  5. Para la cuenta de servicio asociada, edita los Permisos de acceso para permitir el acceso completo a todas las APIs de Cloud.

  6. Haz clic en Guardar.

  7. Haz clic en Iniciar/Reanudar para reiniciar la VM.

Mensajes de error que muestran las APIs de Google Cloud

Cada stub de cliente de la API tiene los parámetros de exportación que proporcionan códigos de retorno y mensajes de error de la API.

  • ev_ret_code contiene los códigos de estado HTTP. En caso de un error que muestra una API, este parámetro contiene un valor 4XX.

  • ev_err_resp contiene la categoría de error y el mensaje de error que muestra una API.

En el siguiente ejemplo, se muestra un error que muestra la API cuando creas un tema de Pub/Sub nuevo con un nombre de tema que ya existe.

  • ERROR_TEXT: El conflicto
  • ERROR_DESCRIPTION: El recurso ya existe en el proyecto (recurso=SAMPLE_TOPIC_01)

Obtén asistencia de la comunidad

Haz tus preguntas y analiza el SDK de ABAP para Google Cloud con la comunidad en Cloud Forums.

Obtener asistencia

Si necesitas ayuda para resolver problemas con el SDK de ABAP para Google Cloud, recopila toda la información de diagnóstico disponible y comunícate con el servicio de atención al cliente de Cloud.

Si deseas obtener más información para comunicarte con el equipo de Atención al cliente de Cloud, consulta Obtén asistencia para SAP en Google Cloud.