Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a: Aplicativos Lógicos do Azure (Consumo + Padrão)
Este guia de instruções com várias partes mostra como acessar seu servidor SAP a partir de um fluxo de trabalho nos Aplicativos Lógicos do Azure usando o conector SAP. Você pode usar as operações do conector SAP para criar fluxos de trabalho automatizados que são executados quando acionados por eventos no servidor SAP ou em outros sistemas e executar ações para gerenciar recursos no servidor SAP.
Os fluxos de trabalho do aplicativo lógico Standard e Consumption oferecem o conector gerenciado SAP hospedado e executado no Azure multilocatário. Os fluxos de trabalho padrão também oferecem o conector integrado SAP hospedado e executado em Azure Logic Apps para um único locatário. Para obter mais informações, consulte Referência técnica do conector.
Nota
Este guia compartilha links para o site da SAP para notas de suporte SAP e artigos da Base de conhecimento. Na maioria dos casos, você precisa fazer login para acessar o conteúdo completo.
Compatibilidade SAP
O conector SAP é compatível com os seguintes tipos de sistemas SAP:
Sistemas SAP locais e baseados em nuvem baseados em HANA, como o S/4 HANA.
Sistemas SAP locais clássicos, como R/3 e ECC.
O SAP deve suportar a versão do sistema SAP que você deseja conectar. Caso contrário, quaisquer problemas que você possa encontrar podem não ser resolvidos. Para obter mais informações sobre versões do sistema SAP e informações de manutenção, consulte a Matriz de disponibilidade de produtos SAP (PAM).
O conector SAP suporta os seguintes tipos de integração de mensagens e dados de sistemas baseados no SAP NetWeaver:
Documento Intermédio (IDoc)
Interface de programação de aplicativos de negócios (BAPI)
Chamada de função remota (RFC) e RFC transacional (tRFC)
O conector SAP utiliza a biblioteca SAP .NET Connector (NCo).
Para usar as operações do conector SAP, você precisa primeiro autenticar sua conexão e ter as seguintes opções:
Você pode fornecer um nome de usuário e senha.
O conector SAP suporta autenticação com SAP Secure Network Communications (SNC).
Você pode usar o SNC for SAP NetWeaver single sign-on (SSO) ou para recursos de segurança de produtos externos. Se você optar por usar o SNC, consulte os pré-requisitos do SNC.
Referência técnica do conector
O conector SAP tem diferentes versões, com base no tipo de aplicativo lógico e no ambiente host.
Aplicação de lógica | Ambiente | Versão do conector |
---|---|---|
Consumo | Aplicativos Lógicos do Azure Multilocatários | Conector gerenciado, que aparece na galeria de conectores sob o filtro Compartilhado . Para obter mais informações, consulte a seguinte documentação: - Referência do conector gerenciado SAP - Conectores gerenciados em Aplicativos Lógicos do Azure |
Padrão | Logic Apps do Azure e Ambiente do Serviço de Aplicações v3 de locatário único (apenas planos Windows) | Conector gerido, que aparece na galeria de conectores em Runtime>Shared, e o conector integrado, que aparece na galeria de conectores sob o filtro Integrado e baseado em provedor de serviços. O conector integrado pode aceder diretamente às redes virtuais do Azure com uma cadeia de conexão sem um gateway de dados local. Para obter mais informações, consulte a seguinte documentação: - Referência do conector gerenciado SAP - Referência do conector integrado SAP - Conectores gerenciados em Aplicativos Lógicos do Azure - Conectores incorporados nas Aplicações Lógicas do Azure |
Diferenças de conectores
O conector integrado SAP difere significativamente do conector gerenciado SAP 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 o servidor SAP na rede virtual integrada, o que evita saltos, latência e pontos de falha para um gateway de rede. Certifique-se de carregar ou implantar as bibliotecas de cliente SAP não redistribuíveis com seu aplicativo de fluxo de trabalho de aplicativo lógico. Para obter mais informações, consulte os Pré-requisitos neste guia.
Os fluxos de trabalho de aplicativos lógicos padrão exigem e usam a biblioteca de cliente SAP NCo 3.1, não a versão SAP NCo 3.0. Para obter mais informações, veja os Pré-requisitos.
Por padrão, operações do conector integrado SAP são sem estado. No entanto, você pode habilitar o modo stateful (afinidade) para essas operações.
No modo stateful, o conector integrado SAP suporta alta disponibilidade e configurações de expansão horizontal. Em comparação, o conector gerido pela SAP tem restrições quanto ao gateway de dados on-premises, limitado a uma única instância para gatilhos e a clusters apenas no modo de contingência para ações. Para obter mais informações, consulte conector gerido pela SAP - Problemas conhecidos e limitações.
São suportados tamanhos de carga útil de até 100 MB, portanto, você não precisa usar um URI de blob para solicitações grandes.
Ações específicas estão disponíveis para Call BAPI, Call RFC e Send IDoc. Essas ações dedicadas oferecem uma melhor experiência para BAPIs com estado, transações RFC e desduplicação de IDoc, e não utilizam o modelo de mensagens SOAP Windows Communication Foundation (WCF) mais antigo.
A ação Call BAPI inclui até duas respostas com o JSON retornado:
A resposta XML do chamado BAPI.
A resposta de confirmação BAPI ou reversão BAPI, se você habilitar a opção Confirmação automática .
Esse recurso resolve um problema com o conector gerenciado SAP em que o resultado do comportamento de confirmação automática é silencioso e observável apenas por meio de logs.
Os fluxos de trabalho de aplicativos lógicos padrão fornecem configurações de aplicativo onde 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 SAP. Nos fluxos de trabalho da aplicação lógica Consumption, o conector gerido SAP permite-lhe especificar esses valores através de parâmetros de conexão, o que poderia permitir o carregamento de vários ficheiros PSE, mas não é suportado, causando falhas na conexão SAP.
Um período de inatividade mais longo em comparação com o conector gerido pela SAP.
O conector interno SAP é executado nativamente no tempo de execução dos Aplicativos Lógicos do Azure, ao contrário do conector gerenciado SAP que é executado na infraestrutura compartilhada, global e multilocatária do Azure. Essa diferença de design significa que você pode alterar o valor de tempo limite padrão no recurso de aplicativo lógico padrão usando as configurações dehost.json chamadas Runtime.FlowRunRetryableActionJobCallback.ActionJobExecutionTimeout e functionTimeout.
A capacidade de ajustar o valor de tempo limite significa que você pode usar o conector integrado SAP as-is para solicitações síncronas de longa execução. Caso contrário, essas solicitações terão de usar o padrão de ação para pedidos baseados em webhook de longa duração no conector gerido pela SAP, que tem um tempo de espera significativamente mais curto de dois minutos para pedidos síncronos.
Onde encontrar os
guid
parâmetros etId
Os parâmetros XML para
guid
etId
não estão mais disponíveis em cargas úteis XML de entrada e saída. Em vez disso, você pode encontrar os parâmetros como parâmetros explícitos no designer de fluxo de trabalho na guia Parâmetros e como expressões de saída dinâmicas.Manipulando elementos XML vazios
Conector integrado SAP: um elemento XML vazio é tratado como um parâmetro SAP com um valor vazio explícito ou um valor padrão. Para omitir o envio do parâmetro para o SAP, basta remover o elemento vazio da carga útil de entrada.
Conector gerenciado SAP: um elemento XML vazio é interpretado como um parâmetro ausente e não é enviado para a função SAP.
Exemplo
Suponha que você tenha a seguinte carga útil de entrada do SAP RFC:
<RfcName> <Parameter></Parameter> </RfcName>
No conector integrado SAP, a chamada SAP RFC inclui o parâmetro como um valor vazio explícito ('').
No conector gerenciado SAP, a chamada SAP RFC omite totalmente o parâmetro.
Aparar caracteres de espaço em branco
O conector integrado SAP corta automaticamente caracteres de espaço em branco em elementos XML.
Por exemplo, suponha que você tenha a seguinte entrada:
<RfcName> <Parameter> </Parameter> </RfcName>
Na chamada da função SAP RFC, o espaço em branco no valor Parameter é tratado como uma cadeia de caracteres vazia ('') e é cortado. Para garantir que a chamada mantenha o espaço em branco exatamente como fornecido na carga útil, inclua o atributo
xml:space="preserve"
com o elemento para cumprir a especificação W3C 2.10 White Space Handling, por exemplo:<RfcName> <Parameter xml:space="preserve"> </Parameter> </RfcName>
Validando o formato IDoc
Conector integrado SAP: valida estritamente a carga útil de entrada contra o
IDoc Format
especificado nos dados de ação. Se existir uma incompatibilidade entre aIDoc Format
fornecida e a estrutura IDoc XML de entrada, o conector interno lançará um erro.Conector gerenciado SAP: infere diretamente o formato IDoc da carga útil de entrada, permitindo mais flexibilidade ao não exigir um formato exatamente correspondente.
Manipulando segmentos de grupo XML do BizTalk
Conector integrado SAP: Segue estritamente o esquema definido pelo gerador de esquema.
Um segmento que termina com
GRP
(segmento de grupo) deve conter quaisquer subsegmentos apenas uma vez por instância.Para representar vários conjuntos de segmentos filho, crie várias instâncias do segmento de grupo para que cada instância contenha seu próprio conjunto individual de segmentos filho.
Conector gerenciado SAP: permite várias repetições de elementos filho em um único segmento de grupo. Essas repetições são interpretadas como múltiplas instâncias do segmento de grupo.
Exemplo de comportamento
Na estrutura a seguir, um único segmento de grupo define várias sequências de elementos filho, que são rejeitados pelo conector integrado SAP:
<ns2:E2EDKT1002GRP> <ns2:E2EDKT1002> <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM> <ns2:TDID>FD</ns2:TDID> </ns2:E2EDKT1002> <ns2:E2EDKT2001> <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM> <ns2:TDLINE>CRSD</ns2:TDLINE> </ns2:E2EDKT2001> <ns2:E2EDKT1002> <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM> <ns2:TDID>DTP</ns2:TDID> </ns2:E2EDKT1002> <ns2:E2EDKT2001> <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM> <ns2:TDLINE>OriginalRelease:0|</ns2:TDLINE> <ns2:TDFORMAT>/</ns2:TDFORMAT> </ns2:E2EDKT2001> </ns2:E2EDKT1002GRP>
Em vez disso, utilize a seguinte estrutura para o conector integrado da SAP, onde cada instância de grupo
E2EDKT1002GRP
contém apenas uma única sequência de segmentos-filho:<ns2:E2EDKT1002GRP> <ns2:E2EDKT1002> <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM> <ns2:TDID>FD</ns2:TDID> </ns2:E2EDKT1002> <ns2:E2EDKT2001> <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM> <ns2:TDLINE>CRSD</ns2:TDLINE> </ns2:E2EDKT2001> </ns2:E2EDKT1002GRP> <ns2:E2EDKT1002GRP> <ns2:E2EDKT1002> <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT1002</ns2:DATAHEADERCOLUMN_SEGNAM> <ns2:TDID>DTP</ns2:TDID> </ns2:E2EDKT1002> <ns2:E2EDKT2001> <ns2:DATAHEADERCOLUMN_SEGNAM>E2EDKT2001</ns2:DATAHEADERCOLUMN_SEGNAM> <ns2:TDLINE>OriginalRelease:0|</ns2:TDLINE> <ns2:TDFORMAT>/</ns2:TDFORMAT> </ns2:E2EDKT2001> </ns2:E2EDKT1002GRP>
Comportamento de disparador integrado
Construção de namespace
O gatilho constrói o namespace na carga útil do gatilho SAP usando o número da versão de lançamento dos metadados do IDoc, que é recuperado antes de analisar um IDoc (XML do BizTalk ou XML simples). Para substituir esta fonte e, em vez disso, usar o número da versão do registro de controle, vá para o designer de fluxo de trabalho e, nos parâmetros de entrada do gatilho, defina a propriedade EnforceControlRecordNamespace como true.
Manipulação de elementos vazios
Por padrão, o gatilho SAP não inclui elementos vazios na carga útil de saída. Para incluir elementos vazios na saída do gatilho, vá para o designer de fluxo de trabalho e, nos parâmetros de entrada do gatilho, defina a propriedade EnableEmptyXmlNode como true.
Ação embutida Gerar Esquema
Você pode selecionar entre vários tipos de operação, como BAPI, IDoc, RFC e tRFC, versus a mesma ação no conector gerenciado SAP, que usa o parâmetro SapActionUris e uma experiência de seletor de sistema de arquivos.
Você pode fornecer diretamente um nome de parâmetro como um valor personalizado. Por exemplo, pode especificar o parâmetro Nome da RFC na ação Chamar RFC. Em comparação, no conector gerenciado SAP, você precisa fornecer um nome de parâmetro URI de ação complexo.
Por design, essa ação não suporta a geração de vários esquemas para RFCs, BAPIs ou IDocs na execução de uma única ação, que o conector gerenciado SAP suporta. Essa alteração de capacidade agora impede tentativas de enviar grandes quantidades de conteúdo em uma única chamada.
Parâmetros do conector
Juntamente com entradas simples de texto e número, o conector SAP aceita os seguintes parâmetros de tabela (Type=ITAB
entradas):
- Parâmetros de direção da 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 versões mais recentes do SAP.
- Parâmetros hierárquicos da tabela.
Problemas e limitações conhecidos
Conector gerenciado SAP
Atualmente, o conector SAP não suporta cadeias de caracteres do roteador SAP. O gateway de dados local deve existir em uma rede virtual onde o gateway possa acessar diretamente o sistema SAP que você deseja conectar.
Em geral, o gatilho SAP não oferece 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 diferir do nó ativo, o que resulta em um comportamento inesperado.
Para cenários de envio de mensagens, há suporte para clusters de gateway de dados no modo de failover.
As ações SAP com estado não oferecem suporte a clusters de gateway de dados no modo de balanceamento de carga. As comunicações com estado devem permanecer no mesmo nó de cluster do gateway de dados. Utilize o gateway de dados no modo não cluster ou num cluster configurado apenas para failover. Por exemplo, esse cenário se aplica às seguintes ações:
- Todas as ações que especificam um valor de ID de sessão
- [BAPI] Confirmar transação
- [BAPI] Transação de reversão
- [BAPI - RFC] Fechar sessão com estado
- [BAPI - RFC] Criar sessão com estado
Na ação denominada método Call [BAPI] no SAP, o recurso de confirmação automática não confirma as alterações do BAPI se existir pelo menos um aviso no objeto CallBapiResponse retornado pela ação. Para confirmar alterações BAPI apesar de quaisquer avisos, siga estes passos:
- Crie uma sessão explicitamente usando a ação chamada [BAPI - RFC] Criar sessão com estado.
- Na ação denominada [BAPI] Chamar método no SAP, desative a opção Auto Commit.
- Em vez disso, chame a ação chamada [BAPI] Commit transaction .
Conexões baseadas em IP com o SAP Message Server (configuração com balanceamento de carga)
Se você especificar um endereço IP para se conectar a um SAP Message Server, por exemplo, um balanceador de carga, a conexão ainda poderá falhar com uma mensagem de erro semelhante a "hostname SAPDBSERVER01.example.com unknown". O servidor de mensagens instrui o conector SAP a usar um nome de host para a conexão com o servidor de aplicativos SAP back-end ou o servidor por trás do balanceador de carga. Se o DNS não conseguir resolver o nome do host, a conexão falhará.
Para esse problema, existem as seguintes soluções alternativas:
Certifique-se de que o cliente que faz a conexão, como o computador com o gateway de dados local para o conector SAP, possa resolver os nomes de host retornados pelo servidor de mensagens.
Na transação chamada RZ11, altere ou adicione a configuração SAP chamada ms/lg_with_hostname=0.
Contexto ou antecedentes do problema
A SAP atualizou seu conector .NET (NCo) para a versão 3.1, o que mudou a maneira como o conector solicita conexões com servidores back-end a partir 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 SMLG não considerada durante o login no grupo de logon.
Pré-requisitos
Uma conta Azure e uma subscrição. Se ainda não tiver uma subscrição do Azure, inscreva-se numa conta gratuita do Azure.
O servidor de aplicativos SAP ou o servidor de mensagens SAP que você deseja acessar a partir dos Aplicativos Lógicos do Azure.
Configure seu 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 suportados e a autorização mínima necessária para cada tipo de ação (RFC, BAPI, IDoc), consulte Nota SAP: 460089 - Perfis mínimos de autorização para programas RFC externos.
Sua conta de usuário SAP precisa acessar o grupo de
RFC_METADATA
funções e os respetivos módulos de função para as seguintes operações:Operações Aceder a módulos de função Ações da RFC RFC_GROUP_SEARCH
eDD_LANGU_TO_ISOLA
Ações BAPI BAPI_TRANSACTION_COMMIT
,BAPI_TRANSACTION_ROLLBACK
,RPY_BOR_TREE_INIT
,SWO_QUERY_METHODS
, eSWO_QUERY_API_METHODS
Ações do IDoc IDOCTYPES_LIST_WITH_MESSAGES
,IDOCTYPES_FOR_MESTYPE_READ
,INBOUND_IDOCS_FOR_TID
,OUTBOUND_IDOCS_FOR_TID
,GET_STATUS_FROM_IDOCNR
, eIDOC_RECORD_READ
Ação de ler tabela SAP Tanto RFC BBP_RFC_READ_TABLE
comoRFC_READ_TABLE
Conceder acesso mínimo restrito ao servidor SAP para a sua ligação SAP RFC_METADATA_GET
eRFC_METADATA_GET_TIMESTAMP
O fluxo de trabalho do aplicativo lógico de onde você deseja acessar seu servidor SAP.
Para um fluxo de trabalho de consumo em Aplicativos Lógicos multilocatário do Azure, consulte Pré-requisitos multilocatário.
Para um fluxo de trabalho padrão em Aplicativos Lógicos do Azure de locatário único, consulte Pré-requisitos de locatário único.
Por padrão, operações do conector integrado SAP são sem estado. Para executar estas operações no modo stateful, consulte Habilitar o modo stateful para conectores incorporados sem estado.
As comunicações com estado devem permanecer com a mesma instância de fluxo de trabalho durante o processamento. Um aplicativo lógico padrão pode usar ampliar a escala para distribuir a carga de trabalho em várias instâncias de fluxo de trabalho quando necessário. Este requisito aplica-se aos seguintes tipos de operações:
Todas as ações que especificam um valor de ID de sessão, como a transação [BAPI] Commit.
Todas as ações que especificam um valor de ID de transação , exceto as seguintes ações: [IDOC - RFC] Confirmar ID da transação e [IDoc] Obter lista de IDoc para transação.
Responder ao servidor SAP
Para usar o gatilho do conector, seja o gerenciado pela SAP ou o integrado, chamado Quando uma mensagem é recebida, execute as seguintes tarefas:
Configure suas permissões de segurança do gateway SAP ou a Lista de Controle de Acesso (ACL). Na caixa de diálogo Gateway Monitor (T-Code SMGW), que mostra os arquivos secinfo e reginfo, abra o menu Goto e selecione Expert Functions>>
A seguinte configuração de permissão é necessária:
P TP=LOGICAPP HOST=<on-premises-gateway-server-IP-address> ACCESS=*
Esta 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, poderá receber o seguinte erro:
Registo do tp Microsoft.PowerBI.EnterpriseGateway do host <nome-do-host> não permitido
Para obter mais informações, consulte SAP KB Artigo 1850230 - GW: "Registro de ID< do programa tp >não permitido".
Configure o log de segurança do gateway SAP para ajudar a encontrar problemas de ACL (Lista de Controle de Acesso). Para obter mais informações, consulte o artigo de ajuda do SAP sobre como configurar o registro em 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. Certifique-se de que o Tipo de Ativação está definido como Programa de Servidor Registrado. Defina o valor Tipo de comunicação da conexão RFC com sistema de destino como Unicode.
Se você usar esse gatilho SAP com o parâmetro IDOC Format definido como FlatFile junto com a ação Flat File Decode, será necessário usar a
early_terminate_optional_fields
propriedade em seu esquema de arquivo simples definindo o valor comotrue
.Este requisito é necessário porque o registo de dados IDoc de ficheiro plano enviado pelo SAP na chamada
IDOC_INBOUND_ASYNCHRONOUS
tRFC não está preenchido até ao comprimento total do campo SDATA. Azure Logic Apps fornece os dados originais do IDoc no formato flat file sem preenchimento, conforme recebido do SAP. Além disso, quando você combina esse gatilho SAP com a ação Decodificação de arquivo simples , o esquema fornecido para a ação deve corresponder.Nos fluxos de trabalho de Consumo e Padrão, o gatilho gerido pela SAP chamado Quando uma mensagem é recebida utiliza o mesmo endereço URI para renovar e cancelar a assinatura de um webhook. A operação de renovação usa o método HTTP
PATCH
, enquanto a operação de cancelamento de inscrição usa o método HTTPDELETE
. Esse comportamento pode fazer com que uma operação de renovação apareça como uma operação de cancelamento de inscrição no histórico do gatilho, mas a operação ainda é uma renovação porque o gatilho usaPATCH
como o método HTTP, nãoDELETE
.Em fluxos de trabalho padrão, o gatilho interno do SAP chamado Quando uma mensagem é recebida usa, em vez disso, o gatilho do Azure Functions e apenas mostra os retornos de chamada reais do SAP.
Para o gatilho de conector interno SAP chamado Quando uma mensagem é recebida, você precisa habilitar a integração de rede virtual e portas privadas seguindo as etapas em Habilitar modo com monitoração de estado para conectores internos sem monitoração de estado nos Aplicativos Lógicos do Azure. Caso contrário, sem esses requisitos, a ação chamada Responder ao servidor SAP pode não ter o estado necessário para funcionar corretamente.
Para disparar localmente o gatilho, você pode executar o fluxo de trabalho no Visual Studio Code. Para obter os requisitos de configuração do Visual Studio Code e mais informações, consulte Criar fluxos de trabalho padrão nos Aplicativos Lógicos do Azure com o Visual Studio Code. Você também deve configurar as seguintes variáveis de ambiente no computador onde você instala o Visual Studio Code:
- WEBSITE_PRIVATE_IP: Defina esse valor de variável de ambiente como 127.0.0.1 como o endereço localhost.
- WEBSITE_PRIVATE_PORTS: Defina o valor desta variável de ambiente para duas portas livres e utilizáveis no 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 IDoc de exemplo. Esse conteúdo deve estar em formato XML e incluir o namespace da ação SAP que você deseja usar. Você pode enviar IDocs com um esquema de arquivo simples envolvendo-os em um envelope XML.
Para cenários em que pretenda enviar IDocs do fluxo de trabalho da sua aplicação lógica para o SAP, altere o modo de processamento SAP da configuração padrão Acionado imediatamente para Acionado por programa em segundo plano para evitar que o fluxo de trabalho exceda o tempo limite.
Se o seu sistema SAP estiver sob carga, o IDoc em fila requer um tempo de espera. Um cenário de exemplo é quando o seu fluxo de trabalho envia um lote de IDocs de uma só vez para o SAP. O modo de processamento padrão faz com que o sistema SAP bloqueie a chamada de entrada para transmissão de IDoc até que um IDoc termine o processamento. Nos Aplicativos Lógicos do Azure, as ações de fluxo de trabalho têm um tempo limite de 2 minutos, por padrão.
Para alterar o modo de processamento do sistema SAP, siga estas etapas:
No SAP, localize o perfil de parceiro SAP e abra as configurações de perfis de parceiro. Pode utilizar o código de transação we20 (T-Code) com o prefixo /n.
Na aba Opções de Entrada, em Processamento por Módulo de Função, altere a configuração para Acionado por programa em segundo plano a partir de Acionado imediatamente.
A configuração Trigger by background program permite que a chamada
IDOC_INBOUND_ASYNCHRONOUS
tRFC de transporte de IDoc subjacente seja concluída imediatamente, em vez de bloquear a conexão até que o IDoc termine o processamento. No entanto, esta configuração só funciona se o IDoc não incluir o segmento que substitui o comportamento Express, de acordo com o artigo do SAP KB 1777090 - os IDocs são processados imediatamente, apesar de trazerem a opção "Trigger by background program" selecionada no WE20.
Para obter mais informações, consulte os seguintes recursos:
Pré-requisitos de conectividade de rede
O sistema SAP requer conectividade de rede do host da biblioteca SAP .NET Connector (NCo):
Para fluxos de trabalho de aplicativos lógicos de consumo em Aplicativos Lógicos do Azure multilocatário, o gateway de dados local hospeda a biblioteca SAP .NET Connector (NCo). 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 padrão de aplicativos lógicos em locatário único dos Aplicativos Lógicos do Azure, o recurso do aplicativo lógico hospeda a biblioteca SAP .NET Connector (NCo). Portanto, o próprio recurso do aplicativo lógico deve permitir a integração de rede virtual, e essa rede virtual deve ter conectividade de rede com o sistema SAP.
A conectividade de rede necessária pelo sistema SAP inclui os seguintes servidores e serviços:
Servidor de aplicativos SAP, serviço Dispatcher (para todos os tipos de logon)
Seu sistema SAP pode incluir vários servidores de aplicativos SAP. O host da biblioteca SAP .NET Connector (NCo) requer acesso a cada servidor e seus serviços.
Servidor de Mensagens SAP, Serviço de Mensagens (para Grupo do tipo Logon)
O Servidor de Mensagens e o serviço serão redirecionados para um ou mais serviços de Dispatcher do Servidor de Aplicativos. O host da biblioteca SAP .NET Connector (NCo) requer acesso a cada servidor e seus serviços.
Servidor Gateway SAP, Serviço de Gateway
Servidor SAP Gateway, serviço seguro do Gateway
A conectividade de rede necessária pelo sistema SAP também inclui este servidor e serviço para uso com Secure Network Communications (SNC).
O redirecionamento automático de solicitações do Servidor de Aplicações e do serviço Dispatcher para o Servidor Gateway e o serviço Gateway ocorre dentro da biblioteca SAP .NET Connector (NCo). Esse redirecionamento ocorre mesmo se apenas as informações do serviço Servidor de Aplicativos, Dispatcher forem fornecidas nos parâmetros de conexão.
Se você usar um balanceador de carga na frente do seu sistema SAP, deverá redirecionar todos os serviços para seus respetivos servidores.
Para obter mais informações sobre portas e serviços SAP, consulte Portas TCP/IP de todos os produtos SAP.
Nota
Certifique-se de que ativou a conectividade de rede a partir do anfitrião da biblioteca SAP .NET Connector (NCo) e de que as portas necessárias estão abertas em firewalls e grupos de segurança de rede. Caso contrário, você receberá erros como parceiro não alcançado do componente NI (interface de rede) e texto de erro como WSAECONNREFUSED: Connection refused.
Pré-requisitos da biblioteca de clientes SAP NCo
Para usar o conector SAP, você precisa instalar a biblioteca de cliente SAP Connector NCo para Microsoft .NET 3.1. A lista a seguir descreve os pré-requisitos para a biblioteca de clientes SAP NCo, com base no fluxo de trabalho em que você usa o conector SAP:
Versão:
Para fluxos de trabalho de aplicativos lógicos de consumo que usam o gateway de dados local, certifique-se de instalar a versão mais recente de 64 bits, SAP Connector for Microsoft .NET 3.1.3.0 for Windows 64 bit (x64). O gateway de dados funciona apenas em sistemas de 64 bits. A instalação da versão de 32 bits não suportada resulta num erro de "imagem incorreta ".
Para fluxos de trabalho de aplicativos lógicos padrão, você pode instalar a versão mais recente de 64 bits ou 32 bits do SAP Connector (NCo 3.1) para Microsoft .NET 3.1.3.0 compilada com o .NET Framework 4.6.2. No entanto, certifique-se de instalar a versão que corresponde à configuração no recurso do aplicativo lógico padrão. Para verificar a versão usada pelo seu aplicativo lógico, siga estas etapas:
No portal do Azure, abra seu recurso de aplicativo lógico padrão.
No menu de recursos do aplicativo lógico, em Configurações, selecione Configuração.
Na página Configuração, selecione a guia Configurações gerais. Em Configurações da plataforma, verifique se o valor da plataforma está definido como 64 bits ou 32 bits.
Certifique-se de instalar a versão do SAP Connector (NCo 3.1) para Microsoft .NET 3.1.3.0 compilada com o .NET Framework 4.6.2 que corresponda à configuração da sua plataforma.
Na pasta de instalação padrão da biblioteca do cliente, copie os arquivos de assembly (.dll) para outro local, com base no seu cenário, da seguinte maneira. Ou, opcionalmente, se você usar apenas o conector gerenciado SAP, ao instalar a biblioteca de cliente SAP NCo, selecione Registro de cache de assembly global. Atualmente, o conector integrado do SAP não suporta o registro GAC.
Para um fluxo de trabalho de Consumo executado em Azure Logic Apps multicliente e usando o seu gateway de dados on-premises, copie os seguintes arquivos de assembly (.dll) para a pasta de instalação do gateway de dados on-premises, por exemplo, C:\Arquivos de Programas\Gateway de Dados Local. A biblioteca cliente SAP NCo 3.0 contém as seguintes assemblies:
- libicudecnumber.dll
- rscp4n.dll
- sapnco.dll
- sapnco_utils.dll
Certifique-se de copiar os arquivos de assembly para a pasta de instalação do gateway de dados. Caso contrário, sua conexão SAP pode falhar com a mensagem de erro, verifique as informações e/ou permissões da sua conta e tente novamente. Você pode solucionar outros problemas usando o visualizador de log de vinculação de assembly .NET. Esta ferramenta permite que você verifique se seus arquivos de montagem estão no local correto.
Para fluxos de trabalho padrão, copie os seguintes arquivos de assembly (.dll) para um local de onde você pode carregá-los para seu recurso de aplicativo lógico no portal do Azure ou para seu projeto de aplicativo lógico local no Visual Studio Code. A biblioteca de clientes SAP NCo 3.1 inclui os seguintes componentes:
- rscp4n.dll
- sapnco.dll
- sapnco_utils.dll
Existem as seguintes relações entre a biblioteca de cliente SAP NCo, o .NET Framework, o tempo de execução do .NET e o gateway de dados:
O Microsoft SAP Adapter e o serviço de host de gateway usam o .NET Framework 4.7.2.
O SAP NCo para .NET Framework 4.0 funciona com processos que usam o tempo de execução do .NET 4.0 a 4.8.
O SAP NCo para .NET Framework 2.0 funciona com processos que usam o tempo de execução do .NET 2.0 a 3.5, mas não funciona mais com o gateway mais recente.
Pré-requisitos do SNC
Para fluxos de trabalho de Consumo em Azure Logic Apps multilocatários que usam o gateway de dados local e opcionalmente o SNC, você também deve definir as seguintes configurações.
Verifique se a versão da biblioteca SNC e suas dependências são compatíveis com o 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 do cliente SAP NCo 3.0 para a pasta de instalação do gateway de dados local, por exemplo, C:\Program Files\On-Premises Data Gateway.
- libicudecnumber.dll
- rscp4n.dll
- sapnco.dll
- sapnco_utils.dll
Para o utilitário SAPGENPSE, deve usar especificamente sapgenpse.exe.
Se você fornecer um ambiente de segurança pessoal (PSE) 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 SNC existe no mesmo computador que a instalação do gateway de dados. Para esta tarefa, copie os arquivos binários da biblioteca SNC para a mesma pasta que a instalação do gateway de dados no computador local, por exemplo, C:\Program Files\On-Premises Data Gateway.
Nota
No computador com a instalação do gateway de dados e a biblioteca SNC, não defina as variáveis de ambiente para SNC_LIB e SNC_LIB_64. Caso contrário, essas variáveis têm precedência sobre o valor da biblioteca SNC passado pelo conector.
Para usar o SNC com logon único (SSO), certifique-se de que o serviço de gateway de dados está a ser executado por um utilizador mapeado para um utilizador SAP. Para alterar a conta padrão da conta de serviço de gateway, selecione Alterar conta e insira as credenciais do usuário.
Para obter mais informações sobre como habilitar o SNC, consulte Habilitar comunicações de rede seguras (SNC).
Pré-requisitos do ambiente do Azure Logic Apps
Para um fluxo de trabalho de Consumo em Azure Logic Apps multitenant, o conector gerenciado SAP integra-se aos sistemas SAP por meio de um gateway local de dados. Por exemplo, em cenários em que seu fluxo de trabalho envia uma mensagem para o sistema SAP, o gateway de dados atua como um cliente RFC e encaminha as solicitações recebidas do 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.
Em um computador host ou máquina virtual que está na mesma rede virtual que o sistema SAP ao qual você está a conectar-se, descarregue e instale o gateway de dados no local.
O gateway de dados ajuda você a acessar dados e recursos locais com segurança. Certifique-se de usar uma versão suportada 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.
No portal do Azure, crie um recurso de gateway do Azure para sua instalação de gateway de dados local.
No mesmo computador local onde está instalada a gateway de dados local, descarregue e instale a biblioteca de cliente mais recente do SAP NCo.
Para o computador host com a instalação do seu gateway local de dados, configure os nomes de host da rede e a resolução de nomes de serviços.
Para utilizar os nomes de host ou nomes de serviço para ligações dos Azure Logic Apps, é necessário configurar a resolução de nomes para cada servidor das aplicações SAP, incluindo o servidor de mensagens e o servidor Gateway, juntamente com os seus serviços.
No arquivo %windir%\System32\drivers\etc\hosts ou no servidor DNS disponível para o computador anfitrião para a instalação do seu gateway de dados local, configure a resolução de nomes de host de rede.
No ficheiro %windir%\System32\drivers\etc\services, configure a resolução do nome do serviço.
Se você não pretende usar nomes de host de rede ou nomes de serviço para a conexão, você 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, o exemplo a seguir mostra uma entrada de exemplo para o arquivo 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 comunicações de rede seguras (SNC)
Para um fluxo de trabalho de Consumo executado em Aplicações Lógicas do Azure multitenante, pode-se habilitar o SNC para autenticação, que se aplica somente quando se usa o gateway de dados. Antes de começar, certifique-se de que você atendeu a todos os pré-requisitos necessários e pré-requisitos SNC.
Para obter mais informações sobre o SNC, consulte Introdução ao SAP SNC para integrações RFC - Blog da SAP.
No portal do Azure, abra seu aplicativo lógico de consumo e fluxo de trabalho no designer.
Adicione uma operação de conector gerenciado SAP ou edite a conexão para uma operação existente.
Na caixa Informações de conexão SAP, forneça as informações necessárias.
Nota
Para Tipo de Autenticação, Basic é atualmente a única opção disponível. Os campos Nome de usuário e Senha SAP são opcionais. Se você não fornecer um nome de usuário e senha, o conector usará o certificado de cliente fornecido em uma etapa posterior para autenticação.
Para habilitar o SNC, na caixa Informações de conexão SAP, selecione Usar SNC e forneça as informações necessárias correspondentes:
Parâmetro Descrição Biblioteca SNC Insira um dos seguintes valores:
- O nome da sua biblioteca 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 NCo, por exemplo, c:\security\sapsnc.dllSNC SSO Selecione Iniciar sessão usando a identidade SNC ou Iniciar sessão com o nome de utilizador/senha fornecido ao nível RFC.
Normalmente, a identidade 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.SNC Meu Nome Na maioria dos casos, você pode omitir esse valor. Normalmente, a solução SNC instalada conhece o seu próprio nome SNC. No caso em que sua solução oferece 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 Digite 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 usado para a comunicação SNC com esse destino ou servidor específico. O sistema back-end define o valor padrão. O produto de segurança usado para SNC define o valor máximo. Certificado SNC Insira a chave pública codificada em base64 para o certificado a ser usado para identificar seu cliente no SAP.
Nota: Certifique-se de seguir estas orientações:
- Não inclua o cabeçalho ou o rodapé do PEM.
- Não insira a chave privada para o certificado do cliente aqui. Seu Ambiente de Segurança Pessoal (PSE) deve conter a chave privada correspondente para este certificado e pode conter outros certificados privados. Para obter mais informações, consulte o próximo parâmetro.PSE Insira seu SNC Personal Security Environment (PSE) como um binário codificado em base64.
- O seu PSE deve conter a chave privada do certificado do cliente, onde 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 cliente, para usar certificados de cliente diferentes, crie fluxos de trabalho separados.Para concluir a criação da sua ligação, selecione Criar novo.
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âmetros de conexão, você pode usar a instalação do gateway de dados local e os logs locais do gateway.
Converter um arquivo PSE binário em formato codificado em base64
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" }
Salve o script como um arquivo pseConvert.ps1 e 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 conterá quebras de linha. Remova as quebras de linha na cadeia de caracteres codificada em base 64 para o parâmetro de entrada de conexão.
Configurar e testar o envio de IDocs do SAP para o seu fluxo de trabalho
Para enviar IDocs do SAP para o fluxo de trabalho do aplicativo lógico, siga estas etapas para configurar e testar a configuração do SAP com o fluxo de trabalho do aplicativo lógico. Essas etapas se aplicam apenas aos testes porque os ambientes de produção exigem outra configuração.
Para enviar IDocs do SAP para seu fluxo de trabalho, você precisa configurar a configuração mínima seguindo estas etapas:
- Crie um destino RFC.
- Crie uma conexão ABAP (Advanced Business Application Programming).
- Crie uma porta recetora.
- Crie uma porta de remetente.
- Crie um parceiro de sistema lógico.
- Crie um perfil de parceiro.
- Teste o envio de mensagens.
Criar destino RFC
Esse destino identifica o fluxo de trabalho do aplicativo lógico como a porta do recetor.
No SAP, abra as Configurações de Conexões RFC. Você pode usar o código de transação sm59 (T-Code) com o prefixo /n .
Selecione Conexões TCP/IP>Criar.
Crie um novo destino RFC com as seguintes configurações:
Para RFC Destination, insira um nome.
Na guia Configurações técnicas, para Tipo de ativação, selecione Programa de servidor registrado.
Para ID do programa, insira um valor. No servidor SAP, o gatilho do fluxo de trabalho é registrado usando esse identificador.
Importante
O ID do programa SAP é sensível a maiúsculas e minúsculas. Certifique-se de usar consistentemente a mesma combinação de maiúsculas e minúsculas para o seu ID de programa ao configurar o seu fluxo de trabalho e servidor SAP. Caso contrário, poderá receber os seguintes erros no monitor tRFC (T-Code SM58) quando tenta enviar um IDoc para o SAP:
- Função IDOC_INBOUND_ASYNCHRONOUS não encontrada
- Cliente RFC não-ABAP (tipo de parceiro) não suportado
Para obter mais informações do SAP, consulte as seguintes notas:
Na guia Unicode, para Tipo de Comunicação com Sistema de Destino, selecione Unicode.
Nota
As bibliotecas do SAP .NET Client suportam apenas codificação de caracteres Unicode. Se você receber o erro Cliente RFC não-ABAP (tipo de parceiro) sem suporte 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á definido como Unicode.
Guardar as suas alterações.
Registe-se o seu novo ID de Programa nas Azure Logic Apps criando um fluxo de trabalho de aplicação lógica que começa com o disparador gerido SAP denominado Quando uma mensagem é recebida.
Dessa forma, quando você salva seu fluxo de trabalho, os Aplicativos Lógicos do Azure registram a ID do Programa no Gateway SAP.
No histórico de gatilhos do fluxo de trabalho, verifique o estado do registo nos logs do adaptador SAP do gateway de dados local, se aplicável, e nos logs de rastreamento do SAP Gateway.
Na caixa Monitor do SAP Gateway (T-Code SMGW), em Clientes conectados, o novo registro aparece como Servidor registrado.
Para testar a sua conexão, sob o seu novo Destino RFC, selecione Teste de Ligação.
Criar conexão ABAP
Esse destino identifica seu sistema SAP como a porta do remetente.
No SAP, abra as Configurações de Conexões RFC. Você pode usar o código de transação sm59 (T-Code) com o prefixo /n .
Selecione ABAP Connections>Criar.
Para RFC Destination, insira o identificador do seu sistema SAP de teste.
Em Configurações técnicas, deixe o host de destino vazio para criar uma conexão local com o sistema SAP.
Guardar as suas alterações.
Para testar sua conexão, selecione Teste de conexão.
Criar porta de remetente
No SAP, abra as configurações de Portas no processamento IDOC. Você pode usar o código de transação we21 (T-Code) com o prefixo /n.
Selecione Portas>Transacional RFC>Criar.
Na caixa de configurações que se abre, selecione o próprio nome da porta.
Para sua porta de teste, insira um Nome que comece com SAP. Guardar as suas alterações.
Todos os nomes de porta do remetente devem começar com as letras SAP, por exemplo, SAPTEST.
Nas configurações da nova porta do remetente, para o destino RFC, insira o identificador da conexão ABAP.
Guardar as suas alterações.
Criar porta de recetor
No SAP, abra as configurações de Portas no processamento IDOC. Você pode usar o código de transação we21 (T-Code) com o prefixo /n.
Selecione Portas>Transacional RFC>Criar.
Na caixa de configurações que se abre, selecione o próprio nome da porta. Para sua porta de teste, insira um Nome. Guardar as suas alterações.
Nas configurações para a nova porta do recetor, para destino RFC, insira o identificador para o seu destino RFC de teste.
Guardar as suas alterações.
Criar parceiro de sistema lógico
No SAP, abra as configurações de Alterar Visualização "Sistemas Lógicos": Visão Geral. Pode utilizar o código de transação bd54 (Código T).
Aceite a seguinte mensagem de aviso que aparece: Cuidado: A tabela é inter-cliente
Acima da lista que mostra seus sistemas lógicos existentes, selecione Novas entradas.
Para o seu novo sistema lógico, insira um identificador Log.System e uma breve descrição do Nome . Guardar as suas alterações.
Quando o Prompt for Workbench for exibido, crie uma nova solicitação fornecendo uma descrição ou, se você já tiver criado uma solicitação, ignore esta etapa.
Depois de criar a solicitação de bancada de trabalho, vincule essa solicitação à solicitação de atualização de tabela. Para confirmar que a tabela foi atualizada, salve as alterações.
Criar perfis de parceiros
Para ambientes de produção, você deve criar os dois perfis de parceiro a seguir:
- Um perfil para o remetente, que é a sua organização e o sistema SAP.
- Um perfil para o recetor, que é o recurso e o fluxo de trabalho do aplicativo lógico.
No SAP, abra as configurações de perfis de parceiro. Pode utilizar o código de transação we20 (T-Code) com o prefixo /n.
Em Perfis de Parceiro, selecione Tipo de Parceiro LS>Criar.
Crie um novo perfil de parceiro com as seguintes configurações:
Configuração Descrição N.º de Parceiro Insira o identificador do parceiro do sistema lógico. Partn. Tipo Digite LS. Agente Insira o identificador da conta de usuário SAP a ser usada ao registrar identificadores de programa para Aplicativos Lógicos do Azure ou outros sistemas que não sejam SAP. Guardar as suas alterações.
Se você não criou o parceiro do sistema lógico, você recebe o erro, Digite um número de parceiro válido.
Nas configurações do seu perfil de parceiro, em Outbound parmtrs., selecione Create outbound parameter.
Crie um novo parâmetro de saída com as seguintes configurações:
Introduza o seu Tipo de Mensagem, por exemplo, CREMAS.
Introduza o identificador da porta do destinatário.
Insira um tamanho de IDoc para Pack. Size. Ou, para enviar IDocs um de cada vez do SAP, selecione Passar IDoc imediatamente.
Guardar as suas alterações.
Testar o envio de mensagens
No SAP, abra as configurações da Test Tool for IDoc Processing . Você pode usar o código de transação 'we19' (T-Code) usando o prefixo /n.
Em Modelo para teste, selecione Via tipo de mensagem. Introduza o seu tipo de mensagem, por exemplo, CREMAS. Selecione Criar.
Confirme a mensagem Qual tipo de IDoc? selecionando Continuar.
Selecione o nó EDIDC . Insira os valores apropriados para as portas do destinatário e do remetente. Selecione Continuar.
Selecione Processamento de saída padrão.
Para iniciar o processamento do IDoc de saída, selecione Continuar.
Quando a ferramenta termina o processamento, a mensagem IDoc enviado para o sistema SAP ou programa externo aparece.
Para verificar se há erros de processamento, use o código de transação sm58 (T-Code) com o prefixo /n .
Crie 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 SAP, consulte as seguintes etapas:
- Receber mensagem do SAP
- Receber pacotes IDoc do SAP
- Enviar IDocs para SAP
- Gerar esquemas para artefatos no SAP
Crie fluxos de trabalho para cenários SAP avançados
- Alterar cabeçalhos de idioma para enviar dados para o SAP
- Confirme a transação separadamente e evite IDocs duplicados
Localizar logs de erros estendidos (somente conector gerenciado)
Se utilizar o conector gerido pela SAP, pode encontrar mensagens de erro completas verificando os registos estendidos do adaptador SAP. Você também pode habilitar um arquivo de log estendido para o conector SAP.
Para versões de gateway de dados locais de abril de 2020 e anteriores, os logs são desabilitados por padrão.
Para versões de gateway de dados locais de junho de 2020 e posteriores, pode ativar os registos do gateway nas configurações do aplicativo.
O nível de log padrão é Aviso.
Caso ative o registo adicional nas definições de Diagnóstico no aplicativo de gateway de dados on-premises, o nível do registo é aumentado para Informativo.
Para aumentar o nível de log para Detalhado, atualize a seguinte definição no ficheiro 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)
Se você usar um gateway de dados local para Aplicativos Lógicos do Azure, poderá configurar um arquivo de log estendido para o conector SAP. Você pode usar o seu gateway de dados local para redirecionar eventos de Rastreamento de Eventos para Windows (ETW) para arquivos de log rotativos que estão incluídos nos ficheiros .zip de registo do gateway.
Você pode exportar todos os logs de configuração e serviço do gateway para um arquivo de .zip nas configurações do aplicativo de gateway.
Nota
O registro em log estendido pode afetar o desempenho do fluxo de trabalho quando sempre habilitado. Como prática recomendada, desative os arquivos de log estendidos depois de concluir a análise e a solução de 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 no Diagnóstico do Azure em Event Hubs ou coletar seus dados nos Logs do Azure Monitor. Para obter mais informações, consulte as práticas recomendadas para coletar e armazenar dados.
Para trabalhar com os arquivos ETL resultantes, você pode usar PerfView, ou você pode escrever seu próprio programa. O passo a passo a seguir usa o PerfView:
No menu PerfView, selecione Collect>Collect para capturar os eventos.
No parâmetro Additional Provider, insira
*Microsoft-LobAdapter
para especificar o provedor SAP para capturar eventos do SAP Adapter. Se você não especificar essas informações, seu rastreamento incluirá apenas eventos ETW gerais.Mantenha as outras configurações padrão. Se desejar, pode alterar o nome do ficheiro ou a localização no parâmetro Ficheiro de Dados.
Selecione Iniciar coleção para iniciar o rastreamento.
Depois de reproduzir o problema ou coletar dados de análise suficientes, selecione Parar coleta.
Para compartilhar seus dados com outra parte, como engenheiros de suporte do Azure, compacte o arquivo ETL.
Para visualizar o conteúdo do seu traço:
No PerfView, selecione Abrir arquivo> e selecione o arquivo ETL gerado.
Na barra lateral do PerfView, a seção Eventos sob seu arquivo ETL.
Em Filtrar, filtre por
Microsoft-LobAdapter
para exibir apenas eventos relevantes e processos de gateway.
Testar o fluxo de trabalho
Dependendo de ter um fluxo de trabalho de Consumo em Aplicações Lógicas do Azure multinquilino ou um fluxo de trabalho Padrão em Aplicações Lógicas do Azure monoinquilino, siga os passos adequados:
Se o recurso do 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 Ativar.
Na barra de ferramentas do designer, selecione Executar>Executar para iniciar manualmente o fluxo de trabalho.
Para acionar seu fluxo de trabalho, envie uma mensagem do seu sistema SAP.
Retorne à página Visão geral do seu aplicativo lógico. Em Histórico de execuções, encontre qualquer nova execução para o seu fluxo de trabalho.
Abra a execução mais recente, que mostra uma execução manual. Encontre e revise a seção de saídas do gatilho.
Ativar o registo e o rastreamento da biblioteca do cliente SAP (NCo) (apenas para o conector integrado)
Quando você tiver que investigar quaisquer problemas com esse componente, poderá configurar o rastreamento NCo baseado em arquivo de texto personalizado, que o suporte da SAP ou da Microsoft pode solicitar de você. Por padrão, esse recurso é desabilitado porque habilitar esse rastreamento pode afetar negativamente o desempenho e consumir rapidamente o espaço de armazenamento do host do aplicativo.
Você pode controlar esse recurso de rastreamento no nível do aplicativo adicionando as seguintes configurações:
No portal do Azure, abra seu recurso de aplicativo lógico padrão.
No menu do aplicativo lógico, em Configurações, selecione Variáveis de ambiente para revisar as configurações do aplicativo.
Na página Variáveis de ambiente, na guia Configurações do aplicativo, adicione as seguintes configurações do aplicativo:
SAP_RFC_TRACE_DIRECTORY: O diretório onde armazenar os arquivos de rastreamento NCo, por exemplo, C:\home\LogFiles\NCo.
SAP_RFC_TRACE_LEVEL: O nível de rastreamento NCo com Level4 como o valor sugerido para registro detalhado típico. O suporte da SAP ou da Microsoft pode solicitar que você defina um nível de rastreamento diferente.
Nota
Para fluxos de trabalho de aplicativos lógicos padrão que usam a versão de tempo de execução 1.69.0 ou posterior, você pode habilitar o registro em log para vários níveis de rastreamento separando cada nível de rastreamento com uma vírgula (,).
Para localizar a versão de tempo de execução do fluxo de trabalho, siga estas etapas:
- No portal do Azure, no menu do fluxo de trabalho, selecione Visão geral.
- Na seção Essentials, localize a propriedade Runtime Version.
SAP_CPIC_TRACE_LEVEL: O nível de rastreio da Interface de Programação Comum para Comunicação (CPI-C), com Verbose como o valor sugerido para um registo pormenorizado típico. O suporte da SAP ou da Microsoft pode solicitar que você defina um nível de rastreamento diferente.
Para obter mais informações sobre como adicionar configurações de aplicativo, consulte Editar configurações de host e aplicativo para fluxos de trabalho de aplicativo lógico padrão.
Guardar as suas alterações. Esta etapa reinicia o aplicativo.
Níveis de vestígios disponíveis
Níveis de rastreamento NCo
valor | Descrição |
---|---|
Nível1 | O nível para rastrear chamadas de função remota. |
Nível 2 | O nível para rastrear chamadas de função remota e chamadas de método de API pública. |
Nível 3 | O nível para rastrear chamadas de função remota, chamadas de método de API públicas e chamadas de método de API internas. |
Nível 4 | O nível para rastrear chamadas de função remota, chamadas de método de API pública, chamadas de métodos de API interna, despejos hexadecimais do protocolo RFC e informações relacionadas à rede. |
Bloqueio | Grava dados nos arquivos de rastreamento que mostram quando os threads solicitam, adquirem e liberam bloqueios em objetos. |
Metadados | Rastreia os metadados envolvidos em uma chamada de função remota para cada chamada. |
Nenhuma | O nível para suprimir todas as saídas de rastreamento. |
Dados de Parâmetro | Rastreia os dados do contêiner enviados e recebidos durante cada chamada de função remota. |
Desempenho | Grava 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. |
API interna | 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. |
Provedor de Sessão | Rastreia todos os métodos da implementação atualmente usada de ISessionProvider. |
Definir valor | Grava informações nos arquivos de rastreamento sobre valores definidos para parâmetros de funções ou campos de estruturas ou tabelas. |
Níveis de rastreamento CPIC
valor | Descrição |
---|---|
Desativado | Sem registo |
Básica | Registo básico |
Verboso | Registro detalhado |
VerboseWithData | Registo detalhado com todo o dump de resposta do servidor |
Ver o traço
No menu de recursos do aplicativo lógico padrão, em Ferramentas de Desenvolvimento, selecione Advanced Tools>Go.
Na barra de ferramentas Kudu , selecione Debug Console>CMD.
Navegue até a pasta para a configuração do aplicativo chamada $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.
Abra a pasta $SAP_RFC_TRACE_DIRECTORY , que contém os seguintes ficheiros:
Logs de rastreamento NCo: um arquivo chamado dev_nco_rfc.log, um ou vários arquivos chamados nco_rfc_NNNN.log e um ou vários arquivos chamados nco_rfc_NNNN.trc onde NNNN é um identificador de thread.
Logs de rastreamento CPIC: um ou vários arquivos chamados nco_cpic_NNNN.trc onde NNNN é identificador de fila de execução.
Para exibir o conteúdo em um arquivo de log ou rastreamento, selecione o botão Editar ao lado de um arquivo.
Nota
Se você baixar um arquivo de log ou rastreamento atualmente aberto ou usado pelo fluxo de trabalho do aplicativo lógico, o download poderá resultar em um arquivo vazio.
Ativar o rastreamento da SAP Common Crypto Library (CCL) (somente conector integrado)
Se você tiver que investigar quaisquer problemas com a biblioteca de criptografia ao usar a autenticação SNC, poderá configurar o rastreamento CCL baseado em arquivo de texto personalizado. Você pode usar os logs 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 é desabilitado porque habilitar esse rastreamento pode afetar negativamente o desempenho e consumir rapidamente o espaço de armazenamento do host do aplicativo.
Você pode controlar esse recurso de rastreamento no nível do aplicativo adicionando as seguintes configurações:
No portal do Azure, abra seu recurso de aplicativo lógico padrão.
No menu de recursos do aplicativo lógico padrão, em Ferramentas de Desenvolvimento, selecione Advanced Tools>Go.
Na barra de ferramentas Kudu , selecione Debug Console>CMD.
Navegue até um local em C:\home\site\wwwroot e crie um arquivo de texto, por exemplo: CCLPROFILE.txt.
Para obter mais informações sobre parâmetros de log, consulte SAP KB Artigo 3192871 - Como verificar as informações de versão do CommonCryptoLib no sistema ABAP. O exemplo a seguir fornece um exemplo de configuração de rastreamento:
ccl/trace/directory=C:\home\LogFiles\CCLLOGS ccl/trace/level=4 ccl/trace/rotatefilesize=10000000 ccl/trace/rotatefilenumber=10
No menu do aplicativo lógico, em Configurações, selecione Variáveis de ambiente para revisar as configurações do aplicativo.
Na página Variáveis de ambiente, na guia Configurações do aplicativo, adicione a seguinte configuração do aplicativo:
CCL_PROFILE: O diretório onde CCLPROFILE.txt foi criado, por exemplo, C:\home\site\wwwroot\CCLPROFILE.txt.
Guardar as suas alterações. Esta etapa reinicia o aplicativo.
Ver o traço
No menu de recursos do aplicativo lógico padrão, em Ferramentas de Desenvolvimento, selecione Advanced Tools>Go.
Na barra de ferramentas Kudu , selecione Debug Console>CMD.
Navegue até a pasta do parâmetro $ccl/trace/directory, que é do ficheiro CCLPROFILE.txt.
Normalmente, os arquivos de rastreamento são chamados sec-Microsoft.Azure.Work-$processId.trc e sec-sapgenpse.exe-$processId.trc.
O fluxo de trabalho do aplicativo lógico executa a autenticação SNC como um processo de duas etapas:
O fluxo de trabalho do aplicativo lógico invoca 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.
Seu fluxo de trabalho de aplicativo lógico autentica o acesso ao servidor SAP consumindo o arquivo cred_v2 gerado, com a biblioteca de cliente SAP invocando a biblioteca de criptografia comum.
Você pode encontrar os rastreamentos relacionados a essa etapa em um arquivo chamado sec-Microsoft.Azure.Work-$processId.trc.
Enviar telemetria SAP do gateway de dados on-premises para o Azure Application Insights
A partir da atualização de agosto de 2021 para o gateway de dados local, as operações do conector SAP podem enviar dados de telemetria da biblioteca de clientes SAP NCo e rastreamentos do Microsoft SAP Adapter para o Application Insights. Esse recurso é um recurso no Azure Monitor. A telemetria inclui principalmente os seguintes dados:
- Métricas e rastreamentos baseados em métricas e monitores SAP NCo
- Rastreamentos do Microsoft SAP Adapter
Métricas e rastreamentos da biblioteca de clientes SAP NCo
As métricas baseadas em SAP NCo são valores numéricos que podem ou não variar ao longo de um período de tempo, com base no uso e na disponibilidade de recursos no gateway de dados local. Você pode usar essas métricas para entender melhor a integridade do sistema e criar alertas sobre as seguintes atividades:
- Declínio da saúde 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 rastreamentos SAP NCo são baseados em métricas SAP NCo, especificamente as 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.
Configurar a telemetria SAP para o Application Insights da Microsoft Azure
Antes de poder enviar a telemetria SAP da instalação do gateway para o Application Insights, você precisa criar e configurar seu recurso do Application Insights. Para obter mais informações, consulte a seguinte documentação:
Para habilitar o envio de telemetria SAP para o Application Insights, siga estas etapas:
Baixe o pacote NuGet para Microsoft.ApplicationInsights.EventSourceListener.dll a partir deste local: https://www.nuget.org/packages/Microsoft.ApplicationInsights.EventSourceListener/2.14.0.
Adicione o arquivo baixado ao diretório de instalação do gateway de dados local, por exemplo, C:\Arquivos de Programas\Gateway de Dados Local.
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 do arquivo Microsoft.ApplicationInsights.EventSourceListener.dll que você adicionou. O gateway atualmente usa a versão 2.14.0.
No arquivo ApplicationInsights.config, adicione sua chave de instrumentação do Application Insights descomentando a linha com o
<InstrumentationKey></InstrumentationKey>
elemento . Substitua o marcador de posição, 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>
No arquivo ApplicationInsights.config, você pode alterar o valor de rastreamentos
Level
necessário para suas operações de conector SAP, de acordo com seus requisitos, por exemplo:<Add Type="Microsoft.ApplicationInsights.EventSourceListener.EventSourceTelemetryModule, Microsoft.ApplicationInsights.EventSourceListener"> <Sources> <Add Name="Microsoft-LobAdapter" Level="Verbose" /> </Sources> </Add>
Para obter mais informações, consulte a seguinte documentação:
Level
valores: EventLevel Enum
Depois de aplicar as alterações, reinicie o serviço de gateway de dados local.
Revisar as métricas no Application Insights
Depois que as operações SAP forem executadas no fluxo de trabalho do aplicativo lógico, você poderá revisar a telemetria enviada ao Application Insights.
No portal do Azure, abra seu recurso do Application Insights.
No menu de recursos, em Monitoramento, selecione Logs.
A captura de tela a seguir mostra o portal do Azure onde o recurso do Application Insights tem a página Logs aberta:
Na página Logs , você pode criar uma consulta que usa Kusto Query Language (KQL), com base em seus requisitos específicos.
Você pode usar um padrão de consulta semelhante à consulta de exemplo a seguir:
customMetrics | extend DestinationName = tostring(customDimensions["DestinationName"]) | extend MetricType = tostring(customDimensions["MetricType"]) | where customDimensions contains "RfcDestinationMonitor" | where name contains "MaxUsedCount"
Depois de executar a consulta, reveja os resultados.
A captura de tela a seguir mostra a tabela de resultados de métricas da consulta de exemplo:
Coluna Descrição 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. Você pode usar esse valor para entender o número de conexões abertas simultaneamente. valorCount Mostra 2 para cada leitura, pois as métricas são geradas em intervalos de 30 segundos. O Application Insights agrega essas métricas por minuto. Nome do destino Contém uma cadeia de caracteres que é um nome interno do Microsoft SAP Adapter. Para entender melhor esse destino de 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
Você também pode criar gráficos de métricas ou alertas usando esses recursos no Application Insights, por exemplo:
Rastreamentos do Microsoft SAP Adapter
Você pode usar registos enviados do Microsoft SAP Adapter para a pós-análise de problemas e para localizar quaisquer erros internos do sistema existentes que possam surgir ou não nas operações do conector SAP. Esses rastros têm message
definidos para "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: