Risoluzione dei problemi delle versioni on-premise o cloud dell'SDK ABAP per Google Cloud

Puoi risolvere i problemi con le versioni on-premise o cloud dell'SDK ABAP per Google Cloud utilizzando i log delle applicazioni SAP per esaminare i messaggi di errore e di log.

Verificare i requisiti e i prerequisiti del software

Assicurati che tutto il software di sistema sia in esecuzione con le versioni minime richieste e che siano stati soddisfatti tutti i prerequisiti dell'SDK ABAP per Google Cloud.

Per informazioni sui prerequisiti di installazione dell'SDK, consulta Prima di iniziare.

Leggi la documentazione di assistenza SAP

Se disponi di un account utente SAP, puoi trovare la soluzione a molti problemi relativi al software SAP leggendo le note su SAP e gli articoli della knowledge base SAP disponibili in SAP ONE Support Launchpad.

Logging

Quando il logging è configurato, l'SDK ABAP per Google Cloud registra i messaggi di errore nei log delle applicazioni SAP. Per maggiori informazioni sul logging, vedi Logging dell'applicazione.

Per visualizzare i messaggi di log:

  1. Nella GUI di SAP, inserisci il codice della transazione SLG1.
  2. Inserisci il nome dell'oggetto log e quello dell'oggetto secondario.
  3. Seleziona un intervallo di date e ore valido.
  4. Esegui la transazione. Vengono visualizzati tutti i messaggi di log generati dall'SDK.

In genere un messaggio di log è costituito dalle due voci seguenti:

  • Inserendo: fornisce informazioni sulla posizione del codice in cui si è verificato esattamente l'errore. Per la risoluzione dei problemi, puoi utilizzare questa posizione del codice come punto di interruzione durante il debug.
  • Messaggio di errore: fornisce informazioni su un errore che si è verificato durante l'esecuzione di un'operazione.

Debug

Se disponi dell'autorizzazione richiesta, puoi eseguire il debug delle classi del client API.

Per eseguire il debug delle classi del client API, utilizza una delle seguenti opzioni:

  • Aggiungi un punto di interruzione al costruttore della classe /GOOG/CL_HTTP_CLIENT, quindi esegui il programma.

  • Oppure, aggiungi un punto di interruzione al metodo che stai utilizzando ed esegui il programma.

Traccia HTTP

Durante la risoluzione degli errori, puoi abilitare la traccia HTTP nella transazione SMICM o ST05. Per limitare l'impatto sulle prestazioni, disabilita la traccia HTTP non appena hai finito.

Problemi di configurazione comuni

/GOOG/MSG 461: Insufficient privileges for execution

Problema: l'utente non è in grado di eseguire configurazioni dell'SDK, eseguire programmi di utilità o programmi dimostrativi.

Causa: autorizzazioni mancanti per l'utente.

Soluzione: identifica le autorizzazioni mancanti necessarie per l'SDK utilizzando la transazione SU53. Per ottenere le autorizzazioni richieste per il tuo ID utente, contatta gli amministratori della sicurezza SAP. Per maggiori informazioni, consulta Gestire le autorizzazioni.

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

Problema: per il sistema SAP ospitato su una VM di Compute Engine, quando utilizzi il metodo di autenticazione basato su token non puoi accedere alle API di Google Cloud.

Causa: per il sistema SAP ospitato su una VM di Compute Engine, nella configurazione della chiave client l'account di servizio specificato viene creato in un progetto Google Cloud diverso da quello contenente la VM host SAP.

Soluzione:per risolvere il problema, procedi nel seguente modo:

  1. Nel progetto Google Cloud che contiene la VM host SAP, concedi all'account di servizio della VM host il ruolo Service Account Token Creator. Per ulteriori informazioni sui passaggi, vedi Concedere un singolo ruolo.
  2. Nel progetto Google Cloud che contiene la VM host SAP:
    1. Crea un account di servizio. Prendi nota del nome dell'account di servizio. Puoi specificare questo nome quando aggiungi l'account di servizio come principio all'altro progetto che contiene le API Google Cloud. Per informazioni su come creare un account di servizio, vedi Creare un account di servizio.
    2. Nella configurazione della chiave client per l'SDK, specifica questo account di servizio.
  3. Nell'altro progetto che contiene le API Google Cloud:
    1. Aggiungi l'account di servizio come principio.
    2. Concedi i ruoli appropriati per connetterti alle API Google Cloud. Per ulteriori informazioni sui ruoli predefiniti specifici per le API, consulta Riferimento ai ruoli IAM di base e predefiniti.

Per maggiori informazioni, consulta Eseguire l'autenticazione utilizzando i token per SAP sulla VM di Compute Engine.

Problemi operativi comuni

Durante l'utilizzo delle API Google Cloud con i metodi pubblici dello stub del client, gli sviluppatori potrebbero riscontrare errori ed eccezioni. Questi errori e queste eccezioni sono generalmente classificati in due categorie:

  • Errori ed eccezioni attivati dall'SDK ABAP per Google Cloud
  • Errori restituiti dalle API Google Cloud

Questa sezione riguarda gli errori e le eccezioni attivati dall'SDK. Per gli errori restituiti dalle API, ti consigliamo di consultare la documentazione pubblica dell'API corrispondente.

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

Problema: non è possibile creare un'istanza di un oggetto stub del client API.

Causa: la tabella delle chiavi client /GOOG/CLIENT_KEY non contiene una chiave client valida.

Soluzione: nella tabella delle chiavi client /GOOG/CLIENT_KEY, mantieni una chiave client valida. Quando crei un'istanza di uno stub del client API, passa una chiave client valida con il parametro di importazione iv_key_name.

Puoi configurare la chiave client utilizzando i dettagli specifici del metodo di autenticazione. Per informazioni sui metodi di autenticazione e sulla relativa configurazione della chiave client, consulta Autenticazione.

Per informazioni su come passare una chiave client con il parametro di importazione iv_key_name, consulta Buildor.

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

Problema: non è possibile creare un'istanza di un oggetto stub del client API.

Causa: nella tabella viene mantenuto un oggetto log predefinito non valido /GOOG/LOG_CONFIG oppure un oggetto log non valido viene passato al parametro di importazione iv_log_object.

Soluzione: assicurati che nel sistema SAP sia presente un oggetto log valido.

Per informazioni sul logging, vedi Logging dell'applicazione.

Per informazioni su come passare un oggetto log, consulta Generatore.

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

Problema: non è possibile creare un'istanza di un oggetto stub del client API.

Causa: nella tabella viene mantenuto un oggetto secondario di log predefinito non valido /GOOG/LOG_CONFIG oppure un oggetto secondario di log non valido viene passato al parametro di importazione iv_log_subobject.

Soluzione: assicurati che nel sistema SAP esista un oggetto secondario di log valido.

Per informazioni sul logging, vedi Logging dell'applicazione.

Per informazioni su come passare un oggetto secondario di log, consulta Generatore.

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

Problema: non è possibile creare un'istanza di un oggetto stub del client API.

Causa: nella tabella /GOOG/SERVIC_MAP, per la chiave client specificata, non esiste una destinazione RFC nel sistema SAP.

Soluzione:crea le destinazioni RFC richieste. Per ulteriori informazioni, consulta Configurare le destinazioni RFC.

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

Problema: non riesci a connetterti a GOOGLE_API.

Causa: questo problema può essere dovuto a una delle seguenti cause:

  • Il tipo di connessione RFC non è G - HTTP connection to external server.
  • Il numero di servizio 443 non è specificato.
  • Il client SSL predefinito (standard) non è attivo.

Soluzione:per le destinazioni RFC richieste, segui questi passaggi:

  • Aggiorna il tipo di connessione RFC in G - HTTP connection to external server.
  • Assicurati che il n. di servizio sia 443.
  • Per il campo Certificato SSL, assicurati che sia selezionata l'opzione Client SSL DCM (Standard).
  • Per l'ambiente SAP su Google Cloud, se hai creato una destinazione RFC per un server di metadati, assicurati che il n. di servizio sia 80.

Per informazioni su come creare destinazioni RFC, vedi:

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

Problema: non riesci a connetterti alle API Google Cloud.

Causa: il sistema SAP non è in grado di creare un oggetto client HTTP.

Soluzione: assicurati che il sistema ICM sia configurato per comunicare tramite HTTP con un server esterno. Per ulteriori informazioni, consulta la sezione Convalidare Internet Communication Manager (ICM).

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

Problema: non riesci a connetterti alle API di Google Cloud utilizzando la classe di autorizzazione di Secret Manager /GOOG/CL_AUTH_API_KEY_SM.

Causa: nella configurazione della chiave client, Authorization Parameter 1 o Authorization Parameter 2 non è presente.

Soluzione Nella tabella delle chiavi client, aggiorna i valori Authorization Parameter 1 o Authorization Parameter 2 richiesti. Per saperne di più, consulta Configurare la chiave client per l'accesso a Secret Manager.

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

Problema: non riesci a connetterti alle API Google Cloud utilizzando la classe di autorizzazione CSS /GOOG/CL_AUTH_API_KEY_SSF.

Causa: nella configurazione della chiave client manca Authorization Parameter 1.

Soluzione Nella tabella delle chiavi client, aggiorna il valore Authorization Parameter 1 richiesto. Per ulteriori informazioni, consulta Configurare la chiave client per SSF.

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

Problema: non è possibile connettersi alle API Google Cloud utilizzando la configurazione mantenuta nella tabella delle chiavi client.

Causa: il valore Authorization Class non è corretto nella tabella delle chiavi client.

Soluzione: mantieni sempre il Authorization Class corretto. Per maggiori informazioni, consulta Autenticazione tramite token.

/GOOG/MSG: 404 - Not Found

Problema: non è possibile connettersi alle API Google Cloud. L'endpoint API non è raggiungibile.

Causa: le destinazioni RFC utilizzate dall'SDK per connettersi alle API Google Cloud non sono configurate correttamente. Ad esempio, se nelle destinazioni RFC viene configurato un endpoint non valido.

Soluzione: controlla se le destinazioni RFC sono configurate correttamente. Per ulteriori informazioni, vedi Configurare la destinazione RFC.

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

Problema: non è possibile connettersi alle API Google Cloud.

Causa: la configurazione JWT e le impostazioni della chiave dell'account di servizio non sono configurate correttamente in STRUST.

Risoluzione: verifica che la configurazione JWT e la chiave dell'account di servizio siano configurate come spiegato in Autenticazione.

Bad Request invalid_grant. Invalid JWT Signature

Problema: non è possibile connettersi alle API Google Cloud.

Causa: il file della chiave PSE o P12 importato in STRUST non appartiene all'account di servizio utilizzato per firmare il JWT.

Soluzione: assicurati di importare il file di chiavi dell'account di servizio corretto in STRUST. Per informazioni sull'importazione della chiave dell'account di servizio in STRUST, consulta Importare la chiave dell'account di servizio in STRUST.

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

Problema: l'autenticazione su Google Cloud non è riuscita e viene visualizzato il messaggio di errore /GOOG/MSG : 417 - Direct connect to googleapis.com/oauth:443 failed: NIEHOST_UNKNOWN (-2).

Causa:nelle destinazioni RFC utilizzate dall'SDK ABAP per Google Cloud per l'autenticazione in Google Cloud, l'host di destinazione non è valido.

Soluzione: per risolvere il problema, completa i seguenti passaggi:

  1. Crea una destinazione RFC utilizzando la destinazione RFC di esempio GOOG_OAUTH2_TOKEN. Per informazioni sulla creazione di destinazioni RFC, vedi Destinazioni RFC.

  2. Assicurati che la destinazione RFC utilizzi i seguenti valori:

    • Organizzatore: oauth2.googleapis.com
    • Prefisso del percorso: /token.
  3. Se il sistema SAP utilizza un proxy per connettersi a internet, mantieni i dettagli del proxy richiesti nella destinazione RFC.

OAuth RFC HTTP Destination not maintained in /GOOG/SERVIC_MAP

Problema: non è possibile connettersi alle API Google Cloud.

Causa: la destinazione RFC per OAuth 2.0 non è disponibile nella tabella di mappatura dei servizi /GOOG/SERVIC_MAP.

Soluzione: aggiorna la destinazione RFC per OAuth 2.0 nella tabella di mappatura dei servizi /GOOG/SERVIC_MAP. Per informazioni su come specificare le destinazioni RFC, vedi Specificare le destinazioni RFC in /GOOG/SERVIC_MAP.

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

Problema: la richiesta HTTP a un metodo API non è riuscita.

Causa: per il carico di lavoro SAP in esecuzione su Google Cloud, nelle destinazioni RFC utilizzate dall'SDK per la connessione alle API Google Cloud per cui la configurazione è mantenuta nella tabella /GOOG/SERVIC_MAP, il valore del campo Host di destinazione non è corretto.

Soluzione:controlla se le destinazioni RFC sono configurate correttamente. Per ulteriori informazioni, vedi Configurare la destinazione RFC.

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

Problema: la richiesta HTTP a un metodo API non è riuscita.

Causa: questo problema può essere causato da problemi di connettività.

Soluzione: convalida la connessione e assicurati che la rete sia configurata correttamente, che sia in esecuzione senza errori e che non sia congestionata.

Per identificare il problema di connettività di rete, controlla il file di traccia ICM utilizzando la transazione SMICM. Per ulteriori informazioni, vedi 2351619 - Come utilizzare la traccia SMICM?.

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

Problema: la richiesta HTTP a un metodo API non è riuscita.

Questo problema può essere causato dalle seguenti circostanze:

SSL non attivato nelle destinazioni RFC

Causa: nelle destinazioni RFC utilizzate dall'SDK per connettersi alle API Google Cloud, l'opzione di sicurezza per l'utilizzo del certificato SSL non è attivata.

Soluzione:controlla se le destinazioni RFC sono configurate correttamente. Per ulteriori informazioni, vedi Configurare la destinazione RFC.

handshake SSL non riuscito

Causa:quando l'handshake SSL tra l'host SAP e l'endpoint API di Google Cloud non è andato a buon fine. Questo si verifica quando il certificato presentato dal server TLS non è valido per il nome host di destinazione fornito dal server SAP, probabilmente perché l'invio lato client dell'estensione TLS facoltativa SNI non è implementato sul kernel NetWeaver.

Soluzione: nella transazione SMICM, cerca il codice di reso SSLERR_SERVER_CERT_MISMATCH. Se trovi il codice restituito SSLERR_SERVER_CERT_MISMATCH, devi abilitare l'invio dell'estensione TLS SNI. Inoltre, assicurati che il kernel NetWeaver implementi l'invio lato client dell'estensione TLS facoltativa SNI.

Per abilitare l'invio dell'estensione TLS SNI, imposta il parametro del profilo icm/HTTPS/client_sni_enabled o ssl/client_sni_enabled su TRUE, a seconda della versione del kernel NetWeaver. Per ulteriori informazioni da SAP, vedi:

The caller does not have permission

Problema: anche se l'autenticazione è andata a buon fine, non puoi accedere alle risorse dell'API Google Cloud.

Causa: non hai l'autorizzazione per visualizzare la risorsa API.

Soluzione: per risolvere il problema, completa i seguenti passaggi:

  1. Assicurati che la risorsa API sia condivisa con le credenziali del tuo Account Google.
  2. Effettua una richiesta all'API e controlla la risposta.

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

Problema: non puoi accedere alle API Google Cloud utilizzando le credenziali del client OAuth 2.0.

Causa: stai utilizzando un ID client creato in un progetto Google Cloud per chiamare un'API abilitata in un altro progetto Google Cloud.

Non è possibile utilizzare un ID client di un progetto Google Cloud per chiamare le API da un altro progetto, anche se si trovano entrambi nella stessa organizzazione.

Soluzione: crea un ID client nel progetto Google Cloud in cui è abilitata l'API. Per maggiori informazioni, vedi Creare credenziali con ID client OAuth 2.0.

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

Problema: non puoi accedere alle API Google Cloud utilizzando le credenziali del client OAuth 2.0.

Causa: stai chiamando un'API Google Cloud utilizzando un profilo OAuth 2.0 assegnato a più di un client OAuth 2.0. Tuttavia, il nome della configurazione client OAuth 2.0 non è specificato nel campo Authorization Parameter 2 della tabella delle chiavi client /GOOG/CLIENT_KEY.

Soluzione: per assegnare un profilo OAuth 2.0 a più di un client OAuth 2.0, devi definire un nome di configurazione univoco per ciascun client OAuth 2.0 e specificare il nome di configurazione nel campo Authorization Parameter 2 della tabella delle chiavi client /GOOG/CLIENT_KEY. Per saperne di più, vedi Scenario con più progetti Google Cloud.

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

Problema: non puoi accedere alle API Google Cloud utilizzando le credenziali del client OAuth 2.0.

Causa: chiami un'API Google Cloud utilizzando le credenziali client OAuth 2.0 senza concedere il token di aggiornamento OAuth 2.0 per l'ID client.

Soluzione: richiedi un token OAuth 2.0 per l'ID client utilizzando le credenziali del tuo Account Google. Per maggiori informazioni, consulta la pagina Richiedere i token di accesso OAuth 2.0.

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

Problema: quando richiedi i token di accesso OAuth 2.0, viene visualizzata la schermata Accedi con Google con il messaggio di errore Access blocked: This app's request is invalid (Error 400: redirect_uri_mismatch).

Causa: l'URI di reindirizzamento autorizzato nelle credenziali dell'ID client OAuth 2.0 è errato o non è gestito.

Soluzione: per risolvere il problema, completa i seguenti passaggi:

  1. Nel sistema SAP, inserisci il codice transazione OA2C_CONFIG. La pagina di accesso SAP si apre nel browser predefinito.
  2. Accedi con le tue credenziali SAP.
  3. Seleziona l'ID client richiesto.
  4. Prendi nota dell'URI di reindirizzamento SAP nel campo Redirection URI (URI di reindirizzamento).
  5. Nella console Google Cloud, vai a Menu  > API e servizi > Credenziali.

    Vai a credenziali

  6. Seleziona l'ID client della tua applicazione web.

  7. Nel campo URI di reindirizzamento autorizzati, inserisci l'URI di reindirizzamento SAP.

  8. Salva le modifiche.

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

Problema: non riesci ad accedere alle API Google Cloud.

Causa: la configurazione della porta HTTP non è presente nel sistema SAP.

Soluzione: le porte HTTP e HTTPS devono essere create ed essere attive nel sistema SAP.

I metadati della VM vengono archiviati su un server di metadati, a cui è possibile accedere solo tramite una porta HTTP. Pertanto, per accedere ai metadati della VM, devi assicurarti che sia attiva una porta HTTP. Devi inoltre assicurarti che una porta HTTPS sia attiva per le chiamate API successive.

Per risolvere il problema, completa i seguenti passaggi:

  1. Nella GUI di SAP, inserisci il codice della transazione SMICM.

  2. Nella barra dei menu, fai clic su Vai a > Servizi.

  3. Assicurati che le porte HTTP e HTTPS siano create e attive. Un segno di spunta verde nella colonna Actv indica che le porte HTTP e HTTPS sono attive.

Per informazioni sulla configurazione delle porte HTTP e HTTPS, consulta l'articolo sulle impostazioni HTTP(S) in ICM.

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

Problema: chiamata API non riuscita con messaggio di errore /GOOG/MSG: 403 - Request had insufficient authentication scopes.

Causa: per il carico di lavoro SAP in esecuzione su Google Cloud, nella tabella /GOOG/CLIENT_KEY, l'account di servizio specificato non dispone dell'ambito richiesto per accedere alle API Google Cloud.

Soluzione: per risolvere il problema, completa i seguenti passaggi:

  1. Nella console Google Cloud, vai alla pagina Istanze VM di Compute Engine.

    Vai a Istanze VM

  2. Fai clic sull'istanza VM su cui è in esecuzione il carico di lavoro SAP.

  3. Fai clic su Arresta, quindi segui le istruzioni per arrestare l'istanza VM.

  4. Fai clic su Modifica.

  5. Per l'account di servizio associato, modifica la sezione Ambiti di accesso per consentire l'accesso completo a tutte le API Cloud.

  6. Fai clic su Salva.

  7. Fai clic su Avvia / Riprendi per riavviare l'istanza VM.

Messaggi di errore restituiti dalle API Google Cloud

Ogni stub del client API include i parametri di esportazione che forniscono il codice restituito e i messaggi di errore dell'API.

  • ev_ret_code contiene i codici di stato HTTP. Nel caso di un errore restituito da un'API, questo parametro contiene il valore 4XX.

  • ev_err_resp contiene la categoria e il messaggio di errore restituiti da un'API.

L'esempio seguente mostra un'API che ha restituito un errore quando crei un nuovo argomento Pub/Sub con un nome di argomento già esistente.

  • ERROR_TEXT: conflitto
  • ERROR_DESCRIPTION: la risorsa esiste già nel progetto (resource=SAMPLE_TOPIC_01)

Ricevi assistenza dalla community

Poni le tue domande e discuti dell'SDK ABAP per Google Cloud con la community dei forum di Cloud.

Richiedi assistenza

Se hai bisogno di aiuto per risolvere problemi con l'SDK ABAP per Google Cloud, raccogli tutte le informazioni di diagnostica disponibili e contatta l'assistenza clienti Google Cloud.

Per ulteriori informazioni su come contattare l'assistenza clienti Google Cloud, consulta Ottenere assistenza per SAP su Google Cloud.