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 funzioni al minimo richiesto e che tutti i prerequisiti dell'SDK ABAP per Google Cloud siano stati soddisfatti.

Per informazioni sui prerequisiti di installazione dell'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 SAP disponibili nel 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 ulteriori informazioni sul logging, consulta Logging delle applicazioni.

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 esattamente il si è verificato un 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 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, ed esegui il programma.

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

Traccia HTTP

Durante la risoluzione degli errori, puoi abilitare la traccia HTTP in 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 che sono obbligatoria per l'SDK che utilizza 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 tuo sistema SAP ospitato su una VM di Compute Engine, quando utilizzare il metodo di autenticazione basato su token, non potrai accedere le API Google Cloud.

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

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

  1. Nel progetto Google Cloud che contiene la VM dell'host SAP, concedi la classe dell'account di servizio della VM host, 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. Tu specifichi questo nome quando aggiungi l'account di servizio come principio all'altro contenente 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 dell'API, consulta Riferimento per i 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

Quando si utilizzano le API di Google Cloud con i metodi pubblici dello stub del client, gli sviluppatori potrebbero riscontrare errori ed eccezioni. Questi errori e queste eccezioni sono classificati in due categorie generali:

  • 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 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 una chiave client valida.

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

Puoi configurare la chiave client utilizzando i dettagli specifici della tua autenticazione . Per informazioni sui metodi di autenticazione e sul client correlato configurazione delle chiavi, consulta Autenticazione.

Per informazioni su come passare una chiave client con di importazione del parametro 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 mantenuto un oggetto di 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 structor (costruttore).

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

/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 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.
  • N. 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 è 443.
  • Per il campo Certificato SSL, assicurati che l'opzione L'opzione Client SSLDFAULT (standard) è selezionata.
  • Per l'ambiente SAP su Google Cloud, se hai creato una destinazione RFC per un server metadati, accertati che il servizio n. è 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 sistema ICM sia configurato su comunicano 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 è possibile connettersi alle API Google Cloud utilizzando 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 mancante.

Soluzione Nella tabella delle chiavi client, aggiorna il valore Authorization Parameter 1 o Authorization Parameter 2. 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 è possibile connettersi alle API Google Cloud utilizzando Classe di autorizzazione SSF /GOOG/CL_AUTH_API_KEY_SSF.

Causa: nella configurazione della chiave client, Authorization Parameter 1 mancante.

Soluzione Nella tabella delle chiavi client, aggiorna il valore Authorization Parameter 1. 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: 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'API non è raggiungibile.

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

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: le impostazioni della configurazione JWT e della chiave dell'account di servizio non sono configurato correttamente in STRUST.

Soluzione: conferma che la configurazione JWT e la chiave dell'account di servizio sono configurate come spiegato in Autenticazione.

Bad Request invalid_grant. Invalid JWT Signature

Problema: non è possibile connettersi alle API Google Cloud.

Causa: il file di chiave PSE o P12 importato in STRUST non appartiene al l'account di servizio che hai utilizzato per firmare il JWT.

Soluzione: assicurati di importare la chiave dell'account di servizio corretta 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 autenticarsi 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, quindi conservi 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 nel mapping del servizio tabella /GOOG/SERVIC_MAP. Per informazioni su per 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, nella Destinazioni RFC utilizzate dall'SDK per la connessione alle API Google Cloud la cui 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 impostata. correttamente, è in esecuzione senza errori e non è congestionata.

Per identificare il problema di connettività di rete, controlla il file di traccia ICM utilizzando 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 che che l'SDK utilizza 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 non è riuscito tra l'host SAP e l'endpoint API di Google Cloud. Ciò si verifica quando il certificato presentato dal server TLS non è valido per il nome host di destinazione forniti dal server SAP, probabilmente perché l'invio lato client l'estensione TLS facoltativa SNI non è implementata nel kernel NetWeaver.

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

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

The caller does not have permission

Problema. Anche se l'autenticazione è avvenuta correttamente, 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 è possibile accedere alle API Google Cloud utilizzando la Credenziali 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 usare un ID client di un progetto Google Cloud per chiamare le API da in un altro progetto, anche se si trovano entrambi nella stessa organizzazione.

Soluzione: creare un ID client nel progetto Google Cloud in cui l'API è abilitata. 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 è possibile accedere alle API Google Cloud utilizzando la Credenziali client OAuth 2.0.

Causa: stai chiamando un'API Google Cloud Uso di un profilo OAuth 2.0 assegnato a più di un client OAuth 2.0. Tuttavia, il nome della configurazione del client OAuth 2.0 non è specificato nella 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 ogni client OAuth 2.0 e specifica il nome della 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 è possibile accedere alle API Google Cloud utilizzando la Credenziali client OAuth 2.0.

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

Soluzione:richiedere un token OAuth 2.0 per l'ID client utilizzando le credenziali del tuo Account Google. Per ulteriori informazioni consulta l'articolo 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, la pagina 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 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 sul Sistema SAP.

I metadati della VM viene archiviata su un server metadati accessibile solo attraverso una porta HTTP. Pertanto, per accedere ai metadati della VM, devi assicurarti sia attiva una porta HTTP. Devi inoltre assicurarti che sia attiva una porta HTTPS 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 /GOOG/CLIENT_KEY, l'account di servizio specificato non ha per accedere alle API Google Cloud.

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

  1. Nella console Google Cloud, vai alla VM di Compute Engine 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 e 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 restituiscono l'API. il codice e i messaggi di errore.

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

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

L'esempio seguente mostra un errore restituito da API quando crei una nuova Argomento Pub/Sub con un nome 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 attivo Forum di Cloud.

Assistenza

Se hai bisogno di aiuto per risolvere problemi relativi SDK ABAP per Google Cloud, quindi 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 Ricevere assistenza. per SAP su Google Cloud.