Conceito

A integração ocorre via XML ou JSON de outro sistema para o Protheus, por meio da identificação de Tags no envio. É possível utilizar o conceito de mensagem síncrona ou assíncrona.

O objetivo da rotina é que ao final da integração seja gerado um registro no Protheus á partir de outro sistema, com cada Tag da mensagem EAI alimentando seu respectivo campo nas tabelas.


De/Para nas integrações de origem RM

Quando alguma tag no XML à ser integrado conter o nome "Id", significa que ela exigiráa o De/Para pois seu valor será inserido em um campo no Protheus com validação de tabela (ALIAS). Esses campos que possuem tabela vínculada só podem ter valores que existam em sua própria tabela,  ao inserir dados no campo o Protheus automaticamente valida se aquele registro existe na tabela, não pertencendo gerará o HELP REGNOIS.

A - Tag <ItemCode> ao integrar pedido de vendas.

1 - O campo que receberá essa tag (C6_PRODUTO) é um campo que possui tabela vínculada, a tabela "SB1 - Produtos". Quaisquer valores colocados nesse campo, serão validados pelo sistema se lógicamente existem na tabela de produtos SB1.

2 - Por essa Tag de inserção de produto no pedido de vendas, não ter no nome "Id", significa que o dado contido na Tag será injetado diretamente no campo do Protheus, sem De/Para para transcrever o valor do RM em um código existente no Protheus.

3 - Por esse motivo, ao integrar com essa Tag é obrigatório que o Protheus tenha um produto com o mesmo valor da Tag para aceitar a inserção, caso contrário gerará o HELP REGNOIS.

Campo destino: C6_PRODUTO

Alias do campo: Tabela SB1 (Produtos [B1_COD])

Método: Sem De/Para (Pois não contém "Id" no nome como por exemplo, "ItemInternalId")



Passo 1:

É a Tag do XML da integração de um pedido de venda, na qual tem o valor "43". Como não é uma Tag interna com "Id", não possuirá De/Para, simbolizando que o Produto 43 no RM terá de encontrar no Protheus um produto com o mesmo código 43.


Passo 2:

A Tag <ItemCode> tem como destino o campo C6_PRODUTO no Protheus (Fonte MATI410), é como uma inserção manual na tela do pedido de vendas, ele colocará o valor informado na Tag, que no exemplo é 43 e "dará Enter", e ocorrerá a validação se o conteúdo colocado existe na própria tabela do campo, que é a tabela de produtos (SB1).


Passo 3:

Após isso o registro não será incluido com sucesso, pois de acordo com o print acima, na tabela SB1 do ambiente Protheus, não há o produto com o código ABC (B1_COD = ABC) que foi informado na Tag <ItemCode> do XML.




Campo destino: C6_PRODUTO

Alias do campo: Tabela SB1 (Produtos [B1_COD])

Método: Sem De/Para (Pois não contém "Id" no nome como por exemplo, "ItemInternalId")



Passo 1:

É a Tag do XML da integração de um pedido de venda, na qual tem o valor "43". Como não é uma Tag interna com "Id", não possuirá De/Para, simbolizando que o Produto 43 no RM terá de encontrar no Protheus um produto com o mesmo código 43.


Passo 2:

A Tag <ItemCode> tem como destino o campo C6_PRODUTO no Protheus (Fonte MATI410), é como uma inserção manual na tela do pedido de vendas, ele colocará o valor informado na Tag, que no exemplo é 43 e "dará Enter", e ocorrerá a validação se o conteúdo colocado existe na própria tabela do campo, que é a tabela de produtos (SB1).


Passo 3:

Após isso o registro será incluido com sucesso, pois de acordo com o print acima, na tabela SB1 do ambiente Protheus, há o produto com o código 43 (B1_COD = 43) que foi informado na Tag <ItemCode> do XML.





B - Tag <ItemInternalId> ao integrar pedido de vendas.

1 - O campo que receberá essa tag (C6_PRODUTO) é um campo que possui tabela vínculada, a tabela "SB1 - Produtos". Quaisquer valores colocados nesse campo, serão validados pelo sistema se lógicamente existem na tabela de produtos SB1.

2 - Por essa Tag de inserção de produto no pedido de vendas, conter no nome "Id", significa que o produto do RM contido na Tag será transcrito em um produto diferente no Protheus pelo De/Para de Mensagem Única (xxxxxxx) para transcrever o valor do RM em um código existente no Protheus, visto que o mesmo produto pode ter códigos diferentes nos sistemas.

3 - Por esse motivo, ao integrar com essa Tag é obrigatório que o Protheus tenha um De/Para para realizar a conversão com o mesmo valor da Tag para aceitar a inserção, caso contrário exigirá na integração.

4 - 


OBS: Caso o valor colocado no De/Para "XXF_INTVAL" também não exista no Protheus, a transcrição não será efetiva e apresentará o HELP REGNOIS





  • Caso não use o De/Para o registro na aplicação ORIGEM deve ser idêntico ao do Protheus.


Integrações das rotinas

Como integrar no faturamento as tabelas compatíveis RM x Protheus:


Fonte destino da integração: MATI030

Mensagem (XX4_MESSAGE): CUSTOMERVENDOR


Tabela: XX4

Rotina: (CFGA020 - Adapter E.A.I.)


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'CRMA980'/'MATA030'

XX4_MODEL = 'CUSTOMERVENDOR'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '2 - Não'

XX4_RECEIV = '1 - Sim'

XX4_METODO = '2 - Assíncrono'

XX4_TPOPER = '1 - Todas'

XX4_CHANEL = 3

XX4_SNDVER = ('2.005+') [Mais atualizada gatilhada automaticamente]

XX4_FORMAT = 'XML'

XX4_SAVLOG = '1 - Sim'

XX4_ROUTE: Definida preenchida ou não na implantação da integração


Restante dos campos da XX4: Vazios (não obrigatórios)






Tabela: XXD

Rotina: (APCFG050 - De/para Empresas Mensagem Unica)



XXD_REFER = Conteúdo da Tag do XML <ProductName> (RM)

XXD_COMPA = Conteúdo da Tag do XML <CompanyId>

XXD_BRANCH = Conteúdo da Tag do XML <BranchId> [Se estiver vazia no XML, o campo fica vazio.]

XXD_EMPPRO = Empresa do Protheus recebedora

XXD_FILPRO = Filial no Protheus recebedor [Dentro da empresa]