Conectar ao SAP de fluxos de trabalho em Aplicativos Lógicos do Azure

Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Standard)

Este guia de instruções de várias partes mostra como acessar o servidor SAP por meio de um fluxo de trabalho nos Aplicativos Lógicos do Azure usando o conector do SAP. Em seguida, você pode usar as operações do conector do SAP para criar fluxos de trabalho automatizados que são executados quando disparados por eventos no seu servidor SAP ou em outros sistemas e executar ações para gerenciar recursos no servidor SAP.

Os fluxos de trabalho padrão e de consumo do aplicativo lógico oferecem o conector SAP gerenciado, que é hospedado e executado no Azure multilocatário. Os fluxos de trabalho Standard também oferecem o conector SAP interno que é hospedado e executado nos Aplicativos Lógicos do Azure de locatário único. Se você criar e hospedar um fluxo de trabalho de Consumo em um ISE (ambiente de serviço de integração), também poderá usar a versão nativa do ISE do conector do SAP. Para obter mais informações, consulte Referência técnica do conector.

Compatibilidade com SAP

O conector SAP é compatível com os seguintes tipos de sistemas SAP:

  • Sistemas SAP baseados no HANA locais e baseados em nuvem, como S/4 HANA.

  • Sistemas SAP locais clássicos, como R/3 e ECC.

O SAP deve dar suporte à versão do sistema SAP que você deseja conectar. Caso contrário, os problemas que você vier a encontrar poderão não ser resolvidos. Para mais informações sobre versões do sistema SAP e informações de manutenção, confira PAM (Matriz de Disponibilidade de Produtos) do SAP.

O conector SAP dá suporte à mensagem e aos seguintes tipos de integração de dados de sistemas baseados no SAP NetWeaver:

  • IDoc (documento intermediário)

  • BAPI (interface de programação de aplicativo de negócios)

  • RFC (chamada de função remota) e RFC transacional (tRFC)

O conector do SAP usa a biblioteca do NCo (Conector do .NET) do SAP.

Para usar as operações do conector do SAP, você precisa primeiro autenticar sua conexão e ter as seguintes opções:

Você pode usar o SNC para SSO (logon único) do SAP NetWeaver ou para recursos de segurança de produtos externos. Ao usar o SNC, veja os pré-requisitos do SNC e os pré-requisitos do SNC para o conector de ISE.

Referência técnica do conector

O conector do SAP tem versões diferentes, com base no tipo de aplicativo lógico e no ambiente do host.

Aplicativo lógico Ambiente Versão do conector
Consumo Aplicativos Lógicos Multilocatários do Azure Conector gerenciado, que é exibido no designer sob o rótulo Enterprise. Para saber mais, consulte a seguinte documentação:

- Referência do conector gerenciado do SAP
- Conectores gerenciados em Aplicativos Lógicos do Azure
Consumo Ambiente do serviço de integração (ISE) O conector gerenciado, que é exibido no designer sob o rótulo Corporativo, e a versão nativa de ISE, que é exibida no designer com o rótulo ISE e tem limites de mensagens diferentes do conector gerenciado.

Observação: use a versão nativa do ISE, não a versão gerenciada.

Para saber mais, consulte a seguinte documentação:

- Referência do conector gerenciado do SAP
- Limites de mensagem ISE
- Conectores gerenciados em Aplicativos Lógicos do Azure
Standard Aplicativos Lógicos do Azure de locatário único e Ambiente do Serviço de Aplicativo v3 (somente planos Windows) O conector gerenciado, que aparece na galeria de conectores em Runtime>Compartilhado, e o conector interno (versão prévia), que aparece na galeria de conectores em Runtime>No Aplicativo e é baseado no provedor de serviços. O conector integrado pode acessar diretamente as redes virtuais do Azure com uma cadeia de conexão sem um gateway de dados local. Para saber mais, consulte a seguinte documentação:

- Referência do conector gerenciado do SAP
- Referência do conector SAP integrado

- Conectores gerenciados em Aplicativos Lógicos do Azure
- Conectores internos em Aplicativos Lógicos do Azure

Diferenças de conectores

O conector interno do SAP difere significativamente do conector gerenciado pelo SAP e do conector com versão do SAP ISE das seguintes maneiras:

  • As conexões locais não exigem o gateway de dados local.

    Em vez disso, o conector integrado SAP se comunica diretamente com seu servidor SAP na rede virtual integrada, o que evita saltos, latência e pontos de falha para um gateway de rede. Verifique se você carregou ou implantou as bibliotecas de clientes do SAP não redistribuíveis com o aplicativo de fluxo de trabalho do aplicativo lógico. Para obter mais informações, consulte os Pré-requisitos neste guia.

  • Tamanhos de conteúdos de até 100 MB são suportados, portanto, você não precisa usar um URI de blob para solicitações grandes.

  • Ações específicas estão disponíveis para Chamar BAPI, Chamar RFC e Enviar IDoc. Essas ações dedicadas proporcionam uma melhor experiência para BAPIs com estado, transações RFC e deduplicação de IDocs, e não usam o modelo de mensagens SOAP mais antigo do Windows Communication Foundation (WCF).

    A ação Chamar BAPI inclui até duas respostas com o JSON retornado, a resposta XML da chamada BAPI e da resposta da confirmação BAPI ou reversão BAPI, bem como se você usar a confirmação automática. Esse recurso resolve o problema com o conector gerenciado do SAP, em que o resultado da confirmação automática é silencioso e observável apenas por meio de registros.

  • Tempo limite mais longo, 5 minutos, em comparação com o conector gerenciado e o conector com controle de versão ISE.

    O conector integrado SAP não usa a infraestrutura de conector compartilhado ou global, o que significa que os tempos limite são mais longos, 5 minutos, em comparação com o conector gerenciado SAP (dois minutos) e o conector com versão SAP ISE (quatro minutos). As solicitações de longa duração funcionam sem que você precise implementar o padrão de ação de solicitação baseada em webhook de longa duração.

  • Por padrão, as operações do conector interno do SAP são sem estado. No entanto, você pode habilitar o modo com estado (afinidade) para essas operações.

    No modo com estado, o conector integrado do SAP tem suporte para alta disponibilidade e configurações de expansão. Em comparação, o conector gerenciado SAP tem restrições com relação ao gateway de dados local, limitado a uma única instância para gatilhos e a clusters apenas no modo de failover para ações. Para obter mais informações, consulte Conector gerenciado do SAP - Problemas conhecidos e limitações.

  • Os fluxos de trabalho de aplicativos lógicos Standard exigem e usam a biblioteca de clientes do SAP NCo 3.1, e não a versão SAP NCo 3.0. Para obter mais informações, veja Pré-requisitos.

  • Os fluxos de trabalho de aplicativos lógicos Standard fornecem configurações de aplicativos em que você pode especificar um Ambiente de Segurança Pessoal (PSE) e uma senha PSE.

    Essa alteração impede que você carregue vários arquivos PSE, o que não é suportado e resulta em falhas de conexão com o SAP. Nos fluxos de trabalho do aplicativo Lógico de Consumo, o conector gerenciado pelo SAP permite que você especifique esses valores através dos parâmetros de conexão, o que permitia o upload de vários arquivos PSE e não era suportado, causando falhas na conexão SAP.

  • Ação Gerar Esquema

    • Você pode selecionar entre vários tipos de operação, como BAPI, IDoc, RFC e tRFC, em comparação com a mesma ação no conector gerenciado SAP, que usa o parâmetro SapActionUris e uma experiência de seleção de sistema de arquivos.

    • Você pode fornecer diretamente um nome de parâmetro como um valor personalizado. Por exemplo, você pode especificar o parâmetro Nome do RFC na ação Chamar RFC. Em comparação, no conector gerenciado do SAP, você tinha que fornecer um nome de parâmetro complexo do URI de Ação.

    • Por definição, essa ação não tem suporte para a geração de vários esquemas para RFCs, BAPIs ou IDocs em uma única execução de ação, o que é suportado pelo conector gerenciado do SAP. Essa alteração na capacidade agora impede tentativas de enviar grandes quantidades de conteúdo em uma única chamada.

Parâmetros de conector

Juntamente com as entradas de cadeia de caracteres e números simples, o conector SAP aceita os seguintes parâmetros de tabela (entradas Type=ITAB):

  • Parâmetros de direção de tabela, entrada e saída, para versões mais antigas do SAP.
  • Alterações de parâmetros, que substituem os parâmetros de direção da tabela para as versões mais recentes do SAP.
  • Parâmetros da tabela hierárquica.

Limitações e problemas conhecidos

Conector gerenciado do SAP

  • No momento, o conector do SAP não é compatível com cadeia de caracteres do roteador do SAP. O gateway de dados local deve existir em uma rede virtual em que o gateway possa acessar diretamente o sistema SAP que você deseja conectar.

  • Em geral, o gatilho SAP não dá suporte a clusters de gateway de dados. Em alguns casos de failover, o nó do gateway de dados que se comunica com o sistema SAP pode ser diferente do nó ativo, o que resulta em um comportamento inesperado.

    • Para cenários de envio de mensagem, há suporte para clusters de gateway de dados no modo de failover.

    • As ações do SAP com estado não são compatíveis com os clusters de gateway de dados em modo de balanceamento de carga. As comunicações com estado devem permanecer no mesmo nó de cluster do gateway de dados. Use o gateway de dados no modo não cluster ou em um cluster que esteja configurado apenas para failover. Por exemplo, essas ações incluem as seguintes:

      • Todas as ações que especificam um valor de ID de sessão
      • [BAPI] Confirmar transação
      • [BAPI] Reverter transação
      • [BAPI - RFC] Fechar sessão com estado
      • [BAPI - RFC] Criar uma sessão com estado
  • Na ação nomeada [BAPI] Método de chamada no SAP, o recurso de confirmação automática não confirma as alterações de BAPI se existir pelo menos um aviso no objeto CallBapiResponse retornado pela ação. Para confirmar as alterações de BAPI apesar de qualquer aviso, siga estas etapas:

    1. Crie uma sessão de forma explícita usando a ação chamada [BAPI – RFC] Criar sessão com estado.
    2. Na ação chamada [BAPI] Método de chamada no SAP, desabilite o recurso de confirmação automática.
    3. Chame a ação nomeada [BAPI] Confirmar transação em vez disso.

Conexões baseadas em IP com um servidor de mensagens SAP (configuração com balanceamento de carga)

Se você especificar um endereço IP para se conectar a um servidor de mensagens SAP, por exemplo, um balanceador de carga, a conexão ainda poderá falhar com uma mensagem de erro semelhante a "nome do host SAPDBSERVER01.exemplo.com desconhecido". O servidor de mensagens instrui o conector SAP a usar um nome de host para a conexão com o servidor de aplicativos SAP no back-end ou com o servidor por trás do balanceador de carga. Se o DNS não puder resolver o nome do host, a conexão falhará.

Para esse problema, existem as seguintes soluções ou soluções alternativas:

  • Verifique se o cliente que está fazendo a conexão, como o computador com o gateway de dados local para o conector SAP ou o host do conector ISE para o conector SAP baseado em ISE, pode resolver os nomes de host retornados pelo servidor de mensagens.

  • Na transação chamada RZ11, altere ou adicione a configuração do SAP chamada ms/lg_with_hostname=0.

Contexto ou plano de fundo do problema

O SAP atualizou seu NCo (conector .NET) para a versão 3.1, o que alterou a maneira como o conector solicita conexões para servidores de back-end de servidores de mensagens. O conector agora usa uma nova API para resolução do servidor de aplicativos pelo servidor de mensagens, a menos que você force o conector a usar a API anterior por meio da configuração chamada ms/lg_with_hostname=0'. Para obter mais informações, consulte o Artigo SAP KB 3305039 – Configuração de endereço IP do SMLG não considerada durante o logon do Grupo de Logon.

Pré-requisitos

  • Uma conta e uma assinatura do Azure. Caso você ainda não tenha uma assinatura do Azure, inscreva-se em uma conta gratuita do Azure.

  • Um servidor de Aplicativos SAP ou um servidor de Mensagens SAP que você deseja acessar pelos Aplicativos Lógicos do Azure.

    • Configure o servidor SAP e sua conta de usuário para permitir o uso de RFC.

      Para obter mais informações, que incluem os tipos de conta de usuário com suporte e a autorização mínima necessária para cada tipo de ação (RFC, BAPI, IDoc), confira a seguinte nota do SAP: 460089 – Perfis de autorização mínima para programas RFC externos.

    • Sua conta de usuário SAP precisa de acesso ao grupo de funções RFC_METADATA e aos respectivos módulos de função para as seguintes operações:

      Operations Acesso aos módulos de função
      Ações do RFC RFC_GROUP_SEARCH e DD_LANGU_TO_ISOLA
      Ações de BAPI BAPI_TRANSACTION_COMMIT, BAPI_TRANSACTION_ROLLBACK, RPY_BOR_TREE_INIT, SWO_QUERY_METHODS e SWO_QUERY_API_METHODS
      Ações de IDoc IDOCTYPES_LIST_WITH_MESSAGES, IDOCTYPES_FOR_MESTYPE_READ, INBOUND_IDOCS_FOR_TID, OUTBOUND_IDOCS_FOR_TID, GET_STATUS_FROM_IDOCNR e IDOC_RECORD_READ
      Ação Ler tabela SAP RFC BBP_RFC_READ_TABLE ou RFC_READ_TABLE
      Conceda acesso mínimo estrito ao servidor SAP para sua conexão SAP RFC_METADATA_GET e RFC_METADATA_GET_TIMESTAMP
  • O fluxo de trabalho do aplicativo lógico que você deseja acessar o servidor SAP.

  • Por padrão, as operações do conector interno do SAP são sem estado. Para executar essas operações no modo com estado, consulte Como habilitar o modo com estado para conectores internos sem estado.

  • Para usar o gatilho de conector gerenciado pelo SAP ou interno chamado Quando uma mensagem for recebida, conclua as seguintes tarefas:

    • Configure a ACL (lista de controle de acesso) ou suas permissões de segurança do SAP Gateway. Na caixa de diálogo Monitor do Gateway (T-Code SMGW), que mostra os arquivos secinfo e reginfo, abra o menu Goto e selecione Funções Especializadas>Segurança Externa>Manutenção de Arquivos ACL.

      A seguinte configuração de permissão é necessária:

      P TP=LOGICAPP HOST=<on-premises-gateway-server-IP-address> ACCESS=*

      Essa linha tem o seguinte formato:

      P TP=<trading-partner-identifier-(program-name)-or-*-for-all-partners> HOST=<comma-separated-list-with-external-host-IP-or-network-names-that-can-register-the-program> ACCESS=<*-for-all-permissions-or-a-comma-separated-list-of-permissions>

      Se você não configurar as permissões de segurança do gateway SAP, talvez receba o erro a seguir:

      Registro do tp Microsoft.PowerBI.EnterpriseGateway do host <nome do host> não permitido

      Para saber mais, veja a Nota do SAP 1850230 – GW: "Registro do <ID de programa> tp não permitido".

    • Configure o log de segurança do SAP Gateway para obter ajudar ao localizar problemas da ACL (lista de controle de acesso). Para saber mais, veja o tópico da ajuda do SAP para a configuração do log do gateway.

    • Na caixa de diálogo Configuração de conexões RFC (T-Code SM59), crie uma conexão RFC com o tipo TCP/IP. Verifique se o Tipo de Ativação está definido como Programa de Servidor Registrado. Defina o valor Tipo de comunicação com o sistema de destino da conexão RFC como Unicode.

    • Para usar este gatilho SAP com o parâmetro Formato IDOC definido como FlatFile, além da ação de decodificação de arquivo simples, é necessário usar a propriedade early_terminate_optional_fields no esquema de arquivo simples definindo o valor como true.

      Esse requisito é necessário porque o registro de dados de IDoc de arquivo simples enviado pelo SAP na chamada tRFC IDOC_INBOUND_ASYNCHRONOUS não é preenchido com o comprimento total do campo SDATA. Os Aplicativos Lógicos do Azure fornecem os dados originais do IDoc de arquivo simples sem preenchimento, conforme recebidos do SAP. Além disso, ao combinar esse gatilho SAP com a ação de Decodificação de arquivo simples, o esquema que é fornecido à ação deve corresponder.

    Observação

    Em fluxos de trabalho Standard e de Consumo, o gatilho gerenciado pelo SAP chamado Quando uma mensagem é recebida usa o mesmo local de URI para renovar e cancelar uma assinatura de webhook. A operação de renovação usa o método PATCH HTTP, enquanto a operação de cancelamento de assinatura usa o método DELETE HTTP. Esse comportamento pode fazer com que uma operação de renovação seja exibida como uma operação de cancelamento de assinatura no histórico do gatilho, mas a operação ainda é uma renovação porque o gatilho usa PATCH como o método HTTP, não DELETE.

    Em fluxos de trabalho Standard, o gatilho integrado do SAP chamado Quando uma mensagem é recebida usa o gatilho do Azure Functions e mostra apenas os retornos de chamada reais do SAP.

    • WEBSITE_PRIVATE_IP: Defina esse valor de variável de ambiente como 127.0.0.1 como o endereço do localhost.
    • WEBSITE_PRIVATE_PORTS: Defina esse valor de variável de ambiente como duas portas livres e utilizáveis em seu computador local, separando os valores com uma vírgula (,), por exemplo, 8080,8088.
  • O conteúdo da mensagem a ser enviada ao servidor SAP, como um arquivo de exemplo IDoc. Este conteúdo deve estar no formato XML e incluir o namespace para a ação do SAP que você deseja usar. Você pode Enviar IDocs com um esquema de arquivo simples encapsulando-os em um envelope XML.

Pré-requisitos de conectividade de rede

O sistema SAP requer conectividade de rede do host da biblioteca do SAP .NET Connector (NCo):

  • Para os fluxos de trabalho de consumo nos Aplicativos Lógicos do Azure multilocatários, o gateway de dados local hospeda a biblioteca NCo (.NET Connector) do SAP. Se você usar um cluster de gateway de dados local, todos os nós do cluster exigirão conectividade de rede com o sistema SAP.

  • Para fluxos de trabalho de aplicativo lógico Padrão nos Aplicativos Lógicos do Azure de locatário único, o recurso do aplicativo lógico hospeda a biblioteca do SAP NCo (.NET Connector). Portanto, o próprio recurso do aplicativo lógico deve habilitar a integração de rede virtual e essa rede virtual deve ter conectividade de rede com o sistema SAP.

  • Para fluxos de trabalho de aplicativo lógico de Consumo em um ISE, a rede virtual ISE hospeda a biblioteca do SAP NCo (.NET Connector).

A conectividade de rede necessária para o sistema SAP inclui os seguintes servidores e serviços:

  • Servidor de Aplicativos SAP, serviço do Dispatcher (para todos os tipos de logon)

    Seu sistema SAP pode incluir vários Servidores de Aplicativos SAP. O host da biblioteca .NET Connector (NCo) do SAP requer acesso a cada servidor e seus serviços.

  • Servidor de Mensagens SAP, serviço de mensagem (para grupo de tipos de logon)

    O Servidor de Mensagens e o serviço serão redirecionados para um ou mais serviços do Dispatcher do Servidor de Aplicativos. O host da biblioteca .NET Connector (NCo) do SAP requer acesso a cada servidor e seus serviços.

  • Servidor de Gateway do SAP, serviço de gateway

  • Servidor de Gateway do SAP, serviço protegido de gateway

    A conectividade de rede necessária para o sistema SAP também inclui esse servidor e o serviço a ser usado com o SNC (Secure Network Communications).

O redirecionamento de solicitações do Servidor de Aplicativos, do serviço Dispatcher para o Servidor de Gateway, do serviço de gateway ocorre automaticamente na biblioteca do SAP NCo (.NET Connector). Esse redirecionamento ocorre mesmo que apenas as informações do serviço Dispatcher e do Servidor de Aplicativos sejam fornecidas nos parâmetros de conexão.

Se você estiver usando um balanceador de carga na frente do sistema SAP, você deve redirecionar todos os serviços para seus respectivos servidores. Para obter mais informações sobre portas e serviços SAP, leia Portas TCP/IP de todos os produtos SAP.

Observação

Verifique se você habilitou a conectividade de rede a partir do host da biblioteca do SAP NCo (.NET Connector) e garanta que as portas necessárias estejam abertas em firewalls e grupos de segurança de rede. Caso contrário, ocorrerão erros como parceiro não alcançado do componente NI (adaptador de rede) e texto de erro, como WSAECONNREFUSED: conexão recusada.

Pré-requisitos da biblioteca de clientes do SAP NCo

Para usar o conector SAP, você precisa instalar a biblioteca de clientes NCo do Conector SAP para Microsoft .NET 3.1. A lista a seguir descreve os pré-requisitos para a biblioteca de clientes do NCo do SAP, com base no fluxo de trabalho no qual você está usando o conector SAP:

  • Versão:

    • Para fluxos de trabalho de aplicativo lógico de Consumo que usam o gateway de dados local, instale a versão mais recente de 64 bits, o Conector SAP para o Microsoft .NET 3.1.3.0 para Windows 64 bits (x64). O gateway de dados é executado apenas em sistemas de 64 bits. A instalação da versão de 32 bits sem suporte resulta em um erro de “imagem inválida”.

    • Para fluxos de trabalho de aplicativo lógico Standard, você pode instalar a versão mais recente de 64 bits ou 32 bits do Conector SAP (NCo 3.1) para Microsoft .NET 3.1.3.0 compilado com o .NET Framework 4.6.2. No entanto, verifique se você instalou a versão que corresponde à configuração no seu recurso de aplicativo lógico Standard. Para verificar a versão usada pelo aplicativo lógico, execute estas etapas:

      1. No portal do Azure, abra seu recurso de aplicativo lógico Padrão.

      2. No menu do recurso do aplicativo lógico, em Configurações, selecione Configuração.

      3. Na página Configuração, selecione a guia Configurações gerais. Em Configurações da plataforma, verifique se o valor de Plataforma está definido como 64 bits ou 32 bits.

      4. Instale a versão do Conector SAP (NCo 3.1) para Microsoft .NET 3.1.3.0 compilado com .NET Framework 4.6.2 que corresponda à configuração da sua plataforma.

  • Na pasta de instalação padrão da biblioteca de clientes, copie os arquivos do assembly (.dll) para outro local com base em seu cenário, da seguinte maneira. Ou, opcionalmente, se você estiver usando apenas o conector gerenciado do SAP, ao instalar a biblioteca de clientes do SAP NCo, selecione Registro do cache de assembly global. Atualmente, o arquivo zip do ISE e o conector interno do SAP não dão suporte ao registro GAC.

    • No caso de um fluxo de trabalho de consumo que é executado nos Aplicativos Lógicos do Azure multilocatários e usa o gateway de dados local, copie os seguintes arquivos do assembly (.dll) para a pasta de instalação do gateway, por exemplo, C:\Arquivos de Programas\Gateway de Dados Local. A biblioteca de clientes SAP NCo 3.0 contém os seguintes assemblies:

      • libicudecnumber.dll
      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll

      Certifique-se de copiar os arquivos do assembly para a pasta de instalação do gateway de dados. Caso contrário, sua conexão do SAP poderá falhar com a mensagem de erro: Verifique as informações da sua conta e/ou permissões e tente novamente. É possível solucionar outros problemas usando o visualizador de log de associação de assembly .NET. Essa ferramenta permite verificar se os arquivos de assembly estão na localização correta.

    • Para fluxos de trabalho padrão, copie os seguintes arquivos do assembly (.dll) para local de onde você pode carregá-los no recurso ou projeto do aplicativo lógico em que você está criando seu fluxo de trabalho, no portal do Azure ou localmente no Visual Studio Code, respectivamente. A biblioteca de clientes SAP NCo 3.1 inclui os seguintes assemblies:

      • rscp4n.dll
      • sapnco.dll
      • sapnco_utils.dll
    • Para um fluxo de trabalho de Consumo em um ISE, siga os pré-requisitos do ISE.

As seguintes relações existem entre a biblioteca de clientes do SAP NCo, .NET Framework, o runtime do .NET e o gateway de dados:

  • O adaptador do SAP da Microsoft e o serviço de host do gateway usam o .NET Framework 4.7.2.

  • O NCo SAP para o .NET Framework 4.0 funciona com processos que usam o runtime do .NET 4.0 para 4.8.

  • O NCo SAP para o .NET Framework 2.0 funciona com processos que usam o runtime do .NET 2.0 a 3.5, mas não funciona mais com o gateway mais recente.

Pré-requisitos do SNC

No caso de um fluxo de trabalho de consumo que é executado nos Aplicativos Lógicos do Azure multilocatários e usa o gateway de dados local e, opcionalmente, o SNC, defina também as configurações a seguir.

  • Verifique se a versão da sua biblioteca do SNC e suas dependências são compatíveis com seu ambiente SAP. Para solucionar problemas de compatibilidade de biblioteca, você pode usar o gateway de dados local e os logs do gateway de dados.

  • Certifique-se de ter copiado os seguintes arquivos de assembly (.dll) na biblioteca de clientes SAP NCo 3.0 para a pasta de instalação do gateway de dados local, por exemplo, C:\Arquivos de Programas\Gateway de Dados Local.

    • libicudecnumber.dll
    • rscp4n.dll
    • sapnco.dll
    • sapnco_utils.dll
  • Para o utilitário SAPGENPSE, você deve usar especificamente sapgenpse.exe.

  • Se você fornecer um PSE (Ambiente de Segurança Pessoal) com sua conexão, não precisará copiar e configurar o PSE e o SECUDIR para seu gateway de dados local.

  • Se você habilitar o SNC por meio de um produto de segurança externo, como sapseculib, Kerberos ou NTLM, verifique se a biblioteca do SNC existe no mesmo computador que a instalação do gateway de dados. Para realizar essa tarefa, copie os arquivos binários da biblioteca SNC para a mesma pasta que a instalação do gateway de dados em seu computador local, por exemplo, C:\Arquivos de Programas\Gateway de Dados Local.

    Observação

    No computador com a instalação do gateway de dados e a biblioteca do SNC, não defina as variáveis de ambiente como SNC_LIB e SNC_LIB_64. Caso contrário, essas variáveis terão precedência sobre o valor da biblioteca do SNC passado através do conector.

  • Para usar o SNC com SSO (logon único), verifique se o serviço do gateway de dados está sendo executado como um usuário mapeado para o usuário SAP. Para alterar a conta padrão da conta de serviço do gateway, selecione Alterar conta e insira as credenciais do usuário.

    Captura de tela que mostra o instalar do gateway de dados local e a página Configurações do serviço com o botão para alterar a conta de serviço de gateway selecionada.

Para saber como habilitar o SNC, veja Habilitar o SNC (Secure Network Communications).

Pré-requisitos de ambiente dos Aplicativos Lógicos do Azure

Para um fluxo de trabalho de consumo nos Aplicativos Lógicos do Azure multilocatários, o conector SAP gerenciado integra-se aos sistemas do SAP por meio de um gateway de dados local. Por exemplo, em cenários em que seu fluxo de trabalho envia uma mensagem para um sistema SAP, o gateway de dados atua como um cliente RFC e encaminha as solicitações recebidas do seu fluxo de trabalho para o SAP. Da mesma forma, em cenários em que seu fluxo de trabalho recebe uma mensagem do SAP, o gateway de dados atua como um servidor RFC que recebe solicitações do SAP e as encaminha para seu fluxo de trabalho.

  1. Em um computador host ou em uma máquina virtual que exista na mesma rede virtual que o sistema SAP ao qual você está se conectando, baixe e instale o gateway de dados local.

    O gateway de dados ajuda você a acessar com segurança dados e recursos locais. Use uma versão com suporte do gateway. Se você tiver um problema com seu gateway, tente atualizar para a versão mais recente, que pode incluir atualizações para resolver o problema.

  2. No portal do Azure, crie um recurso de gateway do Azure para a instalação do seu gateway de dados local.

  3. No mesmo computador local da instalação do gateway de dados local, baixe e instale a biblioteca de clientes do SAP NCo mais recente.

  4. Para o computador host com a instalação do gateway de dados local, configure os nomes de host de rede e a resolução de nomes do serviço.

    • Para usar os nomes de host ou os nomes de serviço para conexões dos Aplicativos Lógicos do Azure, você deve configurar a resolução de nomes para cada servidor de aplicativo do SAP, de mensagem e de gateway junto com os respectivos serviços:

      • No arquivo %windir%\System32\drivers\etc\hosts ou no servidor DNS disponível para o computador host da instalação do gateway de dados local, configure a resolução de nomes do host de rede.

      • No arquivo %windir%\System32\drivers\etc\services, configure a resolução de nomes de serviço.

    • Se você não pretende usar nomes de serviço ou de host de rede para a conexão, pode usar endereços IP de host e números de porta de serviço.

    • Se você não tiver uma entrada DNS para seu sistema SAP, veja no exemplo a seguir uma entrada de amostra para o arquivo de hosts:

      10.0.1.9           sapserver                   # SAP single-instance system host IP by simple computer name
      10.0.1.9           sapserver.contoso.com       # SAP single-instance system host IP by fully qualified DNS name
      

      A lista a seguir mostra um conjunto de exemplos de entradas para os arquivos de serviços:

      sapdp00            3200/tcp              # SAP system instance 00 dialog (application) service port
      sapgw00            3300/tcp              # SAP system instance 00 gateway service port
      sapmsDV6           3601/tcp              # SAP system ID DV6 message service port
      

Habilitar SNC (comunicação de rede segura)

Para um fluxo de trabalho de consumo executado nos Aplicativos Lógicos do Azure multilocatários, você pode habilitar o SNC para autenticação, o que se aplica somente quando você usa o gateway de dados. Antes de começar, verifique se você atendeu a todos os pré-requisitos e pré-requisitos de SNC necessários.

  1. No portal do Azure, abra o fluxo de trabalho do aplicativo lógico de Consumo no designer.

  2. Adicionar ou editar uma operação de conector gerenciado do SAP.

  3. Na caixa de informações de conexão do SAP, forneça as seguintes informações necessárias. O Tipo de autenticação selecionado altera as opções disponíveis.

    Captura de tela mostrando as configurações de conexão do SAP para Consumo.

    Observação

    Os campos Nome de usuário do SAP e Senha do SAP são opcionais. Se você não fornecer um nome de usuário e uma senha, o conector usará o certificado do cliente fornecido em uma etapa posterior para autenticação.

  4. Para habilitar o SNC, na caixa de informações de conexão do SAP, forneça as seguintes informações necessárias:

    Captura de tela mostrando as configurações de conexão do SAP habilitado para SNC para Consumo.

    Parâmetro Descrição
    Usar o SNC Marque a caixa de seleção.
    Biblioteca SNC Insira um dos seguintes valores:

    - O nome da biblioteca do SNC, por exemplo, sapsnc.dll
    - O caminho relativo para o local de instalação do NCo, por exemplo, .\security\sapsnc.dll
    - O caminho absoluto para o local de instalação do NCo, por exemplo, c:\security\sapsnc.dll
    SSO do SNC Selecione Fazer logon usando a identidade do SNC ou Fazer logon com o nome de usuário/senha fornecido no nível RFC.

    Normalmente, a identidade do SNC é usada para autenticar o chamador. Em vez disso, você pode optar por autenticar com um nome de usuário e senha, mas esse valor de parâmetro ainda está criptografado.
    Meu Nome de SNC Na maioria dos casos, você pode omitir esse valor. A solução SNC instalada geralmente sabe o próprio nome de SNC. No caso em que sua solução dá suporte a várias identidades, talvez seja necessário especificar a identidade a ser usada para esse destino ou servidor específico.
    Nome do parceiro SNC Insira o nome do SNC de back-end, por exemplo, p:CN=DV3, OU=LA, O=MS, C=US.
    Qualidade de Proteção SNC Selecione a qualidade do serviço a ser usada na comunicação do SNC com esse servidor ou destino específico. O valor padrão é definido pelo sistema de back-end. O valor máximo é definido pelo produto de segurança usado para a SNC.
    Certificado SNC Insira a chave pública codificada em base64 para o certificado que será usado para identificar o cliente no SAP.

    Observação: não inclua o rodapé ou o cabeçalho do PEM.

    - Não insira a chave privada do certificado do cliente aqui. Seu Ambiente de Segurança Pessoal (PSE) deve conter a chave privada correspondente para esse certificado e pode conter outros certificados privados. Para obter mais informações, examine o próximo parâmetro.
    PSE Insira seu PSE (Ambiente de Segurança Pessoal) do SNC como um binário codificado em base64.

    - Seu PSE deve conter a chave privada do certificado do cliente em que a impressão digital corresponde à chave pública do certificado do cliente no parâmetro Certificado SNC.

    - Embora seu PSE possa conter vários certificados de clientes, para usar diferentes certificados de clientes, crie fluxos de trabalho separados.

    – Ao usar mais de um certificado do cliente do SNC no recurso do aplicativo lógico Padrão, é necessário fornecer o mesmo PSE para todas as conexões. Seu PSE deve conter a chave privada correspondente para o certificado de cliente para cada uma e todas as conexões. Você deve definir o parâmetro Certificado SNC para corresponder ao certificado privado específico para cada conexão.
  5. Para concluir a criação de sua conexão, clique em Criar.

    Se os parâmetros estiverem corretos, a conexão será criada. Se houver um problema com os parâmetros, a caixa de diálogo de criação de conexão exibirá uma mensagem de erro. Para solucionar problemas de parâmetro de conexão, use uma instalação de gateway de dados local e os logs locais do gateway.

Converta um arquivo PSE binário em formato codificado na base64

  1. Use um script do PowerShell, por exemplo:

    Param ([Parameter(Mandatory=$true)][string]$psePath, [string]$base64OutputPath)
    $base64String = [convert]::ToBase64String((Get-Content -path $psePath -Encoding byte))
    if ($base64OutputPath -eq $null)
    {
        Write-Output $base64String
    }
    else
    {
        Set-Content -Path $base64OutputPath -Value $base64String
        Write-Output "Output written to $base64OutputPath"
    } 
    
  2. Salve o script como um arquivo pseConvert.ps1 e, em seguida, invoque o script, por exemplo:

    .\pseConvert.ps1 -psePath "C:\Temp\SECUDIR\request.pse" -base64OutputPath "connectionInput.txt"
    Output written to connectionInput.txt 
    

    Se você não fornecer o parâmetro de caminho de saída, a saída do script para o console terá quebras de linha. Remova as quebras de linha da cadeia de caracteres codificada em base 64 para o parâmetro de entrada de conexão.

Configurar e testar o envio de IDocs para o fluxo de trabalho do SAP

Siga estas etapas apenas para testar sua configuração do SAP com o fluxo de trabalho do aplicativo lógico. Os ambientes de produção exigem configuração adicional.

Para enviar IDocs do SAP para o fluxo de trabalho, você precisa da seguinte configuração mínima:

  1. Crie um destino RFC.
  2. Crie uma conexão ABAP.
  3. Crie uma porta de recepção.
  4. Crie uma porta de envio.
  5. Crie um parceiro de sistema lógico.
  6. Crie um perfil de parceiro.
  7. Teste o envio de mensagens.

Criar um destino RFC

Esse destino identifica o fluxo de trabalho do aplicativo lógico como a porta do receptor.

  1. No SAP, abra a Configuração de Conexões RFC. Você pode usar o código de transação sm59 (T-Code) com o prefixo /n.

  2. Selecione Conexões TCP/IP>Criar.

  3. Crie um destino de RFC com as seguintes configurações:

    1. No Destino de RFC, insira um nome.

    2. Na guia Configurações Técnicas, para Tipo de Ativação, selecione Programa de Servidor Registrado.

    3. Na ID do programa, insira um valor. No servidor SAP, o gatilho do fluxo de trabalho é registrado usando este identificador.

      Importante

      A ID do Programa SAP diferencia maiúsculas de minúsculas. Certifique-se de usar consistentemente o mesmo formato de caso para a ID do programa ao configurar o fluxo de trabalho e o servidor SAP. Caso contrário, você poderá receber os seguintes erros no Monitor tRFC (T-Code SM58) ao tentar enviar um IDoc para o SAP:

      • Função IDOC_INBOUND_ASYNCHRONOUS não encontrada
      • Não há suporte para o cliente RFC não ABAP (tipo de parceiro)

      Para saber mais sobre o SAP, veja as seguintes notas (logon obrigatório):

    4. Na guia Unicode, para Tipo de Comunicação com Sistema de Destino, selecione Unicode.

      Observação

      As bibliotecas de clientes .NET do SAP dão suporte apenas à codificação de caracteres Unicode. Se você receber o erro cliente RFC não ABAP (tipo de parceiro) não suportado ao enviar um IDoc do SAP para os Aplicativos Lógicos do Azure, verifique se o valor Tipo de comunicação com sistema de destino está configurado como Unicode.

  4. Salve suas alterações.

  5. Registre sua nova ID de programa nos Aplicativos Lógicos do Azure criando um fluxo de trabalho de aplicativo lógico que começa com o gatilho gerenciado do SAP nomeado Quando uma mensagem é recebida.

    Dessa forma, quando você salva o fluxo de trabalho, os Aplicativos Lógicos do Azure registram a ID do programa no Gateway do SAP.

  6. No histórico de gatilhos do fluxo de trabalho, verifique o status do registro quanto aos logs do Adaptador SAP do gateway de dados local e, se aplicável, aos logs de rastreamento do Gateway do SAP.

    Na caixa de diálogo Monitor do Gateway do SAP (T-Code SMGW), em Clientes conectados, o novo registro aparece como Servidor registrado.

  7. Para testar sua conexão, em seu novo Destino de RFC, selecione Teste de conexão.

Criar conexão ABAP

Esse destino identifica seu sistema SAP como a porta do remetente.

  1. No SAP, abra a Configuração de Conexões RFC. Você pode usar o código de transação sm59 (T-Code) com o prefixo /n.

  2. Selecione Conexões ABAP>Criar.

  3. Para Destino RFC, insira o identificador para seu sistema SAP de teste.

  4. Em Configurações técnicas, deixe o host de destino vazio para criar uma conexão local com o sistema SAP.

  5. Salve suas alterações.

  6. Para testar a conexão, selecione Testar Conexão.

Criar porta do receptor

  1. No SAP, abra as Portas nas configurações de processamento do IDOC. Você pode usar o código de transação we21 (T-Code) com o prefixo /n.

  2. Selecione Portas>RFC Transacional>Criar.

  3. Na caixa de configurações que é aberta, selecione nome da própria porta. Para sua porta de teste, insira um Nome. Salve suas alterações.

  4. Nas configurações de sua nova porta do destinatário, para destino RFC, insira o identificador para seu destino RFC de teste.

  5. Salve suas alterações.

Criar porta do remetente

  1. No SAP, abra as Portas nas configurações de processamento do IDOC. Você pode usar o código de transação we21 (T-Code) com o prefixo /n.

  2. Selecione Portas>RFC Transacional>Criar.

  3. Na caixa de configurações que é aberta, selecione nome da própria porta.

  4. Para sua porta de teste, insira um Nome que comece com SAP. Salve suas alterações.

    Todos os nomes de porta de remetente devem começar com as letras SAP, por exemplo, SAPTEST.

  5. Nas configurações de sua nova porta de remetente, para Destino de RFC, insira o identificador para sua conexão ABAP.

  6. Salve suas alterações.

Criar parceiro de sistema lógico

  1. No SAP, abra as configurações Alterar modo de exibição de “Sistemas Lógicos”: visão geral . Você pode usar o código de transação bd54 (T-Code).

  2. Aceite a seguinte mensagem de aviso que aparece: Cuidado: a tabela é entre clientes

  3. Acima da lista que mostra os sistemas lógicos existentes, selecione Novas Entradas.

  4. Para seu novo sistema lógico, insira um identificador Log.Sys e uma descrição de Nome curto. Salve suas alterações.

  5. Quando o Prompt do Workbench for exibido, crie uma solicitação fornecendo uma descrição ou, se você já tiver criado uma solicitação, ignore esta etapa.

  6. Depois de criar a solicitação do Workbench, vincule-a à solicitação de atualização de tabela. Para confirmar que a tabela foi atualizada, salve suas alterações.

Criar perfis de parceiro

Para ambientes de produção, você deve criar dois perfis de parceiro. O primeiro perfil é para o remetente, que é a sua organização e o sistema SAP. O segundo perfil é do receptor, que é o recurso e fluxo de trabalho do aplicativo lógico.

  1. No SAP, abra as configurações de Perfis de parceiro . Você pode usar o código de transação we20 (T-Code) com o prefixo /n.

  2. Em Perfis de Parceiro, selecione Tipo de Parceiro LS>Criar.

  3. Crie um perfil de parceiro com as seguintes configurações:

    Configuração Descrição
    Nº do parceiro Insira o identificador do parceiro do seu sistema lógico.
    Nº do parc. Type Insira LS.
    Agente Insira o identificador da conta de usuário do SAP a ser usado ao registrar identificadores de programa para Aplicativos Lógicos do Azure ou outros sistemas não SAP.
  4. Salve suas alterações.

    Caso não tenha criado o parceiro do sistema lógico, você receberá o erro Insira um número de parceiro válido.

  5. Nas configurações de seu perfil de parceiro, em Parâmetros de saída, selecione Criar parâmetro de saída.

  6. Crie um parâmetro de saída com as seguintes configurações:

  7. Salve suas alterações.

Testar o envio de mensagens

  1. No SAP, abra as configurações da Ferramenta de teste para processamento do IDoc . Você pode usar o código de transação we19 (T-Code) com o prefixo /n.

  2. Em Modelo para teste, selecione Por tipo de mensagem. Insira seu tipo de mensagem, por exemplo, CREMAS. Selecione Criar.

  3. Confirme a mensagem Que tipo de IDoc? selecionando Continuar.

  4. Selecione o nó EDIDC. Insira os valores apropriados para o receptor e as portas do remetente. Selecione Continuar.

  5. Selecione Processamento de Saída Padrão.

  6. Para iniciar o processamento de IDoc de saída, selecione Continuar.

    Quando a ferramenta finalizar o processamento, a mensagem IDoc enviado para o sistema SAP ou programa externo será exibida.

  7. Para verificar erros de processamento, use o código de transação sm58 (T-Code) com o prefixo /n.

Criar fluxos de trabalho para cenários comuns do SAP

Para obter o guia de instruções para criar fluxos de trabalho para cargas de trabalho comuns de integração do SAP, consulte as seguintes etapas:

Criar fluxos de trabalho para cenários avançados do SAP

Localizar logs de erros estendidos (somente conector gerenciado)

Se você estiver usando o conector gerenciado do SAP, poderá encontrar mensagens de erro completas verificando os logs estendidos do adaptador do SAP. Você também pode habilitar um arquivo de log estendido para o conector SAP.

  • Para versões do gateway de dados local de abril de 2020 e anteriores, os logs são desabilitados por padrão.

  • Para versões do gateway de dados local de junho de 2020 e posteriores, você pode habilitar os logs de gateway nas configurações do aplicativo.

    • O nível de registros em log padrão é Aviso.

    • Se você habilitar o Registro em log adicional nas configurações de Diagnóstico do aplicativo de gateway de dados local, o nível de registros em log será aumentado para Informativo.

    • Para aumentar o nível de registros em log para Detalhado, atualize a configuração a seguir no arquivo de configuração. Normalmente, o arquivo de configuração está localizado em C:\Program Files\On-premises data gateway\Microsoft.PowerBI.DataMovement.Pipeline.GatewayCore.dll.config.

      <setting name="SapTraceLevel" serializeAs="String">
         <value>Verbose</value>
      </setting>
      

Configurar o log estendido do SAP no gateway de dados local (somente conector gerenciado)

Ao usar um gateway de dados local para Aplicativos Lógicos do Azure, você pode configurar um arquivo de log estendido para o conector SAP. Você pode usar seu gateway de dados local para redirecionar eventos de Rastreamento de Eventos para Windows (ETW) em arquivos de log de rotação que estão incluídos nos arquivos .zip de registro em log do gateway.

Você pode exportar todos os logs de configuração e de serviço do seu gateway para um arquivo .zip nas configurações do aplicativo de gateway.

Observação

O registro estendido pode afetar o desempenho do fluxo de trabalho quando ele está sempre habilitado. Como prática recomendada, desative os arquivos de log estendidos depois de terminar de analisar e solucionar um problema.

Capturar eventos ETW

Como uma tarefa de log avançada opcional, você pode capturar diretamente eventos ETW e, em seguida, consumir os dados em Diagnóstico do Azure nos Hubs de Eventos ou coletar seus dados nos Logs do Azure Monitor. Para saber mais, veja as práticas recomendadas para coletar e armazenar dados.

Para trabalhar com os arquivos ETL resultantes, você pode usar o PerfView ou escrever o próprio programa. O passo a passo a seguir usa o PerfView:

  1. No menu PerfView, selecione Coletar>Coletar para capturar os eventos.

  2. No parâmetroProvedor adicional, insira *Microsoft-LobAdapter para especificar o provedor do SAP para capturar eventos do Adaptador do SAP. Se você não especificar essas informações, o rastreamento incluirá apenas eventos gerais do ETW.

  3. Mantenha as outras configurações padrão. Se quiser, você poderá alterar o nome ou a localização do arquivo no parâmetro Arquivo de dados.

  4. Selecione Iniciar Coleta para iniciar o rastreamento.

  5. Depois de reproduzir o problema ou coletar dados de análise suficientes, selecione Interromper Coleta.

  6. Para compartilhar seus dados com outra parte, como os engenheiros de suporte do Azure, compacte o arquivo ETL.

  7. Para ver o conteúdo do seu rastreamento:

    1. Em PerfView, selecione Arquivo>Abrir e selecione o arquivo ETL que você acabou de gerar.

    2. Na barra lateral do PerfView, a seção Eventos em seu arquivo ETL.

    3. Em Filtrar, filtre por Microsoft-LobAdapter para ver apenas os eventos relevantes e os processos de gateway.

Testar seu fluxo de trabalho

Se você tiver um fluxo de trabalho de consumo nos Aplicativos Lógicos do Azure multilocatários ou um fluxo de trabalho padrão nos Aplicativos Lógicos do Azure de locatário único, siga as etapas correspondentes:

  1. Se o recurso do seu aplicativo lógico de Consumo ainda não estiver habilitado, no menu do aplicativo lógico, selecione Visão geral. Na barra de ferramentas, selecione Habilitar.

  2. Na barra de ferramentas do designer, selecione Executar gatilho>Executar para iniciar manualmente o fluxo de trabalho.

  3. Para disparar o fluxo de trabalho, envie uma mensagem do sistema SAP.

  4. Retorne ao painel Visão geral do aplicativo lógico. Em Histórico de execuções, localize qualquer nova execução do seu fluxo de trabalho.

  5. Abra a execução mais recente, que mostra uma execução manual. Localize e examine a seção resultados do gatilho.

Habilitar o registro e o rastreamento da biblioteca cliente SAP (NCo) (somente conector integrado)

Quando for necessário investigar problemas com esse componente, você poderá configurar o rastreamento do NCo baseado em arquivos de texto personalizados, que poderão ser solicitados pelo suporte do SAP ou da Microsoft. Por padrão, esse recurso está desativado porque a habilitação desse rastreamento pode afetar negativamente o desempenho e consumir rapidamente o espaço de armazenamento do host do aplicativo.

Você pode controlar essa capacidade de rastreamento no nível do aplicativo adicionando as seguintes configurações:

  1. No portal do Azure, abra seu recurso de aplicativo lógico Padrão.

  2. No menu do aplicativo lógico, em Configurações, selecione Variáveis de ambiente para conferir as configurações do aplicativo.

  3. Na página Variáveis de ambiente, na guia Configurações do aplicativo, adicione as seguintes configurações para o aplicativo:

    • SAP_RFC_TRACE_DIRECTORY: o diretório no qual armazenar os arquivos de rastreamento do NCo, por exemplo, C:\home\LogFiles\NCo.

    • SAP_RFC_TRACE_LEVEL: o nível de rastreamento do NCo com Level4 como o valor sugerido para o registro em log verbose típico. O suporte do SAP ou da Microsoft pode solicitar que você defina um nível de rastreamento diferente.

      Observação

      Quanto aos fluxos de trabalho do aplicativo lógico Standard que usam o runtime versão 1.69.0 ou posterior, você pode habilitar o registro em log em vários níveis de rastreamento separando cada nível de rastreamento com uma vírgula (,).

      Para localizar a versão de runtime do SEU fluxo de trabalho, siga estas etapas:

      1. No portal do Azure, no menu de fluxo de trabalho, selecione Visão geral.
      2. Na seção Essentials, localize a propriedade Versão do Runtime.
    • SAP_CPIC_TRACE_LEVEL: o nível de rastreamento da CPI-C (Interface de Programação Comum para Comunicação) com Detalhado como o valor sugerido para log detalhado típico. O suporte do SAP ou da Microsoft pode solicitar que você defina um nível de rastreamento diferente.

    Para obter mais informações sobre como adicionar as configurações do aplicativo, consulte Editar as configurações do host e do aplicativo para os fluxos de trabalho do aplicativo lógico Standard.

  4. Salve suas alterações. Essa etapa reinicia o aplicativo.

Níveis de rastreamento disponíveis

Níveis de rastreamento NCo

Valor Descrição
Level1 O nível para o rastreamento de chamadas de funções remotas.
Level2 O nível para rastrear chamadas de função remota e chamadas de método da API pública.
Level3 O nível para o rastreamento de chamadas de função remota, chamadas de método da API pública e chamadas de método da API interna.
Nível4 O nível para rastrear chamadas de função remota, chamadas de método de API pública, chamadas de método de API interna, despejos hexadecimais para o protocolo RFC e informações relacionadas à rede.
Bloqueio Grava dados nos arquivos de rastreamento que mostram quando as threads solicitam, adquirem e liberam bloqueios em objetos.
Metadados Rastreia os metadados envolvidos em uma chamada de função remota para cada chamada.
Nenhum O nível para suprimir toda a saída de rastreamento.
ParameterData Rastreia os dados do contêiner enviados e recebidos durante cada chamada de função remota.
Desempenho Grava os dados nos arquivos de rastreamento que podem ajudar na análise de problemas de desempenho.
PublicAPI Rastreia a maioria dos métodos da API pública, exceto getters, setters ou métodos relacionados.
InternalAPI Rastreia a maioria dos métodos da API interna, exceto getters, setters ou métodos relacionados.
RemoteFunctionCall Rastreia chamadas de funções remotas.
RfcData Rastreia os bytes enviados e recebidos durante cada chamada de função remota.
SessionProvider Rastreia todos os métodos da implementação atualmente usada do ISessionProvider.
SetValue Grava informações nos arquivos de rastreamento sobre os valores definidos para os parâmetros de funções ou campos de estruturas ou tabelas.

Níveis de rastreamento CPIC

Valor Descrição
Desligado Sem registro em log
Basic Registro em log básico
Detalhado Log detalhado
VerboseWithData Log detalhado com todo o despejo de resposta do servidor

Exibir o rastreamento

  1. No menu de recursos do aplicativo lógico Standard, em Ferramentas de Desenvolvimento , selecione Ferramentas Avançadas >Ir.

  2. Na barra de ferramentas do Kudu, selecione Console de Depuração>CMD.

  3. Navegue até a pasta da configuração do aplicativo denominada $SAP_RFC_TRACE_DIRECTORY.

    Uma nova pasta chamada NCo, ou qualquer nome de pasta que você usou, aparece para o valor de configuração do aplicativo, C:\home\LogFiles\NCo, que você definiu anteriormente.

  4. Abra a pasta $SAP_RFC_TRACE_DIRECTORY, que contenha o seguinte:

    • Logs de rastreamento NCo: um arquivo chamado dev_nco_rfc.log, um ou vários arquivos chamados nco_rfc_NNNN.loge um ou vários arquivos chamados arquivos nco_rfc_NNNN.trc em que NNNN é um identificador de thread.

    • Logs de rastreamento CPIC: um ou vários arquivos chamados arquivos nco_cpic_NNNN.trc, em que NNNN é identificador de thread.

  5. Para exibir o conteúdo de um arquivo de registro ou de rastreamento, selecione o botão Editar ao lado do arquivo.

    Observação

    Se você baixar um arquivo de log ou de rastreamento que o fluxo de trabalho do aplicativo lógico abriu e está em uso no momento, o download poderá resultar em um arquivo vazio.

Habilitar o rastreamento da CCL (Biblioteca de Criptografia Comum) da SAP (somente conector integrado)

Se você precisar investigar problemas com a biblioteca de criptografia ao usar a autenticação SNC, pode configurar o rastreamento personalizado baseado em arquivos de texto da CCL. Você pode usar esses logs da CCL para solucionar problemas de autenticação SNC ou compartilhá-los com o suporte da Microsoft ou SAP, se solicitado. Por padrão, esse recurso está desativado porque a habilitação desse rastreamento pode afetar negativamente o desempenho e consumir rapidamente o espaço de armazenamento do host do aplicativo.

Você pode controlar essa capacidade de rastreamento no nível do aplicativo adicionando as seguintes configurações:

  1. No portal do Azure, abra seu recurso de aplicativo lógico Padrão.

  2. No menu de recursos do aplicativo lógico Standard, em Ferramentas de Desenvolvimento , selecione Ferramentas Avançadas >Ir.

  3. Na barra de ferramentas do Kudu, selecione Console de Depuração>CMD.

  4. Acesse um local em C:\home\site\wwwroot e crie um arquivo de texto, por exemplo: CCLPROFILE.txt.

    Para obter mais informações sobre os parâmetros de registro, consulte Rastreamento> SAP NOTE 2338952. O exemplo a seguir fornece uma configuração de rastreamento de exemplo:

    ccl/trace/directory=C:\home\LogFiles\CCLLOGS
    ccl/trace/level=4
    ccl/trace/rotatefilesize=10000000
    ccl/trace/rotatefilenumber=10
    
  5. No menu do aplicativo lógico, em Configurações, selecione Variáveis de ambiente para conferir as configurações do aplicativo.

  6. Na página Variáveis de ambiente, na guia Configurações do aplicativo, adicione a seguinte configuração de aplicativo:

    CCL_PROFILE: o diretório onde CCLPROFILE.txt foi criado, por exemplo, C:\home\site\wwwroot\CCLPROFILE.txt.

  7. Salve suas alterações. Essa etapa reinicia o aplicativo.

Exibir o rastreamento

  1. No menu de recursos do aplicativo lógico Standard, em Ferramentas de Desenvolvimento , selecione Ferramentas Avançadas >Ir.

  2. Na barra de ferramentas do Kudu, selecione Console de Depuração>CMD.

  3. Navegue até a pasta para o parâmetro $ccl/trace/directory, que é do arquivo CCLPROFILE.txt.

    Normalmente, os arquivos de rastreamento têm os nomes sec-Microsoft.Azure.Work-$processId.trc e sec-sapgenpse.exe-$processId.trc.

    O fluxo de trabalho da sua lógica de aplicativo realiza a autenticação SNC como um processo de duas etapas:

    1. O fluxo de trabalho da sua lógica de aplicativo invoca o sapgenpse.exe para gerar um arquivo cred_v2 a partir do arquivo PSE.

      Você pode encontrar os rastreamentos relacionados a esta etapa em um arquivo chamado sec-sapgenpse.exe-$processId.trc.

    2. O fluxo de trabalho da sua lógica de aplicativo autentica o acesso ao seu servidor SAP consumindo o arquivo cred_v2 gerado, com a biblioteca cliente SAP invocando a biblioteca de criptografia comum.

      Você pode encontrar os rastreamentos relacionados a esta etapa em um arquivo chamado sec-Microsoft.Azure.Work-$processId.trc.

Enviar telemetria SAP do gateway de dados local para o Azure Application Insights

Com a atualização de agosto de 2021 do gateway de dados local, as operações do conector do SAP podem enviar dados telemétricos da biblioteca de clientes do SAP NCo e rastreamentos do Adaptador do SAP da Microsoft para o Application Insights, que é uma funcionalidade no Azure Monitor. Essa telemetria inclui principalmente os seguintes dados:

  • Métricas e rastreamentos com base em métricas e monitores SAP NCo.

  • Rastreamentos do Adaptador SAP da Microsoft.

Métricas e rastreamentos da biblioteca de clientes do SAP NCo

As métricas baseadas em SAP NCo são valores numéricos que podem ou não variar durante um período de tempo, com base no uso e disponibilidade dos recursos no gateway de dados local. É possível usar essas métricas para entender melhor a saúde do sistema e criar alertas sobre as seguintes atividades:

  • Diminuição da integridade do sistema.
  • Eventos incomuns.
  • Carga pesada do sistema.

Essas informações são enviadas para a tabela do Application Insights chamada customMetrics. Por padrão, as métricas são enviadas em intervalos de 30 segundos.

Os rastreamentos baseados em SAP NCo incluem informações de texto usadas com métricas. Essas informações são enviadas para a tabela do Application Insights chamada rastreamentos. Por padrão, os rastreamentos são enviados em intervalos de 10 minutos.

As métricas e os rastreamentos SAP NCo são baseados nas métricas SAP NCo, especificamente nas seguintes classes NCo:

  • RfcDestinationMonitor.
  • RfcConnectionMonitor.
  • RfcServerMonitor.
  • RfcRepositoryMonitor.

Para obter mais informações sobre as métricas fornecidas por cada classe, consulte a documentação do SAP NCo (entrada necessária).

Configurar a telemetria SAP de Application Insights

Antes de enviar a telemetria SAP da instalação do gateway para o Application Insights, é necessário criar e configurar o recurso Application Insights. Para mais informações, consulte a seguinte documentação:

Para habilitar o envio de telemetria SAP para o Application Insights, siga estas etapas:

  1. Faça download do pacote NuGet para Microsoft.ApplicationInsights.EventSourceListener.dll deste local: https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0.

  2. Adicione o arquivo baixado no diretório de instalação do gateway de dados local, por exemplo, “C:\Arquivos de Programas\Gateway de Dados Local”.

  3. No diretório de instalação do gateway de dados local, verifique se o arquivo Microsoft.ApplicationInsights.dll tem o mesmo número de versão que o arquivo Microsoft.ApplicationInsights.EventSourceListener.dll que você adicionou. Atualmente, o gateway usa a versão 2.14.0.

  4. No arquivo ApplicationInsights.config, adicione sua chave de instrumentação do Application Insights descompactando a linha com o elemento <InstrumentationKey></InstrumentationKey>. Substitua o espaço reservado, your-Application-Insights-instrumentation-key, pela sua chave, por exemplo:

    <?xml version="1.0" encoding="utf-8"?>
    <ApplicationInsights schemaVersion="2014-05-30" xmlns="http://schemas.microsoft.com/ApplicationInsights/2013/Settings">
       <!-- Uncomment this element and insert your Application Insights key to receive ETW telemetry about your gateway <InstrumentationKey>*your-instrumentation-key-placeholder*</InstrumentationKey> -->
       <TelemetryModules>
          <Add Type="Microsoft.ApplicationInsights.Extensibility.Implementation.Tracing.DiagnosticsTelemetryModule, Microsoft.ApplicationInsights">
             <IsHeartbeatEnabled>false</IsHeartbeatEnabled>
          </Add>
          <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
             <Sources>
                <Add Name="Microsoft-LobAdapter" Level="Verbose" />
             </Sources>
          </Add>
       </TelemetryModules>
    </ApplicationInsights>
    
  5. No arquivo ApplicationInsights.config, é possível alterar o valor Level de rastreamentos necessários nas operações do conector SAP, de acordo com os requisitos, por exemplo:

    <Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener">
       <Sources>
          <Add Name="Microsoft-LobAdapter" Level="Verbose" />
       </Sources>
    </Add>
    

    Para mais informações, consulte a seguinte documentação:

  6. Depois de aplicar as alterações, reinicie o serviço de gateway de dados local.

Revisar métricas no Application Insights

Depois que as operações SAP são executadas no fluxo de trabalho do aplicativo lógico, é possível revisar a telemetria que foi enviada ao Application Insights.

  1. No portal do Microsoft Azure, abra o recurso do Application Insights.

  2. No menu do recurso, em Monitoramento, selecione Logs.

    A captura de tela a seguir mostra o portal do Microsoft Azure com o Application Insights, que está aberto no painel Logs:

    Captura de tela mostrando o portal do Azure com o Application Insights aberto no painel

  3. No painel Logs, crie uma consulta usando a KQL (Linguagem de Consulta Kusto) com base nos requisitos específicos.

    Use um padrão de consulta semelhante à seguinte consulta de exemplo:

    customMetrics
    | extend DestinationName = tostring(customDimensions["DestinationName"])
    | extend MetricType = tostring(customDimensions["MetricType"])
    | where customDimensions contains "RfcDestinationMonitor"
    | where name contains "MaxUsedCount"
    
  4. Depois de executar a consulta, revise os resultados.

    A captura de tela a seguir mostra a tabela de resultados de métricas da consulta de exemplo:

    Captura de tela mostrando o Application Insights com a tabela de resultados de métricas.

    • MaxUsedCount é "O número máximo de conexões de cliente que foram usadas simultaneamente pelo destino monitorado", conforme descrito na Documentação do SAP NCo (credenciais necessárias). Use esse valor para entender o número de conexões abertas simultaneamente.

    • A coluna valueCount mostra 2 para cada leitura porque as métricas são geradas em intervalos de 30 segundos. O Application Insights agrega essas métricas por minuto.

    • A coluna DestinationName contém uma cadeia de caracteres que é um nome interno do Adaptador SAP da Microsoft.

      Para entender melhor esse destino RFC (Chamada de Função Remota), use esse valor com traces, por exemplo:

      customMetrics
      | extend DestinationName = tostring(customDimensions["DestinationName"])
      | join kind=inner (traces
         | extend DestinationName = tostring(customDimensions["DestinationName"]),
         AppServerHost = tostring(customDimensions["AppServerHost"]),
         SncMode = tostring(customDimensions["SncMode"]),
         SapClient = tostring(customDimensions["Client"])
         | where customDimensions contains "RfcDestinationMonitor"
         )
         on DestinationName , $left.DestinationName == $right.DestinationName
      | where customDimensions contains "RfcDestinationMonitor"
      | where name contains "MaxUsedCount"
      | project AppServerHost, SncMode, SapClient, name, valueCount, valueSum, valueMin, valueMax
      

Também é possível criar gráficos de métricas ou alertas usando esses recursos no Application Insights, por exemplo:

Captura de tela mostrando o Application Insights com os resultados no formato de gráfico.

Rastreamentos do Adaptador SAP da Microsoft

Use rastreamentos enviados do Adaptador SAP da Microsoft para o problema pós-análise e para encontrar erros de sistema internos existentes que possam ou não aparecer de operações do conector SAP. Esses rastreamentos definiram message como "n\a" porque vêm de uma estrutura de origem de evento anterior que antecede o Application Insights, por exemplo:

traces
| where message == "n/a"
| where severityLevel > 0
| extend ActivityId = tostring(customDimensions["ActivityId"])
| extend fullMessage = tostring(customDimensions["fullMessage"])
| extend shortMessage = tostring(customDimensions["shortMessage"])
| where ActivityId contains "8ad5952b-371e-4d80-b355-34e28df9b5d1"

A captura de tela a seguir mostra a tabela de resultados de rastreamentos da consulta de exemplo:

Captura de tela mostrando o Application Insights com a tabela de resultados de rastreamentos.

Próximas etapas