SAP

Saiba mais sobre cada cápsula da coleção SAP.

Para acessar a coleção SAP e usar as funcionalidades presentes nesse artigo, você precisa ter a permissão PIPELINE:CREATE. Aprenda mais na documentação sobre Papéis.

As cápsulas da coleção SAP são usadas para abstrair chamadas para SAP, encapsulando a capacidade de chamar funções remotas (RFC) para o sistema SAP.

Para utilizar as cápsulas RFC, você deve configurá-las com os parâmetros exigidos pelo SAP (como SID, LANGUAGE e CLIENT ID) e definir os parâmetros esperados pelo SAP.

Após a execução da cápsula, é possível controlar o fluxo de mensagens, analisar os casos de sucesso e falha e tratar a mensagem de resposta no formato JSON para facilitar o trabalho de dados no fluxo do pipeline.

Pré-requisitos para usar a coleção SAP

SAP é um dos principais fornecedores mundiais de software de gestão de processos de negócios e desenvolve soluções que facilitam o fluxo de informações entre empresas. Saiba mais no site do SAP.

Pré-requisitos

  1. Estabelecer VPN

As cápsulas SAP são sempre utilizadas para enviar o fluxo de informações ao SAP. Portanto, uma VPN Site-to-Site deve ser definida na instalação do SAP.

  1. Liberações de Porta 33XX e Hostname SAP

A conexão padrão SAP é estabelecida. Neste caso, as portas 33XX (XX é o número da instância SAP) devem ser liberadas dentro da VPN. Sem esta ação, o acesso às informações SAP não é possível. Além disso, a conexão requer o hostname SAP, que você pode acessar facilmente por meio da transação SMGW.

Por exemplo, se o Instance Number for 20, então a porta a ser liberada no túnel da VPN é 3320.

  1. Informações SAP Gui

Tal como acontece com o SAP GUI, as cápsulas também requerem informações de conexão para permitir o fluxo de dados. Veja abaixo as informações necessárias:

  • Instance Number e System ID

  • Logon Language e Client ID (mandante)

  1. Credenciais

Tanto o usuário quanto a senha de acesso ao SAP deverão estar cadastrados na Digibee Integration Platform. Uma conta do tipo “Basic” deve ser usada.

Cápsulas SAP

SAP RFC - Connectivity test

Com a cápsula SAP RFC - Connectivity Test um teste de conectividade pode ser realizado sem a necessidade de conhecer as funções e os parâmetros do SAP. A cápsula abstrai a chamada de uma RFC padrão (RFC_READ_TABLE) com os parâmetros mínimos já definidos.

Se ocorrer um erro na resposta após a execução da cápsula, deve-se verificar se os pré-requisitos foram atendidos. Contudo, se a resposta for “sucess”: true, você poderá continuar com a integração e chamar outras funções do SAP.

SAP RFC - Connector (JSON Input)

A cápsula SAP RFC - Connector (JSON Input) é uma cápsula genérica usada para todas as operações com as funções remotas do SAP. É possível ler dados de tabelas e cadastros de forma mais completa, adicionar novos cadastros (como Fornecedores, Clientes e Endereços) e também atualizar cadastros.

Por se tratar de uma cápsula genérica, todas as funções nativas do SAP estão disponíveis e as funções ABAP customizadas no ambiente SAP também podem ser executadas. Por exemplo, RFC para inclusão de Nota Fiscal com cálculo de impostos.

Entenda melhor como trabalhar com esse dinamismo e qual a relação com os parâmetros RFC:

  1. Import Parameters Attributes

Os parâmetros de entrada (opcionais) que devem ser especificados ao chamar a função. O campo não oferece suporte a parâmetros estruturais.

{  
    "BUSINESSPARTNER": "",  
    "VALID_DATE": ""
}
  1. Object Params

Os parâmetros de entrada (opcionais) que devem ser preenchidos na função. Parâmetros estruturais são suportados.

{
  "OBJ1": {
    "ATTR1": "V1"
  },
  "OBJ2": {
    "ATTR2": "V2",
    "ATTR3": "V3"
  }
}
  1. Table and Fields

Modelo para envio de parâmetros em formato de tabela. Para enviar mais de um item para a mesma tabela, adicione um novo objeto JSON dentro do array, conforme mostrado no exemplo a seguir:

[
  {
    "TABLE1": [{
      "ATTR1": "VALUE1",
      "ATTR2": "VALUE2"
    },
   {
      "ATTR1": "VALUE1",
      "ATTR2": "VALUE2"
    }],
    "TABLE2": [{
      "ATTR1": "VALUE1",
      "ATTR2": "VALUE2"
    }]
  }
]

De acordo com as boas práticas do SAP, recomenda-se não enviar parâmetros de tabela como Import Parameters.

  1. Conhecendo os parâmetros de uma função RFC

Verifique como você pode identificar os parâmetros esperados por um RFC para preencher a cápsula SAP RFC - Connector (JSON Input).

Exemplo:

  • RFC padrão do SAP, nativo no ambiente SAP

  • Função: BAPI_BUPA_ADDRESS_CHANGE

Primeiro, acesse a transação SE37 (Function Builder) em seu SAP:

Digite o nome da função (BAPI_BUPA_ADDRESS_CHANGE) e pressione F8 no teclado.

Todos os parâmetros esperados pela RFC e seus respectivos tipos são exibidos no seu SAP GUI Business Client.

Como mostrado no exemplo acima, os campos do tipo Import Parameters Attributes são: BUSINESSPARTNER e ADDRESSGUID (não são parâmetros estruturais).

Para os demais campos, clique no ícone exibido na coluna Valor. Em seguida, acesse o editor de estrutura usando o atalho Shift + F7.

Na figura acima, ADDRESSATA_X representa o nome do objeto. Os outros campos são os atributos do objeto.

Agora dê uma olhada em um parâmetro estrutural do tipo tabela que você pode usar para enviar uma lista e seus respectivos atributos um após o outro.

Usando os exemplos de parâmetros mostrados acima, dê uma olhada em um exemplo JSON que simula o formato esperado pela cápsula SAP.

Import Parameters Attributes:

{  
    "BUSINESSPARTNER": "0000000003"
}

Object Params:

{
  "ADDRESSDATA": {
    "STANDARDADDRESS": "X",
    "C_O_NAME": "",
    "CITY": "Barueri",
    "POSTL_COD1": "19970000",
    "STREET": "Rua adriano augusto teste",
    "HOUSE_NO": "1",
    "COUNTRY": "BR",
    "REGION": "SP",
    "LANGU": "PT",
    "VALIDFROMDATE": {{FORMATDATE(NOW(), "timestamp", "yyyy-MM-dd", null , "GMT-3") }},
    "VALIDTODATE": "2999-12-31"
  },
  "ADDRESSDATA_X": {
    "STANDARDADDRESS": "X",
    "C_O_NAME": "X",
    "POSTL_COD1": "X",
    "STREET": "X",
    "HOUSE_NO": "X",
    "COUNTRY": "X",
    "REGION": "X",
    "LANGU": "X"
  }
}

Table and Fields:

{
 "BAPIADTEL": [
   {
     "COUNTRY": "",
     "TELEPHONE": "",
     "TEL_NO": ""
   },
   {
     "COUNTRY": "",
     "TELEPHONE": "",
     "TEL_NO": ""
   }
 ],
 "BAPIADFAX": [
   {
     "COUNTRY": "",
     "FAX": ""
   }
 ]
}

SAP RFC - Read Nota Fiscal

A cápsula SAP RFC - Read Nota Fiscal foi desenvolvida especificamente para as necessidades do mercado brasileiro.

A cápsula SAP RFC - Read Nota Fiscal foi desenvolvida para realizar consultas de dados de notas fiscais no SAP utilizando o campo DOCNUM.

A RFC usada para a consulta é BAPI_J_1B_NF_GETDETAIL. Para consultar os detalhes de uma nota fiscal, insira o valor do campo DOCNUM em Import Parameters.

Use expressões Double Braces para fornecer o valor dinamicamente. Veja um exemplo:

{
  "BAPIADTEL": [
    {
      "COUNTRY": "",
      "TELEPHONE": "",
      "TEL_NO": ""
    },
    {
      "COUNTRY": "",
      "TELEPHONE": "",
      "TEL_NO": ""
    }
  ],
  "BAPIADFAX": [
    {
      "COUNTRY": "",
      "FAX": ""
    }
  ]
}

SAP RFC - Read Table

A cápsula SAP RFC - Read Table foi desenvolvida para executar consultas diretamente nas tabelas do SAP. Estes parâmetros se destacam entre os parâmetros padrão disponíveis em “Pré-requisitos”:

  1. TABLE: nome da tabela para a consulta de dados.

  2. Skip & Limit: parâmetros para controlar a paginação da consulta e limitar o número de registros retornados. Dessa forma, as consultas são executadas em blocos e o processo se torna mais eficiente.

  3. FIELDS: campos a serem retornados na consulta. É obrigatório especificar pelo menos um campo para iniciar a consulta.

Para determinar quais campos existem na tabela SAP, use a transação SE11 (). Exemplo para a tabela KNA1:

  1. Option Filters: parâmetro opcional que permite a especificação de dados adicionais para a consulta na tabela do SAP. O parâmetro geralmente é utilizado para definir o corte dos dados, o que significa reduzir a quantidade de informações e evitar a leitura de toda a tabela.

Veja alguns exemplos das opções de filtros:

MATNR IN (10000,1000001,1000002,100003,100004)
ERDAT = '19990101'
BUKRS EQ '{{ message.company_code_sap }}'

Para determinar o filtro sugerido para sua consulta, verifique os campos da Tabela SAP. A transação SE37 permite realizar testes de consulta via RFC (READ_TABLE) e definir os parâmetros adequados para a consulta.

Last updated