SAP (IDoc and RFC)
Saiba mais sobre o conector SAP e como usá-lo na Digibee Integration Platform.
O conector SAP permite a integração com sistemas SAP utilizando o protocolo RFC e o padrão IDoc para troca de dados.
Parâmetros
Dê uma olhada nos parâmetros de configuração do conector. Parâmetros suportados por expressões Double Braces estão marcados com (DB)
.
Aba Authorization
Use Dynamic Account
Quando ativado, o conector utilizará a conta de forma dinâmica. Caso contrário, usará a conta de forma estática. Saiba mais sobre Contas Dinâmicas.
False
Booleano
Scoped
Quando ativado, a conta armazenada é isolada de outros subprocessos. Nesse caso, os subprocessos visualizam sua própria versão dos dados da conta armazenada. Disponível apenas se o parâmetro Use Dynamic Account estiver habilitado.
False
Booleano
Account Name (DB)
Nome da conta dinâmica utilizada pelo conector. Essa conta deve ter sido previamente configurada em um conector Store Account no pipeline para que este processo tenha efeito. Disponível apenas se o parâmetro Use Dynamic Account estiver habilitado.
N/A
String
Account
Conta utilizada pelo conector. Tipo suportado: Basic (usuário e senha). Disponível apenas se o parâmetro Use Dynamic Account estiver desabilitado.
N/A
Conta
Host (DB)
Hostname do sistema SAP. Para suportar "IP" e "Port", é necessário conectividade via VPN (a VPN pode ser configurada pelo SAP GUI). Para resolver o hostname em um endereço IP, é preciso adicionar uma entrada de mapeamento no arquivo de hosts da máquina onde o agente está instalado.
N/A
String
Client ID (DB)
ID do cliente SAP, geralmente um número de 3 dígitos usado para conectar ao SAP.
400
String
System Number (DB)
Número do sistema SAP, geralmente com 2 dígitos. Essa informação pode ser encontrada no SAP GUI.
01
Integer
Language (DB)
Idioma utilizado na conexão com o sistema SAP (por exemplo, "EN" para inglês).
en
String
Aba General
Alias
Nome (alias) para a saída deste conector, permitindo referenciá-la posteriormente no fluxo utilizando expressões Double Braces. Saiba mais.
sap-1
String
SAP Operation
Tipo de conexão com o sistema SAP. Opções suportadas: RFC ou IDoc.
RFC
String
RFC (DB)
Nome da RFC utilizada para conectar ao sistema SAP. Esse valor é fornecido pelo cliente. Os parâmetros de import da função SAP devem ser mapeados.
YYPCL_RFC_ORDEM_FATURA
String
Search Template
Botão que preenche automaticamente o parâmetro Template (XML) com um template de RFC quando todos os detalhes de autorização e o nome da RFC são válidos.
N/A
Botão
Send as File
Quando ativado, um arquivo pode ser definido e enviado.
False
Booleano
File Name (DB)
Arquivo que contém o corpo a ser enviado ao servidor SAP. Utilize esta opção quando o payload for muito grande para o campo Template. Recomenda-se usar outros conectores como Template Transformer e File Writer para gerar o conteúdo do arquivo.
N/A
String
Template (XML) (DB)
Define o template Apache FreeMarker para a mensagem SOAP enviada na requisição. Para chamadas RFC, um template é gerado através do botão Search Template quando os detalhes de autorização e o nome da RFC são válidos.
N/A
String
Fail On Error
Se ativado, interrompe a execução do pipeline ao ocorrer um erro. Se desativado, a execução continua, mas a propriedade "success"
será definida como false
.
False
Booleano
Aba Documentation
Documentation
Campo opcional para descrever a configuração do conector e possíveis regras de negócio envolvidas.
N/A
Texto
Conector SAP – Guia de uso
Limites de tamanho de arquivo
Ao usar o conector SAP, observe o tamanho máximo de arquivo por tipo de implantação. Esses limites se aplicam quando o conector é usado isoladamente. Se outros conectores estiverem presentes no pipeline, os tamanhos podem variar:
Pequeno: 10 MB
Médio: 28 MB
Grande: 67 MB
Configuração de variáveis globais
Para simplificar a configuração dinâmica e promover a reutilização, recomenda-se definir variáveis globais no seu pipeline.
Variáveis globais obrigatórias
environment
Ambiente SAP
Variáveis globais opcionais para templates
[rfc]
Nome da função RFC
[table]
Tabela relacionada à chamada RFC
[columns]
Colunas da tabela usadas na requisição
Para mais detalhes, consulte o guia de conectividade SAP.
Integração RFC
Exemplo de entrada JSON
Para conexões RFC, inclua a cápsula "SAP JSON to RFC" antes do conector SAP. Isso garante que a entrada esteja formatada corretamente para o sistema SAP.
Exemplo de uma chamada RFC em um conector JSON Generator:
{
"sid": "{{sap-test-sid}}",
"rfc": "BAPI_BUPA_ADDRESS_GETDETAIL",
"importParameters": {
"attributes": {
"BUSINESSPARTNER": {{ message.BUSINESSPARTNER }},
"VALID_DATE": {{FORMATDATE(NOW(), "timestamp", "yyyy-MM-dd", null , "GMT-3") }}
}
}
}
Melhores práticas
Sempre especifique o
sid
(Nome do Ambiente/Sistema ou ID do Sistema).A função
rfc
pode ser definida no payload JSON ou diretamente no conector.Defina
importParameters
apenas com os campos necessários para a chamada da função.
Configuração do Template (XML)
O campo Template (XML) permite a geração automática para RFCs e também suporta customização manual tanto para estruturas RFC quanto IDoc.
Geração automática de template RFC
Quando uma função RFC é selecionada, o botão Search Template fica disponível. Se os detalhes de autorização estiverem corretos e o nome da RFC for válido, ao clicá-lo o campo Template (XML) é preenchido automaticamente com um template pronto para você apenas substituir os valores.
Exemplo de template gerado:
<BBP_RFC_READ_TABLE:Request xmlns:BBP_RFC_READ_TABLE="http://sap.fusesource.org/rfc/EC1/BBP_RFC_READ_TABLE">
<DELIMITER>${body.DELIMITER}</DELIMITER>
<NO_DATA>${body.NO_DATA}</NO_DATA>
<QUERY_TABLE>${body.QUERY_TABLE}</QUERY_TABLE>
<ROWCOUNT>${body.ROWCOUNT?c}</ROWCOUNT>
<ROWSKIPS>${body.ROWSKIPS?c}</ROWSKIPS>
<FIELDS>
<#if body.FIELDS??>
<#list body.FIELDS as item>
<row>
<FIELDNAME>${item.FIELDNAME}</FIELDNAME>
<OFFSET>${item.OFFSET}</OFFSET>
<LENGTH>${item.LENGTH}</LENGTH>
<TYPE>${item.TYPE}</TYPE>
<FIELDTEXT>${item.FIELDTEXT}</FIELDTEXT>
</row>
</#list>
</#if>
</FIELDS>
<OPTIONS>
<#if body.OPTIONS??>
<#list body.OPTIONS as item>
<row>
<TEXT>${item.TEXT}</TEXT>
</row>
</#list>
</#if>
</OPTIONS>
</BBP_RFC_READ_TABLE:Request>
Exemplos de templates manuais
Exemplo de template IDoc
<?xml version="1.0" encoding="ASCII"?>
<idoc:Document
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:FLCUSTOMER_CREATEFROMDATA01---="http://sap.fusesource.org/idoc/{_YOUR_ENVIRONMENT_}/FLCUSTOMER_CREATEFROMDATA01///"
xmlns:idoc="http://sap.fusesource.org/idoc"
creationDate="2015-01-28T12:39:13.980-0500"
creationTime="2015-01-28T12:39:13.980-0500"
iDocType="FLCUSTOMER_CREATEFROMDATA01"
iDocTypeExtension=""
messageType="FLCUSTOMER_CREATEFROMDATA"
recipientPartnerNumber="QUICKCLNT"
recipientPartnerType="LS"
senderPartnerNumber="QUICKSTART"
senderPartnerType="LS">
<rootSegment xsi:type="FLCUSTOMER_CREATEFROMDATA01---:ROOT" document="/">
<segmentChildren parent="//@rootSegment">
<E1SCU_CRE parent="//@rootSegment" document="/">
<segmentChildren parent="//@rootSegment/@segmentChildren/@E1SCU_CRE.0">
<E1BPSCUNEW parent="//@rootSegment/@segmentChildren/@E1SCU_CRE.0"
document="/"
CUSTNAME="Fred Flintstone" FORM="Mr."
STREET="123 Rubble Lane"
POSTCODE="01234"
CITY="Bedrock"
COUNTR="US"
PHONE="800-555-1212"
EMAIL="[email protected]"
CUSTTYPE="P"
DISCOUNT="005"
LANGU="E"/>
</segmentChildren>
</E1SCU_CRE>
</segmentChildren>
</rootSegment>
</idoc:Document>
Substitua {_YOUR_ENVIRONMENT_}
pelo seu SID SAP.
RFC – Consulta Simples
Campos elementares / Parâmetros de entrada:
<?xml version="1.0" encoding="ASCII"?>
<[rfc]:Request xmlns:[rfc]="http://sap.fusesource.org/rfc/{{global.environment}}/[rfc]"
[columns]="20180801"
[columns]="20180806"
[columns]="050" />
Exemplo:
<?xml version="1.0" encoding="ASCII"?>
<ABCD_RFC_ORDEM_FATURA:Request
xmlns:ABCD_RFC_ORDEM_FATURA="http://sap.fusesource.org/rfc/QAS/ABCD_RFC_ORDEM_FATURA"
P_ERDAT_INI="2018-07-01T00:00:00.000"
P_ERDAT_FIM="2018-08-01T00:00:00.000"
CLIENTE=""
VKORG="0010"
AUART="" />
RFC – Consulta em Tabela
Campos da tabela:
<?xml version="1.0" encoding="ASCII"?>
<[rfc]:Request ">xmlns:[rfc]="http://sap.fusesource.org/rfc/{{global.environment}}/[rfc]">
<[table]>
<row>
<[columns]>${VBELN}</[columns]>
<[columns]>${ABDC}</[columns]>
</row>
</[table]>
</[rfc]:Request>
Exemplo:
<?xml version="1.0" encoding="ASCII"?>
<ABCD_RFC_MATERIAIS:Request ">xmlns:ABCD_RFC_MATERIAIS:Request="http://sap.fusesource.org/rfc/{{global.environment}}/ABCD_RFC_MATERIAIS:Request">
<T_TIPO>
<row>
<MTART>${type}</MTART>
</row>
</T_TIPO>
</ABCD_RFC_MATERIAIS:Request>
Entrada
{
"body":{
"type": "S"
}
}
${type}
: Variável que deve ser fornecida dentro da tagbody
.
Variáveis no template e escape
Ao usar variáveis como sapRequestTemplate
, lembre-se:
Caracteres especiais (como
-
,.
,:
) em nomes de variáveis devem ser escapados com barra invertida (\
).Use funções Apache FreeMarker para formatação e conversão:
<#assign x=42>
${x}
${x?string} <#-- o mesmo que ${x} -->
${x?string.number}
${x?string.currency}
${x?string.percent}
${x?string.computer}
Saídas:
42
42
42
$42.00
4,200%
42
Fluxo de mensagens
Entrada
O conector aceita entrada em qualquer formato, mas procura por um caminho específico baseado na configuração modelPath
.
Saída
A saída reflete a entrada, porém substitui a propriedade do modelo definida pela string XML gerada (a partir do Template).
Em caso de erro, a propriedade
property_error
é adicionada no mesmo nível do modelo original.
Atualizado
Isto foi útil?