Solução de problemas no local ou em qualquer edição na nuvem do SDK do ABAP para Google Cloud

É possível solucionar problemas no local ou em qualquer edição do SDK do ABAP para Google Cloud usando os registros de aplicativos SAP para analisar erros e mensagens.

Verificar os requisitos e os pré-requisitos do software

Verifique se todos os softwares do sistema estão sendo executados com as versões mínimas necessárias e se todos os pré-requisitos do ABAP SDK for Google Cloud foram atendidos.

Para informações sobre os pré-requisitos de instalação do SDK, consulte Antes de começar.

Leia a documentação de suporte do SAP

Se você tiver uma conta de usuário da SAP, poderá encontrar a solução para muitos problemas de software da SAP lendo os artigos SAP Notes e a base de conhecimento da SAP, disponíveis no Launchpad de suporte da SAP ONE (em inglês). de dados.

Logging

Quando a geração de registros é configurada, o SDK do ABAP para Google Cloud registra mensagens de erro nos registros de aplicativos SAP. Para mais informações sobre a geração de registros, consulte Geração de registros do aplicativo.

Para ver as mensagens de registro, siga estas etapas:

  1. Na GUI do SAP, insira o código da transação SLG1.
  2. Digite o nome do objeto de registro e o nome do subobjeto.
  3. Selecione uma data e um período válidos.
  4. Execute a transação. Todas as mensagens de registro geradas pelo SDK são exibidas.

Uma mensagem de registro geralmente consiste nas duas entradas a seguir:

  • Enter: fornece informações sobre o local do código em que ocorreu o erro. Para solucionar problemas, use esse local do código como um ponto de interrupção durante a depuração.
  • Mensagem de erro: fornece informações sobre um erro que ocorreu durante a execução de uma operação.

Depuração

Se você tiver a autorização necessária, poderá depurar as classes cliente da API.

Para depurar as classes cliente da API, use uma das seguintes opções:

  • Adicione um ponto de interrupção ao construtor da classe /GOOG/CL_HTTP_CLIENT e execute seu programa.

  • Outra opção é adicionar um ponto de interrupção ao método que você está usando e executar o programa.

HTTP Trace

Ao resolver erros, é possível ativar o trace HTTP na transação SMICM ou ST05. Para limitar o impacto no desempenho, desative o trace HTTP assim que você terminar.

Problemas comuns de configuração

/GOOG/MSG 461: Insufficient privileges for execution

Problema: o usuário não consegue realizar configurações do SDK, executar programas utilitários ou programas de demonstração.

Causa: não há autorizações para o usuário.

Resolução: identifique as autorizações ausentes necessárias para o SDK usando a transação SU53. Para receber as autorizações necessárias para seu código de usuário, entre em contato com os administradores de segurança da SAP. Para mais informações, consulte Gerenciar autorizações.

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

Problema: no sistema SAP hospedado em uma VM do Compute Engine, ao usar o método de autenticação baseado em token, você não consegue acessar as APIs do Google Cloud.

Causa: no sistema SAP hospedado em uma VM do Compute Engine, na configuração da chave do cliente, a conta de serviço especificada é criada em um projeto do Google Cloud diferente do projeto que contém o VM do host da SAP.

Resolução: para resolver esse problema, siga estas etapas:

  1. No projeto do Google Cloud que contém a VM do host da SAP, conceda à conta de serviço dessa VM o papel Service Account Token Creator. Para mais informações sobre as etapas, consulte Conceder um único papel.
  2. No projeto do Google Cloud que contém a VM do host da SAP:
    1. Crie uma conta de serviço Anote o nome da conta de serviço. Você especificará esse nome quando for adicionar a conta de serviço como princípio ao outro projeto que contém as APIs do Google Cloud. Para mais informações sobre como criar uma conta de serviço, consulte Criar uma conta de serviço.
    2. Na configuração da chave do cliente para o SDK, especifique essa conta de serviço.
  3. No outro projeto que contém as APIs do Google Cloud:
    1. Adicione a conta de serviço como princípio.
    2. Conceda papéis apropriados para se conectar às APIs do Google Cloud. Para mais informações sobre os papéis predefinidos específicos da API, consulte Referência básica e predefinida dos papéis do IAM.

Para mais informações, consulte Autenticar usando tokens para a SAP na VM do Compute Engine.

Problemas operacionais comuns

Ao consumir APIs do Google Cloud por meio dos métodos públicos de stub do cliente, os desenvolvedores podem encontrar erros e exceções. Esses erros e exceções são amplamente classificados em duas categorias:

  • Erros e exceções acionados pelo ABAP SDK for Google Cloud
  • Erros retornados pelas APIs do Google Cloud

Esta seção aborda os erros e as exceções acionadas pelo SDK. Para erros retornados por APIs, recomendamos que você verifique a documentação pública da API correspondente.

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

Problema: não é possível instanciar um objeto stub de cliente de API.

Causa: a tabela de chaves do cliente /GOOG/CLIENT_KEY não contém uma chave de cliente válida.

Resolução: na tabela de chaves do cliente /GOOG/CLIENT_KEY, mantenha uma chave de cliente válida. Ao instanciar um stub de cliente da API, transmita uma chave de cliente válida com o parâmetro de importação iv_key_name.

Configure a chave do cliente usando os detalhes específicos do seu método de autenticação. Para informações sobre métodos de autenticação e configuração da chave do cliente relacionada, consulte Autenticação.

Para informações sobre como transmitir uma chave de cliente com o parâmetro de importação iv_key_name, consulte Construtor.

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

Problema: não é possível instanciar um objeto stub de cliente de API.

Causa: um objeto de registro padrão inválido é mantido na tabela /GOOG/LOG_CONFIG ou um objeto de registro inválido é transmitido para o parâmetro de importação iv_log_object.

Resolução: verifique se há um objeto de registro válido no sistema SAP.

Para informações sobre a geração de registros, consulte Geração de registros do aplicativo.

Para informações sobre como transmitir um objeto de registro, consulte Construtor.

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

Problema: não é possível instanciar um objeto stub de cliente de API.

Causa: um subobjeto de registro padrão inválido é mantido na tabela /GOOG/LOG_CONFIG ou um subobjeto de registro inválido é transmitido para o parâmetro de importação iv_log_subobject.

Resolução: verifique se existe um subobjeto de registro válido no sistema SAP.

Para informações sobre a geração de registros, consulte Geração de registros do aplicativo.

Para mais informações sobre como transmitir um subobjeto de registro, consulte Construtor.

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

Problema: não é possível instanciar um objeto stub de cliente de API.

Causa: na tabela /GOOG/SERVIC_MAP, para a chave de cliente especificada, não há um destino de RFC no sistema SAP.

Resolução: crie os destinos RFC necessários. Para mais informações, consulte Configurar destinos RFC.

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

Problema: não foi possível se conectar a GOOGLE_API.

Causa: o problema pode ser devido a qualquer uma das seguintes causas:

  • O tipo de conexão RFC não é G - HTTP connection to external server.
  • Número do serviço 443 não está especificado.
  • O Cliente SSL padrão (Padrão) está inativo.

Resolução: para os destinos RFC obrigatórios, faça o seguinte:

  • Atualize o tipo de conexão RFC para G - HTTP connection to external server.
  • Verifique se o número do serviço é 443.
  • No campo Certificado SSL, verifique se a opção Cliente SSL DFAULT (padrão) está selecionada.
  • Para SAP no ambiente do Google Cloud, se você tiver criado um destino RFC para um servidor de metadados, verifique se o serviço no é 80.

Para informações sobre como criar destinos RFC, consulte:

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

Problema: não é possível se conectar às APIs do Google Cloud.

Causa: o sistema SAP não consegue criar objeto de cliente HTTP.

Resolução: verifique se o ICM está configurado para se comunicar por HTTP com o servidor externo. Para mais informações, consulte Validar o Gerenciador de comunicações da Internet (ICM).

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

Problema: não é possível se conectar às APIs do Google Cloud usando a classe de autorização /GOOG/CL_AUTH_API_KEY_SM do Secret Manager.

Causa: na configuração da chave do cliente, Authorization Parameter 1 ou Authorization Parameter 2 está ausente.

Resolução: na tabela de chave do cliente, atualize o Authorization Parameter 1 ou o Authorization Parameter 2 obrigatórios. Para mais informações, consulte Configurar a chave do cliente para acesso ao Secret Manager.

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

Problema: não é possível se conectar às APIs do Google Cloud usando a classe de autorização /GOOG/CL_AUTH_API_KEY_SSF do SSF.

Causa: na configuração da chave do cliente, Authorization Parameter 1 está ausente.

Resolução: na tabela de chaves do cliente, atualize o Authorization Parameter 1 obrigatório. Para mais informações, consulte Configurar chave do cliente para SSF.

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

Problema: não é possível se conectar às APIs do Google Cloud usando a configuração mantida na tabela de chaves do cliente.

Causa: Authorization Class não está correto na tabela de chaves do cliente.

Resolução: mantenha o Authorization Class correto. Para mais informações, consulte Autenticar usando token.

/GOOG/MSG: 404 - Not Found

Problema: não é possível se conectar às APIs do Google Cloud. O endpoint da API não está acessível.

Causa: os destinos RFC que o SDK usa para se conectar às APIs do Google Cloud não estão configurados corretamente. Por exemplo, um endpoint inválido é configurado em destinos RFC.

Resolução: verifique se os destinos do RFC estão configurados corretamente. Para mais informações, consulte Configurar destino RFC.

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

Problema: não é possível se conectar às APIs do Google Cloud.

Causa: as configurações do JWT e da chave da conta de serviço não estão definidas corretamente no STRUST.

Resolução: confirme se a configuração do JWT e a chave da conta de serviço estão definidas conforme explicado em Autenticação.

Bad Request invalid_grant. Invalid JWT Signature

Problema: não é possível se conectar às APIs do Google Cloud.

Causa: o arquivo de chave PSE ou P12 importado para STRUST não pertence à conta de serviço que você usou para assinar o JWT.

Resolução: importe o arquivo de chave de conta de serviço correto para STRUST. Para informações sobre como importar a chave da conta de serviço para STRUST, consulte Importar a chave da conta de serviço para STRUST.

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

Problema: a autenticação no Google Cloud falhou com a mensagem de erro /GOOG/MSG : 417 - Direct connect to googleapis.com/oauth:443 failed: NIEHOST_UNKNOWN (-2).

Causa: nos destinos RFC que o SDK do ABAP para Google Cloud usa para autenticar no Google Cloud, o host de destino não é válido.

Resolução: para resolver esse problema, siga estas etapas:

  1. Crie um destino RFC usando o destino RFC de exemplo GOOG_OAUTH2_TOKEN. Para informações sobre como criar destinos de RFC, consulte Destinos de RFC.

  2. Verifique se o destino RFC usa os seguintes valores:

    • Host: oauth2.googleapis.com
    • Prefixo do caminho: /token.
  3. Se o sistema SAP usa um proxy para se conectar à Internet, mantenha os detalhes de proxy necessários no destino RFC.

OAuth RFC HTTP Destination not maintained in /GOOG/SERVIC_MAP

Problema: não é possível se conectar às APIs do Google Cloud.

Causa: o destino do RFC para o OAuth 2.0 não está disponível na tabela de mapeamento de serviço /GOOG/SERVIC_MAP.

Resolução: atualize o destino RFC para o OAuth 2.0 na tabela de mapeamento de serviço /GOOG/SERVIC_MAP. Para saber mais sobre como especificar destinos RFC, consulte Especificar destinos RFC em /GOOG/SERVIC_MAP.

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

Problema: falha na solicitação HTTP para um método de API.

Causa: para sua carga de trabalho SAP em execução no Google Cloud, nos destinos RFC que o SDK usa para se conectar às APIs do Google Cloud para os quais a configuração é mantida na tabela /GOOG/SERVIC_MAP, o Host de destino está incorreto.

Resolução: verifique se os destinos do RFC estão configurados corretamente. Para mais informações, consulte Configurar destino RFC.

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

Problema: falha na solicitação HTTP para um método de API.

Causa: esse problema pode ser causado por problemas de conectividade.

Resolução: valide sua conexão e verifique se a rede está configurada corretamente, em execução sem erros e se não está congestionada.

Para identificar o problema de conectividade de rede, verifique o arquivo de rastreamento do ICM usando a transação SMICM. Para mais informações, consulte 2351619 - Como receber o trace do SMICM?.

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

Problema: falha na solicitação HTTP para um método de API.

Esse problema pode ser causado pelas seguintes circunstâncias:

O SSL não está ativado nos seus destinos de RFC

Causa: nos destinos da RFC que o SDK usa para se conectar às APIs do Google Cloud, a opção de segurança para usar o certificado SSL não está ativada.

Resolução: verifique se os destinos do RFC estão configurados corretamente. Para mais informações, consulte Configurar destino RFC.

Falha no handshake de SSL

Causa: quando ocorre falha no handshake de SSL entre o host do SAP e o endpoint da API do Google Cloud. Isso ocorre quando o certificado apresentado pelo servidor TLS não é válido para o nome do host de destino fornecido pelo servidor SAP, possivelmente porque o envio do lado do cliente da extensão SNI do TLS opcional não é implementado no kernel do NetWeaver.

Resolução: na transação SMICM, procure o código de retorno, SSLERR_SERVER_CERT_MISMATCH. Se você encontrar o código de retorno SSLERR_SERVER_CERT_MISMATCH, será necessário ativar o envio da extensão SNI do TLS. Além disso, verifique se o kernel do NetWeaver implementa o envio do lado do cliente da extensão SNI do TLS opcional.

Para ativar o envio de SNI da extensão TLS, defina o parâmetro de perfil icm/HTTPS/client_sni_enabled ou ssl/client_sni_enabled como TRUE, dependendo da versão do kernel do NetWeaver. Para mais informações da SAP, consulte os links a seguir:

The caller does not have permission

Problema: mesmo com a autenticação, não é possível acessar os recursos da API do Google Cloud.

Causa: você não tem permissão para visualizar o recurso da API.

Resolução: para resolver esse problema, siga estas etapas:

  1. Verifique se o recurso da API foi compartilhado com as credenciais da sua Conta do Google.
  2. Faça uma solicitação para a API e verifique a resposta.

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

Problema: não é possível acessar as APIs do Google Cloud usando as credenciais do cliente OAuth 2.0.

Causa: você está usando um ID do cliente criado em um projeto do Google Cloud para chamar uma API ativada em outro projeto do Google Cloud.

Um ID do cliente de um projeto do Google Cloud não pode ser usado para chamar APIs de outro, mesmo que ambos estejam na mesma organização.

Resolução: crie um ID do cliente no projeto do Google Cloud em que a API está ativada. Para mais informações, consulte Criar credenciais de ID do cliente OAuth 2.0.

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

Problema: não é possível acessar as APIs do Google Cloud usando as credenciais do cliente OAuth 2.0.

Causa: você está chamando uma API do Google Cloud usando um perfil OAuth 2.0 atribuído a mais de um cliente OAuth 2.0. No entanto, o nome da configuração do cliente OAuth 2.0 não está especificado no campo Authorization Parameter 2 da tabela de chaves do cliente /GOOG/CLIENT_KEY.

Resolução: para atribuir um perfil OAuth 2.0 a mais de um cliente OAuth 2.0, você precisa definir um nome de configuração exclusivo para cada cliente OAuth 2.0 e especificar o nome da configuração no Authorization Parameter 2 da tabela de chaves do cliente /GOOG/CLIENT_KEY. Para mais informações, consulte Cenário de vários projetos do Google Cloud.

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

Problema: não é possível acessar as APIs do Google Cloud usando as credenciais do cliente OAuth 2.0.

Causa: você está chamando uma API do Google Cloud usando as credenciais do cliente OAuth 2.0 sem conceder o token de atualização do OAuth 2.0 para o ID do cliente.

Resolução: solicite um token OAuth 2.0 para o ID do cliente usando as credenciais da sua Conta do Google. Para mais informações, consulte Solicitar tokens de acesso do OAuth 2.0.

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

Problema: quando você solicita tokens de acesso do OAuth 2.0, a tela Fazer login com o Google é mostrada com a mensagem de erro Access blocked: This app's request is invalid (Error 400: redirect_uri_mismatch).

Causa: o URI de redirecionamento autorizado nas credenciais do ID do cliente OAuth 2.0 está incorreto ou não é mantido.

Resolução: para resolver esse problema, siga estas etapas:

  1. No sistema SAP, insira a transação OA2C_CONFIG. A página de login do SAP é aberta no navegador padrão.
  2. Faça login com suas credenciais SAP.
  3. Selecione o ID do cliente necessário.
  4. No campo URI de redirecionamento, anote o URI de redirecionamento da SAP.
  5. No console do Google Cloud, acesse Menu  > APIs e serviços > Credenciais.

    Ir para Credenciais

  6. Selecione o ID do cliente do seu aplicativo da Web.

  7. No campo URIs de redirecionamento autorizados, insira o URI de redirecionamento do SAP.

  8. Salve as alterações.

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

Problema: não é possível acessar as APIs do Google Cloud.

Causa: a configuração da porta HTTP está ausente no sistema SAP.

Resolução: as portas HTTP e HTTPS precisam ser criadas e estar ativas no sistema SAP.

Os metadados da VM são armazenados em um servidor de metadados, que só pode ser acessado por uma porta HTTP. Portanto, para acessar os metadados da VM, verifique se uma porta HTTP está ativa. Você também precisa garantir que uma porta HTTPS esteja ativa para chamadas de API subsequentes.

Para resolver esse problema, siga estas etapas:

  1. Na GUI do SAP, insira o código da transação SMICM.

  2. Na barra de menus, clique em Ir para > Serviços.

  3. Verifique se as portas HTTP e HTTPS foram criadas e estão ativas. Uma marca de seleção verde na coluna Actv indica que as portas HTTP e HTTPS estão ativadas.

Para informações sobre como configurar as portas HTTP e HTTPS, consulte Configurações de HTTP(S) no ICM.

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

Problema: a chamada de API falhou com a mensagem de erro /GOOG/MSG: 403 - Request had insufficient authentication scopes.

Causa: para sua carga de trabalho da SAP em execução no Google Cloud, na tabela /GOOG/CLIENT_KEY, a conta de serviço especificada não tem o escopo necessário para acessar as APIs do Google Cloud.

Resolução: para resolver esse problema, siga estas etapas:

  1. No console do Google Cloud, acesse a página Instâncias de VM do Compute Engine.

    Acessar instâncias de VM

  2. Clique na instância da VM em que a carga de trabalho da SAP está em execução.

  3. Clique em Parar e siga as instruções para interromper a instância de VM.

  4. Clique em Editar.

  5. Na conta de serviço associada, edite os Escopos de acesso para permitir acesso total a todas as APIs do Cloud.

  6. Clique em Salvar.

  7. Clique em Iniciar / Retomar para reiniciar a VM.

Mensagens de erro retornadas pelas APIs do Google Cloud

Todos os stubs de cliente da API têm os parâmetros de exportação que fornecem o código de retorno da API e as mensagens de erro.

  • ev_ret_code contém os códigos de status HTTP. No caso de um erro retornado por uma API, esse parâmetro contém um valor 4XX.

  • ev_err_resp contém a categoria e a mensagem de erro retornada por uma API.

O exemplo a seguir mostra um erro retornado pela API quando você cria um novo tópico do Pub/Sub com um nome de tópico já existente.

  • ERROR_TEXT: conflito
  • ERROR_DESCRIPTION: o recurso já existe no projeto (resource=SAMPLE_TOPIC_01)

Receba suporte da comunidade

Faça suas perguntas e discuta o ABAP SDK for Google Cloud com a comunidade nos Fóruns do Cloud.

Receber suporte

Se você precisar de ajuda para resolver problemas com o ABAP SDK for Google Cloud, colete todas as informações de diagnóstico disponíveis e entre em contato com o Cloud Customer Care.

Para mais informações sobre como entrar em contato com o Cloud Customer Care, consulte Como receber suporte para a SAP no Google Cloud.