Risoluzione dei problemi dell'edizione on-premise o di qualsiasi edizione cloud dell'SDK ABAP per Google Cloud

Puoi risolvere i problemi relativi all'edizione on-premise o a qualsiasi edizione cloud di ABAP SDK 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 degli SDK, consulta Prima di iniziare.

Leggi la documentazione di assistenza SAP

Se hai 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 di SAP disponibili nel lancio dell'assistenza SAP ONE.

Logging

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

Per visualizzare i messaggi di log:

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

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

  • In entrata: 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 client API, utilizza una delle seguenti opzioni:

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

  • In alternativa, aggiungi un punto di interruzione al metodo in uso, quindi esegui il programma.

Traccia HTTP

Durante la risoluzione degli errori, puoi attivare 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 di SDK, eseguire programmi di utilità o programmi demo.

Causa:mancano le autorizzazioni per l'utente.

Risoluzione: 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 ulteriori informazioni, vedi 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 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 che contiene la VM host SAP.

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

  1. Nel progetto Google Cloud che contiene la tua VM host SAP, concedi il ruolo Service Account Token Creator all'account di servizio della VM host. Per saperne di più 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. Questo nome viene specificato 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 contenente le API Google Cloud:
    1. Aggiungi l'account di servizio come principio.
    2. Concedi i ruoli appropriati per la connessione alle API Google Cloud. Per ulteriori informazioni sui ruoli predefiniti specifici per le API, consulta la pagina Riferimento ai ruoli predefiniti e di base IAM.

Per saperne di più, consulta Autenticazione tramite token per SAP su VM di Compute Engine.

Problemi operativi comuni

Quando utilizzano le API Google Cloud tramite i metodi pubblici di stub client, gli sviluppatori potrebbero riscontrare errori ed eccezioni. Questi errori e le 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 illustra gli errori e le eccezioni attivate dall'SDK. Per gli errori restituiti dalle API, ti consigliamo di controllare 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 l'istanza di uno stub client API, trasmetti una chiave client valida con il parametro di importazione iv_key_name.

Puoi configurare la chiave client utilizzando i dettagli specifici del tuo 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 Costruttore.

/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 conservato un oggetto di log predefinito non valido /GOOG/LOG_CONFIG oppure viene passato un oggetto di log non valido al parametro di importazione iv_log_object.

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

Per informazioni sul logging, consulta Logging applicazione.

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

/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 conservato un sottooggetto di log predefinito non valido /GOOG/LOG_CONFIG oppure viene trasmesso un sottooggetto di log non valido al parametro di importazione iv_log_subobject.

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

Per informazioni sul logging, consulta Logging applicazione.

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

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

Risoluzione: 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 a G - HTTP connection to external server.
  • Assicurati che il numero di servizio sia 443.
  • Per il campo Certificato SSL, assicurati che sia selezionata l'opzione Client SSL CampaignULT (Standard).
  • Per l'ambiente SAP su Google Cloud, se hai creato una destinazione RFC per un server di metadati, assicurati che il numero del 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.

Risoluzione: assicurati che il tuo ICM sia configurato per comunicare tramite HTTP con il server esterno. Per ulteriori informazioni, consulta 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 Google Cloud utilizzando la classe di autorizzazione di Secret Manager /GOOG/CL_AUTH_API_KEY_SM.

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

Soluzione Nella tabella delle chiavi client, aggiorna i valori Authorization Parameter 1 o Authorization Parameter 2 richiesti. Per maggiori informazioni, 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 SSF /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 riesci a connetterti alle API Google Cloud utilizzando la configurazione mantenuta nella tabella delle chiavi client.

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

Risoluzione: mantieni lo Authorization Class corretto. Per maggiori informazioni, consulta Autenticazione tramite token.

/GOOG/MSG: 404 - Not Found

Problema:non riesci a connetterti alle API Google Cloud. L'endpoint API non è raggiungibile.

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

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

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

Problema:non riesci a connetterti alle API Google Cloud.

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

Soluzione: 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 riesci a connetterti 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 delle 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 a Google Cloud non è riuscita a causa del 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 eseguire l'autenticazione in Google Cloud, l'host di destinazione non è valido.

Soluzione:per risolvere il problema, completa la procedura seguente:

  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 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 riesci a connetterti 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 sulla specifica delle destinazioni RFC, consulta Specifica delle destinazioni RFC in /GOOG/SERVIC_MAP.

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

Problema: 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 le quali la configurazione viene mantenuta nella tabella /GOOG/SERVIC_MAP, il valore del campo Host di destinazione non è corretto.

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

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

Problema: 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, venga eseguita senza errori e 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 acquisire la traccia SMICM?.

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

Problema: 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 che l'SDK utilizza per connettersi alle API Google Cloud, l'opzione di sicurezza per l'utilizzo del certificato SSL non è attivata.

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

handshake SSL non riuscito

Causa:quando l'handshake SSL non è riuscito tra l'host SAP e l'endpoint API di Google Cloud. 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 restituito, SSLERR_SERVER_CERT_MISMATCH. Se trovi il codice restituito SSLERR_SERVER_CERT_MISMATCH, devi abilitare l'invio dell'SNI dell'estensione TLS. Inoltre, assicurati che il kernel NetWeaver implementi l'invio lato client dell'estensione TLS facoltativa SNI.

Per abilitare l'invio dell'SNI dell'estensione TLS, 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 maggiori informazioni da SAP, consulta:

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 la procedura seguente:

  1. Assicurati che la risorsa API sia condivisa con le credenziali del tuo Account Google.
  2. Invia 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 client OAuth 2.0.

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

L'ID client di un progetto Google Cloud non può essere utilizzato per chiamare le API di un altro progetto, anche se si trovano entrambe nella stessa organizzazione.

Risoluzione: crea un ID client nel progetto Google Cloud in cui è abilitata l'API. Per ulteriori informazioni, consulta Creare credenziali dell'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 client OAuth 2.0.

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

Risoluzione: per assegnare un profilo OAuth 2.0 a più client OAuth 2.0, devi definire un nome di configurazione univoco per ogni client OAuth 2.0 e specificare il nome della configurazione nel campo Authorization Parameter 2 della tabella delle chiavi client /GOOG/CLIENT_KEY. Per saperne di più, consulta l'articolo 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 client OAuth 2.0.

Causa:stai chiamando 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 ulteriori informazioni, consulta Richiedere 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 viene mantenuto.

Soluzione:per risolvere il problema, completa la procedura seguente:

  1. Nel tuo 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. Nel campo URI di reindirizzamento, prendi nota dell'URI di reindirizzamento SAP.
  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 tuo sistema SAP.

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

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

Per risolvere il problema, completa la seguente procedura:

  1. Nella GUI di SAP, inserisci il codice 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 la sezione Impostazioni HTTP(S) in ICM.

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

Problema: la chiamata API non è riuscita con il 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 ha l'ambito richiesto per accedere alle API Google Cloud.

Soluzione:per risolvere il problema, completa la procedura seguente:

  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 e segui le istruzioni per arrestare l'istanza VM.

  4. Fai clic su Modifica.

  5. Per l'account di servizio associato, modifica gli 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 client API dispone dei parametri di esportazione che forniscono il codice di ritorno dell'API e i messaggi di errore.

  • ev_ret_code contiene i codici di stato HTTP. In caso di 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 che un'API ha restituito un errore quando crei un nuovo argomento Pub/Sub con un nome 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 l'SDK ABAP per Google Cloud con la community sui forum 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 Assistenza per SAP su Google Cloud.