Compartilhar via


Crie fluxos de trabalho para cenários comuns de integração do SAP nos Aplicativos Lógicos do Azure

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

Este guia de instruções mostra como criar fluxos de trabalho de aplicativo lógico de exemplo para alguns cenários comuns de integração do SAP usando os Aplicativos Lógicos do Azure e o conector 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 padrão também oferecem o conector provedor de serviço integrado SAP, que é hospedado e executado nos Aplicativos Lógicos do Azure de locatário único. Para obter mais informações, confira Referência técnica do conector.

Pré-requisitos

Receber mensagens do SAP

O exemplo de fluxo de trabalho do aplicativo lógico a seguir é disparado quando o gatilho SAP do fluxo de trabalho recebe uma mensagem de um servidor SAP.

Adicionar um gatilho SAP

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. No portal do Azure, abra o fluxo de trabalho em branco do aplicativo lógico de Consumo no designer.

  2. No designer, siga estas etapas gerais para adicionar o gatilho do conector gerenciado pelo SAP chamado Quando uma mensagem é recebida.

  3. Se solicitado, forneça as informações de conexão a seguir para o seu servidor SAP local. Quando terminar, selecione Criar. Caso contrário, continue com a próxima etapa para configurar o gatilho do SAP.

    Parâmetro Obrigatório Descrição
    Nome da conexão Yes Insira um nome para a conexão.
    Gateway de dados Sim 1. Para Assinatura, selecione a assinatura do Azure para o recurso de gateway de dados que você criou no portal do Azure para a instalação do gateway de dados.

    2. Para Gateway de Conexão, selecione o recurso de gateway de dados no Azure.
    Cliente Sim A ID do cliente SAP a ser usada para se conectar ao servidor SAP
    Tipo de Autenticação Sim O tipo de autenticação a ser usado para sua conexão, que deve ser Básico (nome de usuário e senha). Para criar uma conexão SNC, confira Habilitar Comunicações de Rede Segura (SNC).
    Nome de usuário do SAP Sim O nome de usuário do servidor SAP
    Senha do SAP Sim A senha do servidor SAP
    Tipo de logon Sim Selecione Servidor de Aplicativos ou Grupo (Servidor de Mensagens) e configure os parâmetros necessários correspondentes, mesmo que eles pareçam opcionais:

    Servidor de aplicativos:
    - Host AS: o nome do host para o seu servidor de aplicativos SAP
    - Serviço AS: o nome do serviço ou o número da porta do servidor de aplicativos SAP
    - Número do sistema AS: o número do sistema do servidor SAP, que varia de 00 a 99

    Grupo:
    - Host do MS Server: o nome do host para o servidor de mensagens SAP
    - Nome do Serviço MS ou Número da Porta: o nome do serviço ou o número da porta do servidor de mensagens SAP
    - ID do sistema MS: a ID do sistema para o servidor SAP
    - Grupo de Logon MS: o grupo de logon do servidor SAP. No servidor SAP, você pode encontrar ou editar o valor do Grupo de Logon abrindo a caixa de diálogo CCMS: Manter Grupos de Logon (T-Code SMLG). Para saber mais, veja Nota do SAP 26317 – Configurar o grupo de logon para o balanceamento de carga automático.
    Digitação segura No Esta opção está disponível para compatibilidade com versões anteriores e verifica apenas o comprimento da cadeia de caracteres. Por padrão, a tipagem forte é usada para verificar valores inválidos executando a validação de XML com relação ao esquema. Esse comportamento pode ajudá-lo a detectar problemas mais cedo. Saiba mais sobre a configuração de Digitação Segura.
    Usar SNC No Para criar uma conexão SNC, confira Habilitar Comunicações de Rede Segura (SNC).

    Para outros parâmetros opcionais de conexão disponíveis, confira Informações de conexão padrão.

    Depois que os Aplicativos Lógicos do Azure configuram e testam sua conexão, a caixa de informações do gatilho é exibida. Para obter mais informações sobre quaisquer problemas de conexão que possam acontecer, confira Solucionar problemas de conexões.

  4. Com base na configuração e no cenário do servidor SAP, forneça os valores de parâmetro necessários para o gatilho Quando uma mensagem é recebida e adicione quaisquer outros parâmetros de gatilho disponíveis que você deseja usar em seu cenário.

    Observação

    Esse gatilho do SAP é um gatilho baseado em webhook, não um gatilho de sondagem, e não inclui opções para especificar um agendamento de sondagem. Por exemplo, quando você usa o conector do SAP gerenciado com o gateway de dados local, o gatilho é chamado do gateway de dados somente quando uma mensagem chega; portanto, nenhuma sondagem é necessária.

    Parâmetro Obrigatório Descrição
    GatewayHost Sim O host do gateway de registro para o servidor SAP RFC
    GatewayService Sim O serviço de gateway de registro para o servidor SAP RFC
    ProgramId Sim A ID do programa de gateway de registro para o servidor SAP RFC.

    Observação: Esse valor diferencia maiúsculas de minúsculas. Certifique-se de usar consistentemente o mesmo formato de caso para o valor de ID do programa ao configurar o fluxo de trabalho do aplicativo lógico e o servidor SAP. Caso contrário, quando você tentar enviar um IDoc para o SAP, o tRFC Monitor (T-Code SM58) pode mostrar os seguintes erros (links exigem logon no SAP):

    - Função IDOC_INBOUND_ASYNCHRONOUS não encontrada (2399329)
    - Não há suporte para o cliente RFC não ABAP (tipo de parceiro) (353597)
    DegreeOfParallelism Não O número de chamadas a serem processadas em paralelo. Para adicionar esse parâmetro e alterar o valor, na lista Adicionar novo parâmetro, selecione DegreeOfParallelism e insira o novo valor.
    SapActions No Filtre as mensagens que você recebe do servidor SAP com base em uma lista de ações SAP. Para adicionar esse parâmetro, na lista Adicionar novo parâmetro, selecione SapActions. Na nova seção SapActions, para o parâmetro SapActions – 1, use o seletor de arquivos para selecionar uma ação SAP ou especificar manualmente uma ação. Para obter mais informações sobre a ação do SAP, confira Esquemas de mensagem para operações IDoc.
    Formato IDoc No O formato a ser usado para receber IDocs. Para adicionar esse parâmetro, na lista Adicionar novo parâmetro, selecione Formato IDoc.

    – Para receber IDocs como XML simples do SAP, na lista Formato IDoc, selecione SapPlainXml.

    – Para receber IDocs como um arquivo simples, na lista Formato IDoc, selecione FlatFile.

    - Observação: Quando você também usa a Ação de decodificação de arquivo simples em seu fluxo de trabalho, em seu esquema de arquivo simples, você deve usar a propriedade early_terminate_optional_fields e definir o valor como true. Esse requisito é necessário porque o registro de dados de arquivo simples do IDoc que é enviado pelo SAP na chamada tRFC denominada 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, é preciso corresponder o esquema fornecido à ação.
    Receber IDocs com segmentos não lançados No Receba IDocs com ou sem segmentos não lançados. Para adicionar esse parâmetro e alterar o valor, na lista Adicionar novo parâmetro, selecione Receber IDocs com segmentos não lançados e selecione Sim ou Não.
    SncPartnerNames No A lista de parceiros SNC que têm permissões para chamar o gatilho no nível da biblioteca de clientes SAP. Somente os parceiros listados são autorizados pela conexão SNC do servidor SAP. Para adicionar esse parâmetro, na lista Adicionar novo parâmetro, selecione SncPartnerNames. Insira cada nome separado por uma barra vertical (|).

    O exemplo a seguir mostra um gatilho gerenciado pelo SAP configurado basicamente em um fluxo de trabalho de Consumo:

    A captura de tela mostra basicamente o gatilho do conector gerenciado SAP configurado no fluxo de trabalho de Consumo.

    O exemplo a seguir mostra um gatilho gerenciado pelo SAP em que você pode filtrar mensagens selecionando ações SAP:

    A captura de tela mostra a seleção de uma ação SAP para filtrar as mensagens em um fluxo de trabalho de Consumo.

    Ou especificando manualmente uma ação:

    A captura de tela mostra a inserção manual da ação SAP para filtrar mensagens em um fluxo de trabalho de Consumo.

    O seguinte exemplo mostra como a ação é exibida quando você configura o gatilho para receber mais de uma mensagem:

    A captura de tela mostra o gatilho de exemplo que recebe várias mensagens em um fluxo de trabalho de Consumo.

  5. Salve o fluxo de trabalho para poder começar a receber mensagens do seu servidor SAP. Selecione Salvar na barra de ferramentas do designer.

    O seu fluxo de trabalho agora está pronto para receber mensagens do servidor SAP.

  6. Depois que o gatilho disparar e executar o fluxo de trabalho, examine o histórico de gatilhos do fluxo de trabalho para confirmar se o registro do gatilho foi bem-sucedido.

Receber pacotes IDoc do SAP

Para receber pacotes IDoc, que são lotes ou grupos de IDocs, o gatilho SAP não precisa de configuração extra. No entanto, para processar cada item em um pacote IDoc após o gatilho receber o pacote, você precisa implementar mais algumas etapas para dividir o pacote em IDocs individuais configurando o SAP para enviar IDocs em pacotes.

O exemplo a seguir mostra como extrair IDocs individuais de um pacote usando a função xpath():

  1. Antes de começar, você precisa de um fluxo de trabalho de aplicativo lógico de Consumo ou Standard com um gatilho SAP. Se o fluxo de trabalho ainda não começar com esse gatilho, siga as etapas anteriores neste guia para adicionar o gatilho SAP que pode receber mensagens ao fluxo de trabalho.

  2. Para responder imediatamente ao servidor SAP com a solicitação de status do SAP, adicione a seguinte ação de resposta, com base em se você usa um gatilho gerenciado pelo SAP ou um gatilho interno do SAP:

    • Gatilho gerenciado pelo SAP: para esse gatilho, adicione uma ação de resposta ao fluxo de trabalho.

      Na ação Resposta, use um dos seguintes códigos de status (statusCode):

      Código de status Descrição
      202 Aceito A solicitação foi aceita para processamento, mas o processamento ainda não foi concluído.
      204 Sem Conteúdo O servidor atendeu com êxito a solicitação e não há nenhum conteúdo adicional para enviar no corpo do conteúdo de resposta.
      200 OK Esse código de status sempre apresenta um conteúdo, mesmo que o servidor gere um corpo de conteúdo de comprimento zero.
    • Gatilho interno do SAP: para esse gatilho, adicione a ação Responder ao servidor SAP ao fluxo de trabalho.

    Observação

    Como prática recomendada, adicione a ação de resposta imediatamente após o gatilho para liberar o canal de comunicação com o servidor SAP.

  3. Obtenha o namespace raiz do IDoc XML que o fluxo de trabalho recebe do SAP.

    1. Para extrair esse namespace do documento XML e armazenar o namespace em uma variável de cadeia de caracteres local, adicione a ação Inicializar variável.

    2. Renomeie o título da ação como Obter namespace para o nó raiz no IDoc recebido.

    3. Forneça um nome para a variável e defina o tipo como Cadeia de caracteres.

    4. No parâmetro Valor da ação, selecione dentro da caixa de edição, abra a expressão ou o editor de funções e crie a seguinte expressão usando a função xpath():

      xpath(xml(triggerBody()?['Content']), 'namespace-uri(/*)')

      Fluxo de trabalho de Consumo

      A captura de tela mostra a expressão para obter o namespace do nó raiz do IDOC recebido para um fluxo de trabalho de Consumo.

      Fluxo de trabalho Standard

      A captura de tela mostra a expressão para obter o espaço para nome do nó raiz do IDoc recebido para um fluxo de trabalho Standard.

      Quando você terminar, a expressão será resolvida e agora aparecerá como o seguinte formato:

      A captura de tela mostra a expressão resolvida que recebe o namespace do nó raiz do IDoc recebido.

  4. Para extrair um IDoc individual armazenando a coleção IDoc em uma variável de matriz local, siga estas etapas:

    1. Adicione outra ação Inicializar variável.

    2. Renomeie o título da ação para Obter matriz com elementos de dados IDoc.

    3. Forneça um nome para a variável e defina o tipo como Matriz.

      A variável de matriz disponibiliza cada IDoc para o fluxo de trabalho processar individualmente enumerando sobre a coleção.

    4. No parâmetro Valor da ação, selecione dentro da caixa de edição, abra a expressão ou o editor de funções e crie a seguinte expressão xpath():

      xpath(xml(triggerBody()?['Content']), '/*[local-name()="Receive"]/*[local-name()="idocData"]')

      Quando você terminar, a expressão será resolvida e agora aparecerá como o seguinte formato:

      Fluxo de trabalho de Consumo

      A captura de tela mostra a expressão para obter uma variedade de IDocs para um fluxo de trabalho de Consumo.

      Neste exemplo, o fluxo de trabalho a seguir transfere cada IDoc para um servidor SFTP usando uma ação de Controle denominada Para cada e a ação SFTP-SSH denominada Criar arquivo. Cada IDoc deve incluir o namespace raiz, que é o motivo pelo qual o conteúdo do arquivo é encapsulado dentro de um elemento <Receive></Receive> junto com o namespace raiz antes de enviar o IDOC para o aplicativo downstream ou para o servidor SFTP neste caso.

      A captura de tela mostra o envio de um IDoc para um servidor SFTP a partir de um fluxo de trabalho de Consumo.

      Observação

      Para fluxos de trabalho de Consumo, esse padrão está disponível como um modelo de início rápido, que você pode selecionar na galeria de modelos ao criar um recurso de aplicativo lógico de Consumo e um fluxo de trabalho em branco. Ou, quando o designer de fluxo de trabalho estiver aberto, na barra de ferramentas do designer, selecione Modelos.

      Captura de tela que mostra a seleção do modelo para obter um lote IDoc.

      Fluxo de trabalho Standard

      A captura de tela mostra a expressão para obter uma variedade de IDocs para um fluxo de trabalho Standard.

      Neste exemplo, o fluxo de trabalho a seguir transfere cada IDoc para um servidor SFTP usando uma ação de Controle denominada Para cada e a ação SFTP-SSH denominada Criar arquivo. Cada IDoc deve incluir o namespace raiz, que é o motivo pelo qual o conteúdo do arquivo é encapsulado dentro de um elemento <Receive></Receive> junto com o namespace raiz antes de enviar o IDOC para o aplicativo downstream ou para o servidor SFTP neste caso.

      A captura de tela mostra o envio de um IDoc para um servidor SFTP a partir de um fluxo de trabalho Standard.


Filtrar mensagens recebidas com ações SAP

Se você usar o conector gerenciado pelo SAP no gatilho em seu fluxo de trabalho, configure uma forma de filtrar explicitamente qualquer ação indesejada do servidor SAP, com base no namespace do nó raiz no conteúdo XML recebido. Você pode fornecer uma lista (matriz) com uma ou várias ações SAP. Por padrão, essa matriz está vazia, o que significa que seu fluxo de trabalho recebe todas as mensagens do servidor SAP sem filtragem. Quando você configura o filtro de matriz, o gatilho recebe somente mensagens dos tipos de ação SAP especificados e rejeita todas as outras mensagens do servidor SAP. No entanto, esse filtro não afeta se a tipagem do conteúdo recebido é fraca ou forte. Filtragens de ação SAP ocorrem no nível do Adaptador SAP para o gateway de dados local. Para saber mais, veja Como testar o envio de IDocs do SAP para os Aplicativos Lógicos do Azure.

Configurar o padrão assíncrono de solicitação-resposta para gatilhos

O conector gerenciado pelo SAP oferece suporte ao padrão de solicitação-resposta assíncrono do Azure para gatilhos de Aplicativos Lógicos do Azure. Você pode usar esse padrão para criar solicitações bem-sucedidas que falhariam com o padrão de solicitação-resposta síncrona usual.

Observação

Em fluxos de trabalho com várias ações de Resposta, todas as ações de Resposta devem usar o mesmo padrão de solicitação-resposta. Por exemplo, se o fluxo de trabalho usar um controle de comutação com diversas ações de Resposta possíveis, será necessário configurar todas as ações de Resposta para usar o mesmo padrão de solicitação-resposta, síncrono ou assíncrono.

Ao habilitar a resposta assíncrona para a ação de Resposta, o seu fluxo de trabalho pode responder com 202 Aceito após aceitar uma solicitação de processamento. A resposta contém um cabeçalho de localização que você pode usar para recuperar o estado final da solicitação.

Para configurar um padrão de solicitação-resposta assíncrona para o fluxo de trabalho usando o conector do SAP, siga estas etapas:

  1. No designer, abra o fluxo de trabalho do aplicativo lógico. Confirme se o fluxo de trabalho começa com um gatilho do SAP.

  2. No fluxo de trabalho, localize a ação Resposta e abra as Configurações dessa ação.

  3. Com base em se você possui um fluxo de trabalho de Consumo ou Standard, siga as etapas correspondentes:

    • Consumo: em Resposta Assíncrona, desative a configuração de Desativado para Ativado e selecione Concluído.
    • Standard: expanda Rede e, em Resposta Assíncrona, desative a configuração de Desativado para Ativado.
  4. Salve seu fluxo de trabalho.

Enviar IDocs para o SAP

Para criar um fluxo de trabalho de aplicativo lógico que envia um IDoc a um servidor SAP e retorna uma resposta, siga estes exemplos:

  1. Crie um fluxo de trabalho de aplicativo lógico que é disparado por uma solicitação HTTP.
  2. Adicione uma ação SAP ao fluxo de trabalho para enviar um IDoc para SAP.
  3. Adicione uma ação de resposta ao fluxo de trabalho.
  4. Crie um padrão de solicitação-resposta de RFC (chamada de função remota) se você estiver usando uma RFC para receber respostas do SAP ABAP.
  5. Teste o seu fluxo de trabalho.

Adicionar o gatilho de Solicitação

Para que o fluxo de trabalho receba IDocs do SAP sobre XML HTTP, use o gatilho de Solicitação interno. Esse gatilho cria um ponto de extremidade com um URL em que o servidor SAP pode enviar solicitações HTTP POST para o fluxo de trabalho. Quando o fluxo de trabalho recebe essas solicitações, o gatilho é disparado e a próxima etapa do fluxo de trabalho é executada.

Para receber IDocs sobre CPIC (comunicação de interface de programação comum) como XML simples ou como um arquivo simples, veja a seção Receber mensagem do SAP.

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. No portal do Azure, crie um recurso de aplicativo de lógica de Consumo e um fluxo de trabalho em branco no designer.

  2. No designer, siga estas etapas gerais para localizar e adicionar o gatilho interno de Solicitação denominado Quando uma solicitação HTTP é recebida.

    A captura de tela mostra o gatilho de Solicitação de um fluxo de trabalho de Consumo.

  3. Salve seu fluxo de trabalho. Selecione Salvar na barra de ferramentas do designer.

    Esta etapa gera um URL de ponto de extremidade em que o gatilho pode receber solicitações do servidor SAP, por exemplo:

    A captura de tela mostra o URL do ponto de extremidade gerado pelo gatilho de Solicitação para receber solicitações em um fluxo de trabalho de Consumo.

Adicione uma ação SAP para enviar um IDoc

Em seguida, crie uma ação para enviar seu IDoc para o SAP quando o gatilho de Solicitação do fluxo de trabalho for disparado. 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. No designer de fluxo de trabalho, no gatilho de Solicitação, selecione Nova etapa.

  2. No designer, siga estas etapas gerais para localizar e adicionar a ação gerenciada pelo SAP denominada Enviar mensagem ao SAP.

  3. Se solicitado, forneça as informações de conexão a seguir para o seu servidor SAP local. Quando terminar, selecione Criar. Caso contrário, prossiga para a próxima etapa para configurar a ação SAP.

    Parâmetro Obrigatório Descrição
    Nome da conexão Yes Insira um nome para a conexão.
    Gateway de dados Sim 1. Para Assinatura, selecione a assinatura do Azure para o recurso de gateway de dados que você criou no portal do Azure para a instalação do gateway de dados.

    2. Para Gateway de Conexão, selecione o recurso de gateway de dados no Azure.
    Cliente Sim A ID do cliente SAP a ser usada para se conectar ao servidor SAP
    Tipo de Autenticação Sim O tipo de autenticação a ser usado para sua conexão, que deve ser Básico (nome de usuário e senha). Para criar uma conexão SNC, confira Habilitar Comunicações de Rede Segura (SNC).
    Nome de usuário do SAP Sim O nome de usuário do servidor SAP
    Senha do SAP Sim A senha do servidor SAP
    Tipo de logon Sim Selecione Servidor de Aplicativos ou Grupo (Servidor de Mensagens) e configure os parâmetros necessários correspondentes, mesmo que eles pareçam opcionais:

    Servidor de aplicativos:
    - Host AS: o nome do host para o seu servidor de aplicativos SAP
    - Serviço AS: o nome do serviço ou o número da porta do servidor de aplicativos SAP
    - Número do sistema AS: o número do sistema do servidor SAP, que varia de 00 a 99

    Grupo:
    - Host do MS Server: o nome do host para o servidor de mensagens SAP
    - Nome do Serviço MS ou Número da Porta: o nome do serviço ou o número da porta do servidor de mensagens SAP
    - ID do sistema MS: a ID do sistema para o servidor SAP
    - Grupo de Logon MS: o grupo de logon do servidor SAP. No servidor SAP, você pode encontrar ou editar o valor do Grupo de Logon abrindo a caixa de diálogo CCMS: Manter Grupos de Logon (T-Code SMLG). Para saber mais, veja Nota do SAP 26317 – Configurar o grupo de logon para o balanceamento de carga automático.
    Digitação segura No Esta opção está disponível para compatibilidade com versões anteriores e verifica apenas o comprimento da cadeia de caracteres. Por padrão, a tipagem forte é usada para verificar valores inválidos executando a validação de XML com relação ao esquema. Esse comportamento pode ajudá-lo a detectar problemas mais cedo. Saiba mais sobre a configuração de Digitação Segura.
    Usar SNC No Para criar uma conexão SNC, confira Habilitar Comunicações de Rede Segura (SNC).

    Para outros parâmetros opcionais de conexão disponíveis, confira Informações de conexão padrão.

    Depois que os Aplicativos Lógicos do Azure configuram e testam sua conexão, a caixa de informações de ação SAP é exibida. Para obter mais informações sobre quaisquer problemas de conexão que possam acontecer, confira Solucionar problemas de conexões.

    A captura de tela mostra um fluxo de trabalho de Consumo com a ação gerenciada pelo SAP denominada Enviar mensagem ao SAP.

  4. Na ação Enviar mensagem ao SAP, localize e selecione uma ação SAP disponível no servidor SAP para enviar o IDoc.

    A ação Enviar mensagem ao SAP é genérica e pode enviar uma mensagem para BAPI, IDoc, RFC ou tRFC, mas primeiro você deve selecionar o tipo de mensagem e a ação SAP a serem usados.

    1. Na caixa de edição de parâmetro Ação SAP selecione o ícone de pasta. Na lista que é aberta, selecione BAPI, IDOC, RFC ou TRFC. Este exemplo seleciona IDOC. Se você selecionar um tipo diferente, as ações SAP disponíveis serão alteradas com base na sua seleção.

      Observação

      Se você receber um erro de Gateway Inválido (500) ou um erro de Solicitação Inválida (400), confira Erro de Gateway Inválido 500 ou erro de Solicitação Inválida 400.

      A captura de tela mostra a seleção do IDoc para um fluxo de trabalho de Consumo.

    2. Navegue pelas pastas de tipos de ação SAP usando as setas para localizar e selecionar a ação SAP que você deseja usar.

      Este exemplo seleciona ORDERS>ORDERS05>720>Enviar.

      A captura de tela mostra a localização de uma ação de pedidos para um fluxo de trabalho de Consumo.

      Se não encontrar a ação desejada, é possível inserir um caminho manualmente, por exemplo:

      A captura de tela mostra a entrada manual de um caminho para um tipo de ação de Pedidos para um fluxo de trabalho de Consumo.

      Dica

      Para o parâmetro Ação SAP, você pode usar o editor de expressão para fornecer o valor do parâmetro. Dessa forma, é possível usar a mesma ação SAP para diferentes tipos de mensagem.

      Para saber mais sobre mensagens IDoc, veja Esquemas de mensagens para operações IDoc.

    3. Na ação Enviar mensagem ao SAP, inclua a saída do corpo do gatilho de Solicitação.

      1. No parâmetro Mensagem de Entrada, selecione dentro da caixa de edição para abrir a lista de conteúdo dinâmico.

      2. Na lista de conteúdo dinâmico, sob Quando uma solicitação HTTP é recebida, selecione Corpo. O campo Corpo contém a saída do corpo do gatilho de Solicitação.

        Observação

        Se você não vir o campo Corpo na lista, ao lado do rótulo Quando uma solicitação HTTP é recebida, selecione Ver mais.

      A captura de tela mostra a seleção da saída do gatilho da solicitação nomeada Corpo para fluxo de trabalho de Consumo.

      A ação Enviar mensagem ao SAP agora inclui o conteúdo do corpo do gatilho de Solicitação e envia essa saída para o servidor SAP, por exemplo:

      A captura de tela mostra a ação do SAP concluída para o fluxo de trabalho de Consumo.

  5. Salve seu fluxo de trabalho.

Enviar IDocs de arquivo simples para o servidor SAP (somente conector gerenciado)

Para enviar um IDoc usando um esquema de arquivo simples, ao usar o conector gerenciado do SAP, você pode encapsular o IDoc em um envelope XML e seguir as etapas gerais para adicionar uma ação SAP para enviar um IDoc, mas com as seguintes alterações:

Observação

Se você estiver usando o conector interno do SAP, certifique-se de não encapsular um IDoc de arquivo simples em um envelope XML.

Encapsular IDoc com envelope XML

  1. Na ação SAP que você usa para enviar a mensagem, use o seguinte URI:

    http://Microsoft.LobServices.Sap/2007/03/Idoc/SendIdoc

  2. Formate sua mensagem de entrada com um envelope XML.

O exemplo a seguir mostra um conteúdo XML de amostra:

<SendIdoc xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/">
  <idocData>EDI_DC 3000000001017945375750 30INVOIC011BTSVLINV30KUABCABCFPPC LDCA X004010810 4 SAPMSX LSEDI ABCABCFPPC 000d3ae4-723e-1edb-9ca4-cc017365c9fd 20210217054521INVOICINVOIC01ZINVOIC2RE 20210217054520
E2EDK010013000000001017945375000001E2EDK01001000000010 ABCABC1.00000 0060 INVO9988298128 298.000 298.000 LB Z4LR EN 0005065828 L
E2EDKA1 3000000001017945375000002E2EDKA1 000000020 RS ABCABCFPPC 0005065828 ABCABCABC ABCABC Inc. Limited Risk Distributor ABCABC 1950 ABCABCABCA Blvd ABCABAABCAB L5N8L9 CA ABCABC E ON V-ABCABC LDCA
E2EDKA1 3000000001017945375000003E2EDKA1 000000020 AG 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000004E2EDKA1 000000020 RE 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000005E2EDKA1 000000020 RG 0005065828 ABCABCFPPC ABCABC ABCABC ABCABC - FPP ONLY 88 ABCABC Crescent ABCABAABCAB L5R 4A2 CA ABCABC 111 111 1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000006E2EDKA1 000000020 WE 0005001847 41 ABCABC ABCABC INC (ABCABC) DC A. ABCABCAB 88 ABCABC CRESCENT ABCABAABCAB L5R 4A2 CA ABCABC 111-111-1111 E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000007E2EDKA1 000000020 Z3 0005533050 ABCABCABC ABCABC Inc. ABCA Bank Swift Code -ABCABCABCAB Sort Code - 1950 ABCABCABCA Blvd. Acc No -1111111111 ABCABAABCAB L5N8L9 CA ABCABC E ON ABCABCFPPC EN
E2EDKA1 3000000001017945375000008E2EDKA1 000000020 BK 1075 ABCABCABC ABCABC Inc 1950 ABCABCABCA Blvd ABCABAABCAB ON L5N 8L9 CA ABCABC (111) 111-1111 (111) 111-1111 ON
E2EDKA1 3000000001017945375000009E2EDKA1 000000020 CR 1075 CONTACT ABCABCABC 1950 ABCABCABCA Blvd ABCABAABCAB ON L5N 8L9 CA ABCABC (111) 111-1111 (111) 111-1111 ON
E2EDK02 3000000001017945375000010E2EDK02 000000020 0099988298128 20210217
E2EDK02 3000000001017945375000011E2EDK02 000000020 00140-N6260-S 20210205
E2EDK02 3000000001017945375000012E2EDK02 000000020 0026336270425 20210217
E2EDK02 3000000001017945375000013E2EDK02 000000020 0128026580537 20210224
E2EDK02 3000000001017945375000014E2EDK02 000000020 01740-N6260-S
E2EDK02 3000000001017945375000015E2EDK02 000000020 900IAC
E2EDK02 3000000001017945375000016E2EDK02 000000020 901ZSH
E2EDK02 3000000001017945375000017E2EDK02 000000020 9078026580537 20210217
E2EDK03 3000000001017945375000018E2EDK03 000000020 02620210217
E2EDK03 3000000001017945375000019E2EDK03 000000020 00120210224
E2EDK03 3000000001017945375000020E2EDK03 000000020 02220210205
E2EDK03 3000000001017945375000021E2EDK03 000000020 01220210217
E2EDK03 3000000001017945375000022E2EDK03 000000020 01120210217
E2EDK03 3000000001017945375000023E2EDK03 000000020 02420210217
E2EDK03 3000000001017945375000024E2EDK03 000000020 02820210418
E2EDK03 3000000001017945375000025E2EDK03 000000020 04820210217
E2EDK17 3000000001017945375000026E2EDK17 000000020 001DDPDelivered Duty Paid
E2EDK17 3000000001017945375000027E2EDK17 000000020 002DDPdestination
E2EDK18 3000000001017945375000028E2EDK18 000000020 00160 0 Up to 04/18/2021 without deduction
E2EDK28 3000000001017945375000029E2EDK28 000000020 CA BOFACATT Bank of ABCABAB ABCABC ABCABAB 50127217 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000030E2EDK28 000000020 CA 026000082 ABCAbank ABCABC ABCABAB 201456700OLD ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000031E2EDK28 000000020 GB ABCAGB2L ABCAbank N.A ABCABA E14, 5LB GB63ABCA18500803115593 ABCABCABC ABCABC Inc. GB63ABCA18500803115593
E2EDK28 3000000001017945375000032E2EDK28 000000020 CA 020012328 ABCABANK ABCABC ABCABAB ON M5J 2M3 2014567007 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000033E2EDK28 000000020 CA 03722010 ABCABABC ABCABABC Bank of Commerce ABCABAABCAB 64-04812 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000034E2EDK28 000000020 IE IHCC In-House Cash Center IHCC1075 ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000035E2EDK28 000000020 CA 000300002 ABCAB Bank of ABCABC ABCABAB 0021520584OLD ABCABCABC ABCABC Inc.
E2EDK28 3000000001017945375000036E2EDK28 000000020 US USCC US Cash Center (IHC) city USCC1075 ABCABCABC ABCABC Inc.
E2EDK29 3000000001017945375000037E2EDK29 000000020 0064848944US A CAD CA ABCABC CA United States US CA A Air Air
E2EDKT1 3000000001017945375000038E2EDKT1 000000020 ZJ32E EN
E2EDKT2 3000000001017945375000039E2EDKT2 000038030 GST/HST877845941RT0001 *
E2EDKT2 3000000001017945375000040E2EDKT2 000038030 QST1021036966TQ0001 *
E2EDKT1 3000000001017945375000041E2EDKT1 000000020 Z4VL
E2EDKT2 3000000001017945375000042E2EDKT2 000041030 0.000 *
E2EDKT1 3000000001017945375000043E2EDKT1 000000020 Z4VH
E2EDKT2 3000000001017945375000044E2EDKT2 000043030 *
E2EDK14 3000000001017945375000045E2EDK14 000000020 008LDCA
E2EDK14 3000000001017945375000046E2EDK14 000000020 00710
E2EDK14 3000000001017945375000047E2EDK14 000000020 00610
E2EDK14 3000000001017945375000048E2EDK14 000000020 015Z4F2
E2EDK14 3000000001017945375000049E2EDK14 000000020 0031075
E2EDK14 3000000001017945375000050E2EDK14 000000020 021M
E2EDK14 3000000001017945375000051E2EDK14 000000020 0161075
E2EDK14 3000000001017945375000052E2EDK14 000000020 962M
E2EDP010013000000001017945375000053E2EDP01001000000020 000011 2980.000 EA 298.000 LB MOUSE 298.000 Z4TN 4260
E2EDP02 3000000001017945375000054E2EDP02 000053030 00140-N6260-S 00000120210205 DFUE
E2EDP02 3000000001017945375000055E2EDP02 000053030 0026336270425 00001120210217
E2EDP02 3000000001017945375000056E2EDP02 000053030 0168026580537 00001020210224
E2EDP02 3000000001017945375000057E2EDP02 000053030 9100000 00000120210205 DFUE
E2EDP02 3000000001017945375000058E2EDP02 000053030 911A 00000120210205 DFUE
E2EDP02 3000000001017945375000059E2EDP02 000053030 912PP 00000120210205 DFUE
E2EDP02 3000000001017945375000060E2EDP02 000053030 91300 00000120210205 DFUE
E2EDP02 3000000001017945375000061E2EDP02 000053030 914CONTACT ABCABCABC 00000120210205 DFUE
E2EDP02 3000000001017945375000062E2EDP02 000053030 963 00000120210205 DFUE
E2EDP02 3000000001017945375000063E2EDP02 000053030 965 00000120210205 DFUE
E2EDP02 3000000001017945375000064E2EDP02 000053030 9666336270425 00000120210205 DFUE
E2EDP02 3000000001017945375000065E2EDP02 000053030 9078026580537 00001020210205 DFUE
E2EDP03 3000000001017945375000066E2EDP03 000053030 02920210217
E2EDP03 3000000001017945375000067E2EDP03 000053030 00120210224
E2EDP03 3000000001017945375000068E2EDP03 000053030 01120210217
E2EDP03 3000000001017945375000069E2EDP03 000053030 02520210217
E2EDP03 3000000001017945375000070E2EDP03 000053030 02720210217
E2EDP03 3000000001017945375000071E2EDP03 000053030 02320210217
E2EDP03 3000000001017945375000072E2EDP03 000053030 02220210205
E2EDP19 3000000001017945375000073E2EDP19 000053030 001418VVZ
E2EDP19 3000000001017945375000074E2EDP19 000053030 002RJR-00001 AB ABCABCABC Mouse FORBUS BLUETOOTH
E2EDP19 3000000001017945375000075E2EDP19 000053030 0078471609000
E2EDP19 3000000001017945375000076E2EDP19 000053030 003889842532685
E2EDP19 3000000001017945375000077E2EDP19 000053030 011CN
E2EDP26 3000000001017945375000078E2EDP26 000053030 00459064.20
E2EDP26 3000000001017945375000079E2EDP26 000053030 00352269.20
E2EDP26 3000000001017945375000080E2EDP26 000053030 01052269.20
E2EDP26 3000000001017945375000081E2EDP26 000053030 01152269.20
E2EDP26 3000000001017945375000082E2EDP26 000053030 0126795.00
E2EDP26 3000000001017945375000083E2EDP26 000053030 01552269.20
E2EDP26 3000000001017945375000084E2EDP26 000053030 00117.54
E2EDP26 3000000001017945375000085E2EDP26 000053030 00252269.20
E2EDP26 3000000001017945375000086E2EDP26 000053030 940 2980.000
E2EDP26 3000000001017945375000087E2EDP26 000053030 939 2980.000
E2EDP05 3000000001017945375000088E2EDP05 000053030 + Z400MS List Price 52269.20 17.54 1 EA CAD 2980
E2EDP05 3000000001017945375000089E2EDP05 000053030 + XR1 Tax Jur Code Level 6795.00 13.000 52269.20
E2EDP05 3000000001017945375000090E2EDP05 000053030 + Tax Subtotal1 6795.00 2.28 1 EA CAD 2980
E2EDP05 3000000001017945375000091E2EDP05 000053030 + Taxable Amount + TaxSubtotal1 59064.20 19.82 1 EA CAD 2980
E2EDP04 3000000001017945375000092E2EDP04 000053030 CX 13.000 6795.00 7000000000
E2EDP04 3000000001017945375000093E2EDP04 000053030 CX 0 0 7001500000
E2EDP04 3000000001017945375000094E2EDP04 000053030 CX 0 0 7001505690
E2EDP28 3000000001017945375000095E2EDP28 000053030 00648489440000108471609000 CN CN ABCAB ZZ 298.000 298.000 LB US 400 United Stat KY
E2EDPT1 3000000001017945375000096E2EDPT1 000053030 0001E EN
E2EDPT2 3000000001017945375000097E2EDPT2 000096040 AB ABCABCABC Mouse forBus Bluetooth EN/XC/XD/XX Hdwr Black For Bsnss *
E2EDS01 3000000001017945375000098E2EDS01 000000020 0011
E2EDS01 3000000001017945375000099E2EDS01 000000020 01259064.20 CAD
E2EDS01 3000000001017945375000100E2EDS01 000000020 0056795.00 CAD
E2EDS01 3000000001017945375000101E2EDS01 000000020 01159064.20 CAD
E2EDS01 3000000001017945375000102E2EDS01 000000020 01052269.20 CAD
E2EDS01 3000000001017945375000103E2EDS01 000000020 94200000 CAD
E2EDS01 3000000001017945375000104E2EDS01 000000020 9440.00 CAD
E2EDS01 3000000001017945375000105E2EDS01 000000020 9450.00 CAD
E2EDS01 3000000001017945375000106E2EDS01 000000020 94659064.20 CAD
E2EDS01 3000000001017945375000107E2EDS01 000000020 94752269.20 CAD
E2EDS01 3000000001017945375000108E2EDS01 000000020 EXT
Z2XSK010003000000001017945375000109Z2XSK01000000108030 Z400 52269.20
Z2XSK010003000000001017945375000110Z2XSK01000000108030 XR1 13.000 6795.00 CX
</idocData>
</SendIdoc>

Adicionar uma ação de resposta

Agora, configure seu fluxo de trabalho para retornar os resultados do servidor SAP para o solicitante original. Para executar essa tarefa, siga estas etapas:

  1. No designer de fluxo de trabalho, na ação SAP, selecione Nota etapa.

  2. No designer, siga estas etapas gerais para localizar e adicionar a ação interna de Solicitação denominada Resposta.

  3. Na ação Resposta, para o parâmetro Corpo, selecione dentro da caixa de edição para abrir a lista de conteúdo dinâmico.

  4. Na lista de conteúdo dinâmico, em Enviar mensagem ao SAP, selecione Corpo. O campo Corpo contém a saída do corpo da ação SAP.

    A captura de tela mostra a saída da ação SAP denominada Corpo para fluxo de trabalho de Consumo.

  5. Salve seu fluxo de trabalho.

Criar um padrão de solicitação-resposta de chamada de função remota (RFC)

Para os fluxos de trabalho de Consumo que usam o conector gerenciado pelo SAP, se você precisar receber respostas usando uma RFC (Remote Function Call) para os Aplicativos Lógicos do Azure por meio do SAP ABAP, será necessário implementar um padrão de solicitação e resposta. Para receber IDocs em seu fluxo de trabalho ao usar o gatilho de Solicitação, verifique se a primeira ação do fluxo de trabalho é uma ação de Resposta que usa o código de status 200 OK sem nenhum conteúdo. Esta etapa recomendada conclui a transferência assíncrona da Unidade Lógica de Trabalho (LUW) do SAP sobre tRFC imediatamente, o que deixa a conversação CPIC do SAP disponível novamente. Em seguida, você pode adicionar mais ações ao fluxo de trabalho para processar o IDoc recebido sem bloquear transferências posteriores.

Observação

O gatilho SAP recebe IDocs sobre tRFC, que não tem um parâmetro de resposta, por design.

Para implementar um padrão de solicitação e resposta, primeiro você deve descobrir o esquema RFC usando o comando generate schema. O esquema gerado tem dois nós raiz possíveis:

  • O nó de solicitação, que é a chamada que você recebe do SAP
  • O nó de resposta, que é a resposta de volta para o SAP

No exemplo a seguir, o módulo RFC STFC_CONNECTION gera um padrão de solicitação e resposta. O XML de solicitação é analisado para extrair um valor de nó em que o SAP solicita <ECHOTEXT>. A resposta insere o carimbo de data/hora atual como um valor dinâmico. Você recebe uma resposta semelhante ao enviar uma RFC STFC_CONNECTION de um fluxo de trabalho de aplicativo lógico para o SAP.

<STFC_CONNECTIONResponse xmlns="http://Microsoft.LobServices.Sap/2007/03/Rfc/">
  <ECHOTEXT>@{first(xpath(xml(triggerBody()?['Content']), '/*[local-name()="STFC_CONNECTION"]/*[local-name()="REQUTEXT"]/text()'))}</ECHOTEXT>
  <RESPTEXT>Azure Logic Apps @{utcNow()}</RESPTEXT>
</STFC_CONNECTIONResponse>

Testar seu fluxo de trabalho

  1. Se o seu 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 Habilitar.

  2. Para iniciar manualmente o fluxo de trabalho, na barra de ferramentas do designer, selecione Executar>Executar.

  3. Para simular uma carga de gatilho de webhook e disparar o fluxo de trabalho, envie uma solicitação HTTP para a URL do ponto de extremidade criada pelo gatilho de Solicitação do fluxo de trabalho, incluindo o método que o gatilho de Solicitação espera, usando sua ferramenta de solicitação HTTP e suas instruções. Certifique-se de incluir o conteúdo da mensagem com sua solicitação.

    Este exemplo usa o método POST e a URL do ponto de extremidade para enviar um arquivo IDoc, que deve estar no formato XML e incluir o namespace para a ação SAP selecionada, por exemplo:

    <?xml version="1.0" encoding="UTF-8" ?>
    <Send xmlns="http://Microsoft.LobServices.Sap/2007/03/Idoc/2/ORDERS05//720/Send">
      <idocData>
        <...>
      </idocData>
    </Send>
    
  4. Depois de enviar a solicitação HTTP, aguarde a resposta do seu fluxo de trabalho.

Agora você criou um fluxo de trabalho que pode enviar IDocs e se comunicar com o servidor SAP. Agora que você configurou uma conexão SAP para o seu fluxo de trabalho, pode tentar experimentar o BAPI e o RFC.

Problemas de tempo limite do fluxo de trabalho

O fluxo de trabalho atinge o tempo limite em qualquer um dos seguintes cenários:

  • Todas as etapas necessárias para a resposta não são concluídas dentro do limite de tempo limite da solicitação. Se essa condição ocorrer, as solicitações podem ser bloqueadas. Para ajudá-lo a diagnosticar problemas, saiba como verificar e monitorar seus fluxos de trabalho de aplicativos lógicos.

  • O modo de processamento do sistema SAP é definido como a configuração padrão Disparar imediatamente, o que faz com que o sistema SAP bloqueie a chamada de entrada para transmissão IDoc até que um IDoc conclua o processamento.

    Se o sistema SAP estiver sob carga, por exemplo, quando o fluxo de trabalho enviar um lote de IDocs de uma só vez para o SAP, o IDoc enfileirado chamará o tempo limite. O modo de processamento padrão faz com que o sistema SAP bloqueie a chamada de entrada para transmissão IDoc até que um IDoc conclua 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 resolver esse problema, siga as etapas na seção Pré-requisitos que alteram a configuração para Disparar por programa em segundo plano.

Digitação segura

Por padrão, quando você cria uma conexão para a operação gerenciada pelo SAP, a tipagem forte é usada para verificar se há valores inválidos executando a validação de XML em relação ao esquema. Esse comportamento pode ajudá-lo a detectar problemas mais cedo. A opção Digitação Segura está disponível para compatibilidade com versões anteriores e verifica apenas o comprimento da cadeia de caracteres. Se você escolher Digitação Segura, o tipo de DATs e o tipo TIMS no SAP serão tratados como cadeias de caracteres, em vez de como seus equivalentes XML xs:date e xs:time, em que xmlns:xs="http://www.w3.org/2001/XMLSchema". A digitação segura afeta o comportamento de toda a geração de esquema, a mensagem de envio para o conteúdo "enviado" e a resposta "foi recebido" e o gatilho.

Quando a tipagem forte é usada (a Digitação Segura não está habilitada), o esquema mapeia os tipos DATs e TIMS para tipos XML mais diretos:

<xs:element minOccurs="0" maxOccurs="1" name="UPDDAT" nillable="true" type="xs:date"/>
<xs:element minOccurs="0" maxOccurs="1" name="UPDTIM" nillable="true" type="xs:time"/>

Quando você envia mensagens usando tipificação forte, as respostas DATS e TIMS estão em conformidade com o formato de tipo XML correspondente:

<DATE>9999-12-31</DATE>
<TIME>23:59:59</TIME>

Quando a Digitação Segura está habilitada, o esquema mapeia os tipos DATs e TIMS para campos de cadeia de caracteres XML com restrições de comprimento apenas, por exemplo:

<xs:element minOccurs="0" maxOccurs="1" name="UPDDAT" nillable="true">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="8" />
    </xs:restriction>
  </xs:simpleType>
</xs:element>
<xs:element minOccurs="0" maxOccurs="1" name="UPDTIM" nillable="true">
  <xs:simpleType>
    <xs:restriction base="xs:string">
      <xs:maxLength value="6" />
    </xs:restriction>
  </xs:simpleType>
</xs:element>

Quando as mensagens são enviadas com a Digitação Segura habilitada, a resposta de DATs e TIMS é semelhante a este exemplo:

<DATE>99991231</DATE>
<TIME>235959</TIME>

Cenários avançados

Alterar cabeçalhos de idioma para enviar dados ao SAP

Quando você se conecta ao SAP dos Aplicativos Lógicos do Azure, o inglês é o idioma padrão usado pela conexão SAP para enviar dados ao servidor SAP. No entanto, o conector gerenciado pelo SAP e o conector interno do SAP lidam com a alteração e o salvamento do idioma usado de maneiras diferentes.

  • Quando você cria uma conexão com o conector interno do SAP, os parâmetros de conexão permitem especificar e salvar o valor do parâmetro de idioma como parte dos parâmetros de conexão SAP.

  • Quando você cria uma conexão com o conector gerenciado pelo SAP, os parâmetros de conexão não têm parâmetro de idioma. Portanto, durante esse tempo, você não pode especificar ou o idioma a ser usado para enviar dados ao servidor SAP. Em vez disso, no tempo de design do fluxo de trabalho e no tempo de execução, o conector usa o idioma local do navegador da Web de cada solicitação enviada ao servidor. Por exemplo, se o navegador estiver definido como português, os Aplicativos Lógicos do Azure criarão e testarão a conexão SAP com o português, mas não salvarão a conexão com esse idioma.

    No entanto, você pode definir o idioma da conexão usando o cabeçalho HTTP padrão Accept-Language com as solicitações de entrada. A maioria dos navegadores da Web adiciona um cabeçalho Accept-Language com base nas configurações de localidade. O navegador da Web aplica esse cabeçalho quando você cria uma conexão SAP no designer de Aplicativos Lógicos. Então, você pode atualizar as configurações do navegador da Web para usar o idioma preferencial, ou criar sua conexão SAP usando o Azure Resource Manager em vez do designer de fluxo de trabalho.

    Por exemplo, é possível enviar uma solicitação com o cabeçalho Accept-Language para o fluxo de trabalho do aplicativo lógico usando o gatilho de Solicitação denominado Quando uma solicitação HTTP é recebida. Todas as ações no fluxo de trabalho recebem o cabeçalho. Em seguida, o SAP usa os idiomas especificados em suas mensagens do sistema, como mensagens de erro do BAPI. Se você não passar um cabeçalho Accept-Language em tempo de execução, por padrão, o inglês será usado.

    Se você usar o cabeçalho Accept-Language, poderá obter o seguinte erro: Verifique as informações e/ou as permissões de sua conta e tente novamente. Nesse caso, verifique os logs de erros do componente do SAP. O erro de fato acontece no componente SAP que usa o cabeçalho, portanto, você pode receber uma dessas mensagens de erro:

    • "SAP.Middleware.Connector.RfcLogonException: selecione um dos idiomas instalados"

    • "SAP.Middleware.Connector.RfcAbapMessageException: selecione um dos idiomas instalados"

Confirme a transação separadamente e explicitamente

Quando você envia transações para o SAP pelos Aplicativos Lógicos do Azure, essa troca ocorre em duas etapas, conforme descrito no documento SAP, Programas de Servidor RFC Transacional.

Por padrão, a ação do conector gerenciado pelo SAP denominada Enviar mensagem ao SAP manipula as duas etapas para transferir a função e confirmar a transação em uma única chamada. Você também tem a opção de desacoplar essas etapas. A capacidade de desacoplar as etapas de transferência e confirmação é útil para cenários em que você não deseja duplicar transações no SAP. Esses cenários incluem falhas que ocorrem devido a causas como problemas de rede.

Você pode enviar um IDoc sem confirmar automaticamente a transação usando a ação do conector gerenciado pelo SAP denominada [IDOC] Enviar documento ao SAP. Em seguida, você pode confirmar explicitamente a transação usando a ação do conector gerenciado pelo SAP denominada [IDOC - RFC] Confirmar ID da transação. Quando o fluxo de trabalho confirma separadamente a transação em uma etapa diferente, o sistema SAP conclui a transação apenas uma vez.

Nos fluxos de trabalho Standard, o conector interno do SAP também tem ações que lidam separadamente com as etapas de transferência e confirmação, especificamente, [IDoc] Enviar documento ao SAP e [IDOC - RFC] Confirmar ID da transação.

O fluxo de trabalho de exemplo a seguir mostra esse padrão:

  1. Crie e abra um aplicativo lógico de Consumo ou Standard com um fluxo de trabalho em branco no designer. Adicione o gatilho de Solicitação.

  2. Para ajudar a evitar o envio de IDocs duplicados para o SAP, siga estas etapas alternativas para criar e usar uma ID de transação IDoc em suas ações do SAP.

  3. Adicione a ação SAP denominada [IDOC] Enviar documento ao SAP para o fluxo de trabalho. Forneça as informações para o IDoc que você envia para o sistema SAP, mais os seguintes valores:

    Parâmetro Valor Descrição
    Confirmar TID Não Não confirme automaticamente a ID da transação, o que acontece explicitamente em uma etapa separada.
    GUID de ID da transação <IDoc-transaction-ID> Se esse parâmetro não aparecer automaticamente, abra a lista Adicionar novos parâmetros e selecione o parâmetro.

    Você pode especificar manualmente esse valor ou o conector pode gerar automaticamente esse GUID como uma saída da ação [IDOC] Enviar documento ao SAP. Este exemplo deixa esse parâmetro vazio para gerar automaticamente o GUID.

    Fluxo de trabalho de Consumo

    A captura de tela mostra o fluxo de trabalho de Consumo com a ação denominada IDOC Enviar documento para o SAP.

    Fluxo de trabalho Standard

    A captura de tela mostra o fluxo de trabalho Standard com a ação denominada IDOC Enviar documento para o SAP.

  4. Na ação SAP denominada [IDOC] Enviar documento ao SAP, abra Configurações para examinar a Política de Repetição.

    A opção Padrão é a política recomendada, mas você pode selecionar uma política personalizada para suas necessidades específicas. Se você optar por usar uma política personalizada, configure pelo menos uma repetição para superar interrupções temporárias de rede.

  5. Agora, adicione a ação SAP denominada [IDOC - RFC] Confirmar a ID da transação.

    1. No parâmetro ID da transação, selecione dentro da caixa de edição para abrir a lista de conteúdo dinâmico.

    2. Na lista, em [IDOC] Enviar documento para o SAP, selecione o valor da ID da Transação, que é a saída da ação anterior do SAP.

      Fluxo de trabalho de Consumo

      A captura de tela mostra o fluxo de trabalho de Consumo com ação denominada ID de transação, que inclui a saída GUID da ação anterior.

      Fluxo de trabalho Standard

      A captura de tela mostra o fluxo de trabalho Standard com a ação denominada Confirmar ID da transação, que inclui a saída GUID da ação anterior.

    Depois que essa etapa é executada, a transação atual é marcada como concluída em ambas as extremidades, no lado do conector SAP e no lado do sistema SAP.

Evite enviar IDocs duplicados com uma variável de ID de transação

Se você tiver um problema com o fluxo de trabalho enviando IDocs duplicados para o SAP, poderá criar uma variável de cadeia de caracteres que sirva como um identificador de transação IDoc. Em seguida, você pode usar esse identificador para ajudar a evitar transmissões de rede duplicadas em condições como interrupções temporárias, problemas de rede ou confirmações perdidas.

  1. No designer, depois de adicionar o gatilho de Solicitação e antes de adicionar a ação SAP denominada [IDOC] Enviar documento ao SAP, adicione a ação denominada Inicializar variável ao seu fluxo de trabalho.

  2. Renomeie a ação como Criar ID de transação IDoc.

  3. Na caixa de informações de ação, forneça os valores de parâmetro a seguir:

    Parâmetro Valor Descrição
    Nome <variable-name> Um nome para sua variável; por exemplo, IDocTransactionID
    Tipo Cadeia de caracteres O tipo de variável
    Valor guid() Selecione dentro da caixa de edição, abra a expressão ou o editor de funções e insira guid(). Salve suas alterações.

    O parâmetro Valor é agora definido para a função guid(), que gera um GUID.

    Fluxo de trabalho de Consumo

    A captura de tela mostra o fluxo de trabalho de Consumo com a ação denominada ID de transação.

    Fluxo de trabalho Standard

    A captura de tela mostra o fluxo de trabalho Standard com a ação denominada Criar ID de transação.

    Observação

    Os sistemas SAP esquecem um identificador de transação após uma hora especificada ou 24 horas por padrão. Como resultado, o SAP nunca falha ao confirmar um identificador de transação se a ID ou o GUID é desconhecido. Se a confirmação de um identificador de transação falhar, essa falha indicará que comunicação com o sistema SAP falhou antes que o SAP pudesse reconhecer a confirmação.

  4. Adicione a ação SAP denominada [IDOC] Enviar documento ao SAP para o fluxo de trabalho. Forneça as informações para o IDoc que você envia para o sistema SAP, mais os seguintes valores:

    Parâmetro Valor Descrição
    Confirmar TID Não Não confirme automaticamente a ID da transação, o que acontece explicitamente em uma etapa separada.
    GUID de ID da transação <IDoc-transaction-ID> Se esse parâmetro não aparecer automaticamente, abra a lista Adicionar novos parâmetros e selecione o parâmetro. Para selecionar a variável de ID de transação que você criou, siga estas etapas:

    1. No parâmetro GUID da ID da Transação, selecione dentro da caixa de edição para abrir a lista de conteúdo dinâmico.

    2. Na lista, em Variáveis, selecione a variável que você criou anteriormente, que é IDocTransactionID neste exemplo.

    Fluxo de trabalho de Consumo

    A captura de tela mostra o fluxo de trabalho de Consumo com a ação denominada IDOC Enviar documento para o SAP.

    Fluxo de trabalho Standard

    A captura de tela mostra o fluxo de trabalho Standard com ação denominada IDOC Enviar documento para o SAP.

  5. Para a ação gerenciada pelo SAP denominada [IDOC] Enviar documento ao SAP, abra Configurações para examinar a Política de Repetição.

    A opção Padrão é a política recomendada, mas você pode selecionar uma política personalizada para suas necessidades específicas. Se você optar por usar uma política personalizada, configure pelo menos uma repetição para superar interrupções temporárias de rede.

    Observação

    Somente as ações do conector gerenciado atualmente têm a configuração de Política de Repetição, não conectores internos baseados no provedor de serviços.

  6. Agora, adicione a ação SAP denominada [IDOC - RFC] Confirmar a ID da transação.

    1. No parâmetro ID da transação, selecione dentro da caixa de edição para abrir a lista de conteúdo dinâmico.

    2. Na lista, sob Variáveis, insira o nome da variável que você criou, que é IDocTransactionID neste exemplo.

      Fluxo de trabalho de Consumo

      A captura de tela mostra o fluxo de trabalho de Consumo com ação denominada Confirmar ID de transação usando uma variável.

      Fluxo de trabalho Standard

      A captura de tela mostra o fluxo de trabalho Standard com ação denominada Confirmar ID da transação usando uma variável.

  7. Opcionalmente, valide a eliminação de duplicação em seu ambiente de teste.

    1. Adicione outra ação SAP denominada [IDOC] Enviar documento ao SAP. No parâmetro ID da transação, selecione o GUID da ID da Transação que você usou na etapa anterior.

    2. Para validar qual número de IDoc foi atribuído após cada chamada para a ação denominada [IDOC] Enviar documento ao SAP, adicione a ação denominada [IDOC] Obter lista de IDOC para a transação ao seu fluxo de trabalho com a mesma ID da Transação e a direção Receber.

      Se o mesmo número de IDoc for retornado para ambas as chamadas, o IDoc foi deduplicado.

Se você envia o mesmo IDoc duas vezes, pode validar que o SAP pode identificar a duplicação da chamada tRFC, e resolver as duas chamadas para uma só mensagem IDoc de entrada.

Solução de problemas

Problemas de conexão

Durante a criação da conexão, se você receber o seguinte erro, existe um problema com a instalação da biblioteca de clientes NCo do SAP:

Falha no teste de conexão. Erro "Falha ao processar a solicitação. Detalhes do erro: 'Não foi possível carregar o arquivo ou o assembly 'sapnco, Version=3.0.0.42, Culture=neutral, PublicKeyToken 50436dca5c7f7d23' ou uma de suas dependências. O sistema não pode localizar o arquivo especificado'."

Instale a versão necessária da biblioteca de clientes SAP NCo e cumpra a todos os outros pré-requisitos.

Erro de Gateway Inválido 500 ou Solicitação Inválida 400

Se você receber um erro 500 Gateway inválido ou 400 Solicitação inválida com uma mensagem semelhante a serviço 'sapgw00' desconhecido, a resolução de nome de serviço de rede para o número da porta está falhando, por exemplo:

{
   "body": {
      "error": {
         "code": 500,
         "source": "EXAMPLE-FLOW-NAME.eastus.environments.microsoftazurelogicapps.net",
         "clientRequestId": "00000000-0000-0000-0000-000000000000",
         "message": "BadGateway",
         "innerError": {
            "error": {
               "code": "UnhandledException",
               "message": "\nERROR service 'sapgw00' unknown\nTIME Wed Nov 11 19:37:50 2020\nRELEASE 721\nCOMPONENT NI (network interface)\nVERSION 40\nRC -3\nMODULE ninti.c\nLINE 933\nDETAIL NiPGetServByName: 'sapgw00' not found\nSYSTEM CALL getaddrinfo\nCOUNTER 1\n\nRETURN CODE: 20"
            }
         }
      }
   }
}
  • Opção 1: na conexão de API e na configuração do gatilho, substitua o nome do serviço de gateway pelo número da porta dele. No erro de exemplo, sapgw00 precisa ser substituído por um número de porta real, por exemplo, 3300.

  • Option 2: se você estiver usando o gateway de dados local, será possível adicionar o nome do serviço de gateway ao mapeamento de porta em %windir%\System32\drivers\etc\services e reiniciar o serviço de gateway de dados local, por exemplo:

    sapgw00  3300/tcp
    

É possível obter um erro semelhante quando o servidor de aplicativos SAP ou o nome do servidor de mensagens é resolvido para o endereço IP. Para o gateway de dados local, é possível adicionar o nome ao mapeamento de endereço IP no %windir%\System32\drivers\etc\hosts, por exemplo:

10.0.1.9 SAPDBSERVER01 # SAP System Server VPN IP by computer name
10.0.1.9 SAPDBSERVER01.someguid.xx.xxxxxxx.cloudapp.net # SAP System Server VPN IP by fully qualified computer name

Erros ao enviar pacotes IDoc do SAP para o gatilho

Se você não puder enviar pacotes IDoc do SAP para o gatilho, confira a mensagem de rejeição de chamada RFC transacional (tRFC) na caixa de diálogo SAP tRFC (T-Code SM58). Na interface SAP, você pode receber as mensagens de erro a seguir, que são cortadas devido aos limites de substring no campo de Texto de Status.

A definição de segmento ou grupo E2EDK36001 não foi encontrada no meta IDoc

Essa mensagem de erro significa que as falhas esperadas ocorrem com outros erros. Por exemplo, a falha ao gerar um conteúdo XML IDoc ocorre porque seus segmentos não são liberados pelo SAP. Como resultado, os metadados de tipo de segmento necessários para a conversão estão ausentes.

Para que esses segmentos sejam liberados pelo SAP, entre em contato com o engenheiro do ABAP para seu sistema SAP.

RequestContext na IReplyChannel foi encerrado sem que uma resposta esteja sendo enviada

No caso do conector gerenciado pelo SAP, essa mensagem de erro significa que falhas inesperadas ocorrem quando o manipulador catch-all do canal encerra o canal devido a um erro e recria o canal para processar outras mensagens.

Observação

O gatilho gerenciado pelo SAP é um gatilho de webhook que usa o adaptador SAP baseado em SOAP. No entanto, o gatilho interno do SAP é um gatilho baseado no Azure Functions que não usa um adaptador SAP SOAP e não recebe essa mensagem de erro.

  • Para reconhecer que o fluxo de trabalho recebeu o IDoc, adicione uma ação de resposta que retorne um código de status 200 OK. Deixe o corpo vazio e não altere nem adicione aos cabeçalhos. O IDoc é transportado por meio de tRFC, que não permite um conteúdo de resposta.

  • Para rejeitar o IDoc em vez disso, responda com qualquer código de status HTTP diferente de 200 OK. O adaptador SAP retorna uma exceção de volta ao SAP em seu nome. Você só deve rejeitar o IDoc para sinalizar erros de transporte de volta para o SAP, como um IDoc roteado de modo invertido que seu aplicativo não pode processar. Você não deve rejeitar um IDoc para erros de nível de aplicativo, como problemas com os dados contidos no IDoc. Se você atrasar a aceitação do transporte para validação no nível do aplicativo, poderá ocorrer um desempenho negativo devido ao bloqueio de sua conexão de transportar outros IDocs.

  • Se você receber essa mensagem de erro e tiver falhas sistêmicas ao chamar os Aplicativos Lógicos do Azure, verifique se você definiu as configurações de rede para o serviço de gateway de dados local com relação ao seu ambiente específico. Por exemplo, se o seu ambiente de rede exigir o uso de um proxy para chamar pontos de extremidade do Azure, você precisará configurar seu serviço de gateway de dados local para usar o proxy. Para saber mais, veja Configuração de proxy.

  • Se você receber essa mensagem de erro e tiver falhas intermitentes ao chamar os Aplicativos Lógicos do Azure, pode ser necessário aumentar a contagem de repetições ou também o intervalo entre repetições seguindo as seguintes etapas:

    1. Verifique as configurações do SAP em seu arquivo de configuração de serviço de gateway de dados local denominado Microsoft.PowerBI.EnterpriseGateway.exe.config.

      1. No nó raiz configuration, adicione um elemento configSections, se nenhum existir.

      2. Sob o nó configSections, adicione um elemento section com os seguintes atributos, se não houver nenhum: name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"

        Importante

        Não altere os atributos em elementos section existentes, se esses elementos já existirem.

        Seu elemento configSections será semelhante à seguinte versão, se nenhuma outra seção ou grupo de seções for declarado na configuração do serviço de gateway:

        <configSections>
          <section name="SapAdapterSection" type="Microsoft.Adapters.SAP.Common.SapAdapterSection, Microsoft.Adapters.SAP.Common"/>
        </configSections>
        
      3. No nó raiz configuration, adicione um elemento SapAdapterSection, se nenhum existir.

      4. Sob o nó SapAdapterSection, adicione um elemento Broker com os seguintes atributos, se não houver nenhum: WebhookRetryDefaultDelay="00:00:00.10" WebhookRetryMaximumCount="2"

        Importante

        Altere os atributos do elemento Broker, mesmo que o elemento já exista.

        O elemento SapAdapterSection será semelhante à seguinte versão, se nenhum outro elemento ou atributo for declarado na configuração do adaptador SAP:

        <SapAdapterSection>
          <Broker WebhookRetryDefaultDelay="00:00:00.10" WebhookRetryMaximumCount="2" />
        </SapAdapterSection>
        

        A configuração de contagem de repetição é semelhante a WebhookRetryMaximumCount="2". A configuração do intervalo de repetição é semelhante a WebhookRetryDefaultDelay="00:00:00.10" em que o formato de TimeSpan tempo é HH:mm:ss.ff.

      Observação

      Para obter mais informações sobre o arquivo de configuração, examine o esquema de arquivo de configuração para .NET Framework.

    2. Salve suas alterações.

    3. Se você estiver usando o gateway de dados local, reinicie o gateway.

Próximas etapas