Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

Produto:

Protheus

Versões:

A partir da 12.1.33

Ocorrência:

Explicativo sobre todo o processo de integrações XML EAI x Protheus

Ambiente:

Faturamento (SIGAFAT)

Índice

Índice
exclude.*ndice



1. 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 (XX4_METODO).

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 e campos de destino no Protheus.



2. Considerações


2.1 Chave principal e chave secundária (Tags "InternalId" de campos que não precisam de De/Para de Mensagem Unica)

Os campos identificadores (ID) da rotina a ser integrada não necessitam de De/Para de seu "InternalId" geral pois a integração é justamente a criação destes.

  • Todos os outros campos e Tags são considerados chaves secundárias, necessitam de De/Para.

Expandir
titleExemplos

Exemplo no CUSTOMERVENDOR:

Na integração de clientes (Tabela SA1), o código chave principal identificador é o A1_COD.

  • A integração do cliente é justamente a criação de um registro a partir do A1_COD, a Tag geral do XML <InternalId> não precisa ser configurada o De/Para, a integração é justamente sua criação, outros campos secundários como por exemplo o campo (A1_TABELA) necessitam obrigatoriamente.



Exemplo no ORDER:

Na integração de pedidos de venda (Tabela SC5/SC6), o código chave principal identificador é o C5_NUM e o C6_ITEM.

  • A integração do pedido de venda é justamente a criação de um registro a partir do C5_NUM e C6_ITEM, a Tag geral do XML <InternalId> não precisa ser configurada seu De/Para, a integração é justamente sua criação, outros campos secundários como por exemplo o campo (C6_PRUDUTO e C5_CONDPAG) necessitam obrigatoriamente.


Dica
titleOBSERVAÇÃO

É possível realizar o De/Para dessas Tags "Internas", mas os campos chave são os únicos em que isso não é obrigatório.


2.2 Obrigatoriedade de campos

Aviso
titleExemplo:

Um campo ser obrigatório na tabela do Protheus significa que a Tag contendo o valor pra esse campo na integração também é obrigatório.

Expandir
titleExemplos
Expandir
titleIntegrando uma Tag válida preenchida para um respectivo campo marcado para obrigatório

Explicação: Sucesso na integração pois o campo regrado reconheceu algum valor e o campo é obrigatório na tabela, ou seja, tem de ser colocado algum valor válido.




Expandir
titleIntegrando uma Tag válida não preenchida para um respectivo campo marcado para obrigatório

Explicação: Falha na integração pois o campo regrado não reconheceu algum valor (em branco/vazio) e o campo é obrigatório na tabela, ou seja, tem de ser colocado algum valor válido.




Expandir
titleIntegrando uma Tag válida preenchida para um respectivo campo marcado para não obrigatório

Explicação: Sucesso na integração pois o campo reconheceu algum valor válido,  o campo é obrigatório na tabela, ou seja, teve de ser colocado algum valor válido.




Expandir
titleIntegrando uma Tag válida não preenchida para um respectivo campo marcado para não obrigatório

Explicação: Sucesso na integração pois o campo regrado reconheceu algum valor (em branco/vazio) e o campo não é obrigatório na tabela, ou seja, tanto faz o valor na Tag do XML.





2.3 Tipos de campos nas rotinas que recebem dados das Tags

Em uma integração, há 4 tipos de campos:

(1) [LIVRE] - O campo que é totalmente livre

Expandir
titleExemplo de um campo [LIVRE]

Campo A1_NOME (Campo FreeValue)


É um campo que não possui tabela vinculada, então aceita qualquer valor.




Expandir
titleExemplos de integração com campos [LIVRE]

1 - Inserindo Tag contendo carácteres especiais:

Explicação do Resultado: Inserido com sucesso, pois no campo não há validação de exclusividade para valores com carácteres especiais.


2 - Inserindo Tag contendo carácteres alfanuméricos:

Explicação do Resultado: Inserido com sucesso, pois no campo não há validação de exclusividade para valor alfanumérico.


3 - Inserindo Tag contendo carácteres numéricos:

Explicação do Resultado: Inserido com sucesso, pois no campo não há validação de exclusividade para valor numérico.


4 - Inserindo Tag não contendo nexo com validação:

Explicação do Resultado: Inserido com sucesso, pois no campo não há alguma validação.







(2) [DEPENDENTE] - O campo que depende de algumas validações internas ou outros campos
Expandir
titleExemplo de um campo [DEPENDENTE]

Campo A1_CGC (Campo Dependente)


É um campo que não possui tabela vinculada, então aceita qualquer valor, desde que:

  • Seja um CPF real de acordo com a validação do campo
  • Respeite o tipo do campo, não tendo letras pois este campo é numérico e ao inserir letras o sistema gerará erro.




Expandir
titleExemplos de integração com campos [DEPENDENTE]

1 - Inserindo Tag contendo carácteres especiais:

Explicação do Resultado: Não inserido pois no campo há validação de exclusividade para valores numéricos somente.


2 - Inserindo Tag contendo carácteres alfanuméricos:

Explicação do Resultado: Não inserido pois no campo há validação de exclusividade para valores numéricos somente.


3 - Inserindo Tag contendo carácteres numéricos:

Explicação do Resultado: Não inserido, pois apesar de o campo receber pela Tag o tipo de valor correto (numérico), não foi validado por não ter uma síntaxe de CNPJ/CPF correta.


4 - Inserindo Tag não contendo nexo com validação:

Explicação do Resultado: Não inserido, pois apesar de o campo receber pela Tag o tipo de valor correto (numérico), não foi validado por não ter uma síntaxe de CNPJ/CPF correta.


5 - Inserindo Tag contendo nexo com validação:

Explicação do Resultado: Inserido com sucesso, pois no campo foi incluído o tipo numérico (Esperado) e ainda é válido o dado colocado (Existe/síntaxe correta).


6 - Inserindo Tag respeitando a validação da obrigatoriedade:

Explicação do Resultado: Inserido com sucesso, pois no campo não há obrigatoriedade de informação de valor.






(3) [REGRADO SIMPLES] - O campo que recebe obrigatoriamente uma informação fixa sem De/Para 

Expandir
titleExemplo de um campo [REGRADO SIMPLES]

Campo A1_PESSOA (Campo ListBox)



É um campo que não possui tabela vinculada, mas possui opções de escolhas fixa, então aceita valores desde que alguma condição abaixo seja atendida:

  • Não tenha a Tag desse campo no XML
  • A Tag venha em branco no XML
  • Caso possua a Tag preenchida, que o valor da Tag no XML tenha no fonte um valor que o sistema entenda que é respectivo de alguma opção da lista existente dentre as opções do campo (F / J)
  • Respeite o tipo do campo, sendo uma opção pronta, ao existir números ou letras na Tag que levará informação ao campo não existentes ocasionará erros.


Expandir
titleExemplos de integração com campos [REGRADO SIMPLES]

1 - Inserindo Tag contendo carácteres especiais:

Explicação do Resultado: Não inserido, pois no campo há validação para não receber números ou caractéres especiais.


2 - Inserindo Tag contendo carácteres alfanuméricos:

Explicação do Resultado: Não inserido, pois apesar de o conteúdo da Tag ser o tipo esperado (alfanumérico) no campo há validação para receber apenas valores alfanuméricos específicos, para que o sistema entenda que significa uma opção dentre as listas do campo (F - Física  |  J - Jurídica)


3 - Inserindo Tag contendo carácteres numéricos:

Explicação do Resultado: Não inserido, pois no campo há validação para não receber números.


4 - Inserindo Tag não contendo nexo com validação:

Explicação do Resultado: Não inserido, no campo há validação para receber apenas valores alfanuméricos específicos, para que o sistema entenda que significa uma opção dentre as listas do campo (F - Física  |  J - Jurídica).


5 - Inserindo Tag contendo nexo com validação:

Explicação do Resultado: Inserido com sucesso, pois o campo recebeu um valor dentro da Tag que significa alguma opção existente dentro do campo-lista:

  • <EntityType>Company</EntityType>  =  'J - Jurídica' (O fonte entende que o conjunto de valor 'Company' significa a opção "J - Jurídica" no campo A1_PESSOA)
  • <EntityType>Person</EntityType>  =  'F - Física' (O fonte entende que o conjunto de valor exato 'Person' significa a opção "F - Física" no campo A1_PESSOA)








(4) [REGRADO] - O campo que tem uma tabela vinculada (ALIAS), que pode ter seu De/Para cadastrado ou não, mas toda informação colocada será validada se existe ou não seu registro.

Expandir
titleExemplo de um campo [REGRADO]

Campo A1_TABELA e Campo A1_CONDPAG (Campo ALIAS [X3_F3 preenchido])


             

São campos que possuem tabela vinculada, então qualquer valor colocado será validado no sistema se existe esse registro na tabela (ALIAS) desses campos, só aceitam o valor colocado se:

    • Existir a informação colocada registrada na tabela validadora do campo. (X3_F3)


Expandir
titleExemplos de integração com campos [REGRADO]

1 - Inserindo Tag contendo carácteres especiais:

Explicação do Resultado: Não inserido, pois não há na tabela validadora vínculada ao campo (X3_F3) esse registro/conteúdo no índex do Alias (campo de ID Código da tabela vínculada)


2 - Inserindo Tag contendo carácteres alfanuméricos:

Explicação do Resultado: Não inserido, pois não há na tabela validadora vínculada ao campo (X3_F3) esse registro/conteúdo no índex do Alias (campo de ID Código da tabela vínculada)


3 - Inserindo Tag contendo carácteres numéricos:

Explicação do Resultado: Inserido, pois há na tabela validadora vínculada ao campo (X3_F3) esse registro/conteúdo no índex do Alias (campo de ID Código da tabela vínculada)


4 - Inserindo Tag não contendo nexo com validação:

Explicação do Resultado: Não inserido, pois não há na tabela validadora vínculada ao campo (X3_F3) esse registro/conteúdo no índex do Alias (campo de ID Código da tabela vínculada)


5 - Inserindo Tag contendo nexo com validação:


Explicação do Resultado: Inserido, pois há na tabela validadora vínculada ao campo (X3_F3) esse registro/conteúdo no índex do Alias (campo de ID Código da tabela vínculada)


5 - Inserindo Tag contendo valor que está inativo na tabela atrelado ao campo:

Explicação do Resultado: Não inserido, pois na tabela validadora vínculada ao campo (X3_F3) esse registro/conteúdo no índex do Alias (campo de ID Código da tabela vínculada) está desativado/inativo.








2.4 De/Para nas integrações de origem RM

Quando alguma tag no XML à ser integrado conter o nome "Id", significa que é um campo interno e que exigirá 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.

Expandir
titleExemplo

I. 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.



Expandir
titleExemplo ERRADO de Integração com a Tag do XML <ItemCode>

Tag origem : <ItemCode>

Valor inserido na Tag: ABC

Campo destino: C6_PRODUTO

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

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




Explicação 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.


Explicação 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).


Explicação 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.




Expandir
titleExemplo CORRETO de Integração com a Tag do XML <ItemCode>

Tag origem: <ItemCode>

Valor inserido na Tag: 43

Campo destino: C6_PRODUTO

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

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



Explicação 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.


Explicação 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).


Explicação 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.






II. 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



Ao cadastrar um De/Para para determinada tabela, é obrigatório cadastrar seu Adapter relativo.

  • Exemplo: Ao incluir um De/Para transcrever uma condição de pagamento do RM, é necessário cadastrar um ADAPTER da rotina de condição de pagamento.


Aviso
titleObservação:
  • Caso não use o De/Para e o campo de destino desta Tag seja um campo com tabela vínculada, o conteúdo da Tag do XML de ORIGEM deve ser idêntico ao registro à ser inserido no Protheus, para que no Protheus tenha o mesmo código do conteúdo do XML de origem e receba o registro.





3. Integrações das rotinas

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

Expandir
titleIntegração de Clientes (CUSTOMERVENDOR)
Deck of Cards
startHiddenfalse
effectDuration0.5
idIntegrar Cliente
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idFontes, Considerações e Premissas
labelFontes, Considerações e Premissas

1 - A integração de clientes não movimenta a tabela AI0 - Complemento de Clientes.

Expandir
title2 - Os campos obrigatórios na tabela de clientes (SA1) serão exigidos também na integração. 

Por padrão os campos obrigatórios (Que por esse motivo devem ter suas tags no XML e que usaremos como base para exemplo):

[CAMPO LIVRE] - A1_COD (Campo mestre da integração)

  • <InternalId></InternalId><Code></Code>



[CAMPO LIVRE] - A1_LOJA

  • <InternalId></InternalId>  e  <Store></Store>

[CAMPO LIVRE] - A1_NOME 

  • <Name></Name>


[CAMPO LIVRE]
- A1_END 

  • <Address></Address> e <Number></Number>

[CAMPO LIVRE] - A1_NREDUZ 

  • <ShortName></ShortName>


[CAMPO LIVRE] - A1_MUN

  • <CityDescription></CityDescription>


[CAMPO REGRADO SIMPLES] - A1_TIPO

  • <EntityType></EntityType>


[CAMPO REGRADO] - A1_EST

  • <State>
                  <StateCode></StateCode>
                  <StateDescription></StateDescription>
    </State>


OBS 1: Se for colocado o "Cd. Município (A1_COD_MUN)" de Tag "<CityCode></CityCode>", automaticamente gatilhará o campo "Município* (A1_MUN)" com o nome do município correspondente.

OBS 2: Não é obrigatório a colocação da "Natureza (A1_NATUREZ)" mas é recomendado dependendo da parametrização do MV_1DUPNAT.

Expandir
title3 - Fontes usados
  • MATA030 ou CRMA980: Fontes destino
  • MATI030: Fonte integrador

4 - Tanto a rotina MATA030 quanto a CRMA980 utilizam-se do mesmo fonte de integração, o MATI030, isso faz com que possa-se usar no Adapter a Rotina CRMA980 ou MATA030 independente do parâmetro MV_MVCSA1.


Card
defaulttrue
idXMLs Exemplo
labelXML de Exemplo

<TOTVSMessage>
     <MessageInformation version="2.002">
     <UUID>V1n1c105-2003-1234-5678-90abcdefghij</UUID>
     <Type>BusinessMessage</Type>
     <Transaction>CUSTOMERVENDOR</Transaction>
     <StandardVersion>1.000</StandardVersion>
     <SourceApplication>RM</SourceApplication>
     <CompanyId>2</CompanyId>
     <BranchId>1</BranchId>
     <Product name="RM" version="12.1.29.0" />
     <GeneratedOn>2022-11-19T12:34:56</GeneratedOn>
     <DeliveryType>Sync</DeliveryType>
</MessageInformation>
<BusinessMessage>
     <BusinessEvent>
          <Entity>CUSTOMERVENDOR</Entity>
          <Event>Upsert</Event>
     </BusinessEvent>
     <BusinessContent>
               <RMENTITYNAME>FCFO</RMENTITYNAME>
               <CompanyId>2</CompanyId>
               <Code>000001</Code>
               <StoreId>09</StoreId>
               <InternalId>2|09;C000001</InternalId>
               <ShortName>CLITESTE</ShortName>
               <Name>CLIENTE TESTE</Name>
               <Type>Customer</Type>
               <EntityType>Person</EntityType>
               <RegisterDate>2022-11-19</RegisterDate>
               <RegisterSituation>Active</RegisterSituation>
              <Address>
                  <Address>RUA TESTE</Address>
                  <Number>544</Number>
                  <Complement></Complement>
                  <District>CENTRO</District>
                   <City>
                         <CityDescription>Belo Horizonte MUN</CityDescription>
                    </City>
                   <State>
                         <StateCode>MG</StateCode>
                         <StateDescription>Minas Gerais</StateDescription>
                    </State>
               </Address>
          </BusinessContent>
     </BusinessMessage>
</TOTVSMessage>


Card
defaulttrue
idAdapter
labelI. ADAPTER

Tabela: XX4

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

Expandir
titleDefinição por escrito


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'CRMA980'/'MATA030'

XX4_MODEL = 'CUSTOMERVENDOR'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '1 - Sim'/'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)






Card
defaulttrue
idDePreEmpreFili
labelII. De/Para de Empresa/Filial

Tabela: XXD

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


Expandir
titleDefinição por escrito


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]


No exemplo:

XXD_REFER = RM

XXD_COMPA = 2

XXD_BRANCH = 1

XXD_EMPPRO = 99

XXD_FILPRO = 01







Card
defaulttrue
idIII. Campos "De/Para de Empresa/Filial"
labelIII. Campos "De/Para de Mensagem Unica!

Os campos obrigatórios nativos do cadastro de clientes no Protheus não possuem campos regrados que possuem "InternalId", então no XML de exemplo não é necessário cadastrar nenhum De/Para de Mensagem Unica.

  • OBS: O Campo <InternalId> geral da integração irá gerar o próprio cliente (A1_COD), é o campo com chave principal, não necessitando De/Para de Mensagem Unica pois a integração em si é sua criação.


Card
defaulttrue
idTags
labelIV. Retorno da integração (XX3)

Retorno da integração com o XML de Exemplo:


XX3_FILIAL = 01

XX3_CODIGO = 0000000000000000000000140

XX3_UUID = V1n1c105-2003-1234-5678-90abcdefghij

XX3_FUNCOD = CUSTOMERVENDOR

XX3_FUNDES = TOTVSMessage CUSTOMERVENDOR Business Message         

XX3_TRDATA = 19/11/2022      

XX3_TRHORA = 09:34:56

XX3_PRDATA = 02:59:03

XX3_TENTAT = 1

XX3_TRANS (Memo) =

XX3_TPDOC = 1

XX3_TPTRAN = 0

XX3_STATUS = 2

XX3_TMDATA = 19/11/2022

XX3_TMHORA = 02:59:01

XX3_MSGTYP = 20

XX3_CHANEL = 1

XX3_RETURN (Memo) =

XX3_PRODUCT = RM

XX3_SOURCE = RM

XX3_VERSAO = 2.002

XX3_EVENT = upsert


Restante dos campos da XX3: Vazios.


Card
defaulttrue
idCampos integrados com o exemplo (Resultado da integração)
labelV. Campos integrados (registro do cliente)
Campo(s) destinoValor atribuído pós integração do XML de exemploTag(s) no XML que atribuiu(ram) a informação
A1_FILIAL01<BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido)
A1_COD000001<Code>000001</Code> e <InternalId>2|09;C000001</InternalId>
A1_LOJA09<StoreId>09</StoreId> e <InternalId>2|09;C000001</InternalId>
A1_NOME'CLIENTE TESTE'<Name>CLIENTE TESTE</Name>
A1_PESSOA'F - Fisica'<EntityType>Person</EntityType>
A1_END'RUA TESTE, 544'<Address>RUA TESTE</Address> e <Number>544</Number>
A1_NREDUZ'CLITESTE'<ShortName>CLITESTE</ShortName>
A1_TIPO'F - Cons.Final'<EntityType>Person</EntityType> (por padrão a integração demarca com o tipo 'F - Cons.Final')
A1_ESTMG<StateCode>MG</StateCode>
A1_MUN'BELO HORIZONTE MUN'CityDescription>Belo Horizonte MUN</CityDescription>
A1_MSBLQL'2 - Ativo'<RegisterSituation>Active</RegisterSituation>
A1_MOEDALC/A1_USADDA/A1_REGESIM/A1_TPDP

Esses campos são preenchidos em uma integração porém não tem relação com a mesma.

É padrão do Protheus ao incluir qualquer cliente [Iniciador padrão do campo])

-
Card
defaulttrue
idTags
labelTags possíveis

   

Campo Tag que levá seu valor/conteúdo ao respectivo campoValores possíveisOnde geralmente está localizada no XMLNecessita de De/Para de Mensagem Única?
A1_COD<Code></Code> e <InternalId></InternalId>

Conteúdo alfanumérico

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É a chave principal da integração

A1_LOJA<Store></Store> e <InternalId></InternalId>

Conteúdo alfanumérico


<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Contém em sua composição a chave principal da integração

A1_NOME<Name></Name>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_PESSOA<EntityType>Person</EntityType> ou <EntityType>Company</EntityType>

'F - Fisica' (<EntityType>Person</EntityType>)

'J - Jurídica' (<EntityType>Company</EntityType>)

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

A1_END<Address></Address> e <Number></Number>Conteúdo alfanumérico

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>   
                <Address>   

Não

É um campo livre (Não contém "InternalId" no nome)

A1_NREDUZ<ShortName></ShortName>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_TIPO

<EntityType></EntityType>

'F - Cons.Final' (<EntityType>Person</EntityType>)

'R - Revendedor' (<EntityType>Company</EntityType>)

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

A1_EST<StateCode></StateCode>Registro válido na tabela do campo A1_EST (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Address>
                     <State>
                        

Não

Campo regrado porém essa Tag está passandoo valor direto,

sem necessidade de De/Para.

A1_MUN<CityDescription></CityDescription>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Address>
                     <City>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_MSBLQL<RegisterSituation></RegisterSituation>

'1 - Inativo' (<RegisterSituation>Inactive</RegisterSituation>)

'2 - Ativo' (<RegisterSituation>Active</RegisterSituation>)

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

A1_DTNASC<RegisterDate></RegisterDate>Conteúdo data<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

A1_COMPLEM<Complement></Complement>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Address>
                     

Não

É um campo livre (Não contém "InternalId" no nome)

A1_BAIRRO<District></District>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Address>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_PAIS

<Code></Code>


Registro válido na tabela do campo A1_PAIS (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Country>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

A1_PAIS<CountryInternalId></CountryInternalId>Registro válido na tabela do campo A1_PAIS (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
        

Sim

Campo regrado (Contém "InternalId" no nome)

Há a necessidade de De/Para.

A1_COD_MUN<CityCode></CityCode>Registro válido na tabela do campo A1_COD_MUN (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Address>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

A1_REGIAO<RegionCode></RegionCode>Registro válido na tabela do campo A1_REGIAO (ALIAS).

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Address>
                    <Region>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

A1_CEP<ZIPCode></ZIPCode>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Address>

Não

Campo dependente, sem necessidade de De/Para.

A1_SATIV1

(...) Até (...)

A1_SATIV8

<InternalId Name="Segment1" CodeErp="" Description=""></InternalId>)

(...) Até (...)

<InternalId Name="Segment8" CodeErp="" Description=""></InternalId>)

Registro válido na tabela dos campos A1_SATIV1 até A1_SATIV8 (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Segment>

Sim

Campo regrado (Contém "InternalId" no nome)

Há a necessidade de De/Para.

A1_TPFRET<FreightTypeCode></FreightTypeCode>

'C=CIF' (<FreightTypeCode>C</FreightTypeCode>)


'F=FOB' (<FreightTypeCode>F</FreightTypeCode>)


'T=Por conta terceiros' (<FreightTypeCode>T</FreightTypeCode>)


'R=Por conta remetente' (<FreightTypeCode>R</FreightTypeCode>)


'D=Por conta destinatário' (<FreightTypeCode>D</FreightTypeCode>)


'S=Sem frete' (<FreightTypeCode>S</FreightTypeCode>)

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Address>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

A1_TRANSP<CarrierInternalId></CarrierInternalId> ou <CodeERP></CodeERP>Registro válido na tabela do campo A1_TRANSP (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Sim

Campo regrado (Contém "InternalId" no nome)

Há a necessidade de De/Para.

A1_VENCLC<MaturityCreditLimit></MaturityCreditLimit>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <CreditInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_INSCR<Id scope="State" name="INSCRICAO ESTADUAL" issueOn="" expiresOn=""></Id>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <GovernmentalInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_INSCRM<Id scope="Municipal" name="INSCRICAO MUNICIPAL" issueOn="" expiresOn=""></Id>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <GovernmentalInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_SUFRAMA<Id scope="Federal" name="SUFRAMA" issueOn="" expiresOn=""></Id>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <GovernmentalInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_CGC

<Id scope="Federal" name="CPF" issueOn="" expiresOn=""></Id>

<Id scope="Federal" name="CNPJ" issueOn="" expiresOn=""></Id>

Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <GovernmentalInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_INSCRUR<Id scope="State" name="INSCRICAO RURAL" issueOn="" expiresOn=""></Id>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <GovernmentalInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_PFISICA<Id scope="Federal" name="RG" issueOn="" expiresOn=""></Id>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <GovernmentalInformation>

Não

Campo dependente, sem necessidade de De/Para.

OBS: Só grava se (A1_PFISICA estiver vazio) e (A1_PESSOA = F) ou (A1_EST = EX).

A1_CXPOSTA<POBox></POBox>Conteúdo alfanumérico

<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ListOfCommunicationInformation
           <CommunicationInformation>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_EMAIL<Email></Email>Conteúdo alfanumérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ListOfCommunicationInformation
           <CommunicationInformation>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_TEL<PhoneNumber></PhoneNumber>Conteúdo numérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ListOfCommunicationInformation
           <CommunicationInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_DDD<DiallingCode></DiallingCode>Conteúdo numérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ListOfCommunicationInformation
           <CommunicationInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_DDI<InternationalDiallingCode></InternationalDiallingCode>Registro válido na tabela do campo A1_DDI (ALIAS).<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ListOfCommunicationInformation
           <CommunicationInformation>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

A1_FAX<FaxNumber></FaxNumber>Conteúdo numérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ListOfCommunicationInformation
           <CommunicationInformation>

Não

Campo dependente, sem necessidade de De/Para.

A1_ENDCOB<Address></Address>Conteúdo alfanumérico

<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <BillingInformation>
           <Address>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_HPAGE<HomePage></HomePage>Conteúdo alfanumérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ListOfCommunicationInformation
           <CommunicationInformation>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_ENDENT<Address>, <Number> e <Complement>Conteúdo alfanumérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ShippingAddress>

Não

São campos livres (Não contém "InternalId" no nome)

A1_CONTATO

<Name></Name>

ou

<ContactInformationName></ContactInformationName>

Conteúdo alfanumérico

<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ListOfContacts>
          <Contact>

Não

São campos livres (Não contém "InternalId" no nome)

A1_BAIRROC<District></District>Conteúdo alfanumérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <BillingInformation>
           <Address>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_CEPC<ZIPCode></ZIPCode>Conteúdo numérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <BillingInformation>
           <Address>

Não

Campo dependente, sem necessidade de De/Para.

A1_MUNC<CityDescription></CityDescription>Conteúdo alfanumérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <BillingInformation>
           <Address>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_ESTC<StateCode></StateCode>Registro válido na tabela do campo A1_ESTC (ALIAS).<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <BillingInformation>
           <Address>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

A1_CEPE<ZIPCode></ZIPCode>Conteúdo numérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ShippingAddress>
           <Address>

Não

Campo dependente, sem necessidade de De/Para.

A1_BAIRROE<District></District>Conteúdo alfanumérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ShippingAddress>
           <Address>

Não

É um campo livre (Não contém "InternalId" no nome)

A1_ESTE<StateCode></StateCode>Registro válido na tabela do campo A1_ESTE (ALIAS).<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ShippingAddress>
           <Address>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

A1_COMPENT<Complement></Complement>Conteúdo alfanumérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <ShippingAddress>
         

Não

É um campo livre (Não contém "InternalId" no nome)

A1_VEND<Code></Code>Registro válido na tabela do campo A1_VEND (ALIAS).<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <VendorInformation>
          <VendorType>
         

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

A1_LC<CreditLimit></CreditLimit>Conteúdo numérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>
        <CreditInformation>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

A1_CONTRIB<Taxpayer></Taxpayer>

'1 - Não'

'2 - Não'

<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

A1_SALPED<BalanceOfCredit></BalanceOfCredit>Conteúdo numérico<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

A1_CONDPAG<PaymentConditionCode></PaymentConditionCode>Registro válido na tabela do campo A1_CONDPAG (ALIAS).<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

A1_TABELA<PriceListHeaderItemCode></PriceListHeaderItemCode>Registro válido na tabela do campo A1_TABELA (ALIAS).<TOTVSMessage>
   <BusinessMessage>
     <BusinessContent>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.




Expandir
titleIntegração de Pedidos de Venda (ORDER)
Deck of Cards
startHiddenfalse
effectDuration0.5
idIntegrar Cliente
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idConsiderações
labelFontes, Considerações e Premissas

1 - Integração XML: ORDER (Pedidos de Venda) em construção.

Expandir
title2 - Os campos obrigatórios na tabela de condições de pagamento (SC5 e SC6) serão exigidos também na integração. 

Por padrão os campos obrigatórios (Que por esse motivo devem ter suas tags no XML e que usaremos como base para exemplo):

[CAMPO LIVRE] - C5_NUM (Campo mestre da integração)

  • <InternalId></InternalId> e <OrderId></OrderId>

[CAMPO DEPENDENTE] - C6_ITEM (Campo mestre da integração)

  • <InternalId></InternalId> e <OrderItem></OrderItem>


[CAMPO DEPENDENTE] - C5_TIPO


[CAMPO REGRADO] - C5_CLIENTE


[CAMPO LIVRE] - C5_LOJACLI


[CAMPO REGRADO] - C5_CONDPAG


[CAMPO REGRADO] - C6_PRODUTO


[CAMPO DEPENDENTE] - C6_QTDVEN (Exceto configuração da TES)


[CAMPO DEPENDENTE] - C6_PRCVEN (Exceto configuração da TES


[CAMPO DEPENDENTE] - C6_VALOR


[CAMPO REGRADO] - C6_TES (Pode ser pego do Produto)


[CAMPO REGRADO] - C6_LOCAL (Pode ser pego do Produto


[CAMPO DEPENDENTE] - C6_ENTREG (Pego da DDATABASE)


[CAMPO LIVRE] - C6_DESCRI

Expandir
title3 - Fontes usados
  • MATA410: Fonte destino
  • MATI410: Fonte integrador
Card
defaulttrue
idAdapter
labelI. ADAPTER

Tabela: XX4

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

Expandir
titleDefinição por escrito


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'MATA410'

XX4_MODEL = 'ORDER'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '1 - Sim'/'2 - Não'

XX4_RECEIV = '1 - Sim'

XX4_METODO = '2 - Assíncrono'

XX4_TPOPER = '1 - Todas'

XX4_CHANEL = 3

XX4_SNDVER = ('4.003+') [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)


Card
defaulttrue
idDePreEmpreFili
labelII. De/Para de Empresa/Filial

Tabela: XXD

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


Expandir
titleDefinição por escrito


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]



XXD_REFER = RM

XXD_COMPA = 77

XXD_BRANCH = 77

XXD_EMPPRO = 99

XXD_FILPRO = 01


Card
defaulttrue
idIII. Campos "De/Para de Empresa/Filial"
labelIII. Campos "De/Para de Mensagem Unica!

Os campos obrigatórios nativos do cadastro de pedidos de venda no Protheus não possuem campos regrados que possuem "InternalId", então no XML de exemplo não é necessário cadastrar nenhum De/Para de Mensagem Unica.

  • OBS: O Campo <InternalId> geral da integração irá gerar a própria condição de pagamento (C5_NUM), é o campo com chave principal, não necessitando De/Para de Mensagem Unica pois a integração em si é sua criação.


Card
defaulttrue
idTags
labelIV. Retorno da integração (XX3)

Retorno da integração com o XML de Exemplo:


XX3_FILIAL = 01

XX3_CODIGO = 0000000000000000000000149XX

XX3_UUID = V1n1c105-0005-1234-5678-90abcdefghij

XX3_FUNCOD = ORDER

XX3_FUNDES = TOTVSMessage ORDER Business Message         

XX3_TRDATA = 28/01/2019   XX

XX3_TRHORA = 11:01:50XX

XX3_PRDATA = 19/11/2022XX

XX3_PRHORA = 20:14:18XX

XX3_TENTAT = 1

XX3_TRANS (Memo) =

XX3_TPDOC = 1

XX3_STATUS = 2

XX3_TMDATA = 19/11/2022XX

XX3_TMHORA = 20:14:18XX

XX3_MSGTYP = 20

XX3_CHANEL = 1

XX3_RETURN (Memo) =

XX3_PRODUC = RM

XX3_SOURCE = RM

XX3_VERSAO = 4.003

XX3_EVENT = upsert


Restante dos campos da XX3: Vazios.


Card
defaulttrue
idDe/Para de Mensagem Unica criado com a integração
labelDe/Para de Mensagem Unica criado com a integração

XXF_REFER

(Referência*)

XXF_TABLE

(Tabela*)

XXF_ALIAS

(Alias*)

XXF_FIELD

(Campo*)

XXF_UNMESS

(Mensagem Única)

XXF_EXTVAL

(Valor Externo*)

XXF_INTVAL

(Valor Interno*)

RMSC5990SC5C5_NUM-XXXX
RMSC6990SC6C6_ITEM-XXXX
Card
defaulttrue
idCampos integrados com o exemplo (Resultado da integração)
labelCampos integrados com o exemplo (Resultado da integração)
Campo(s) destinoValor atribuído pós integração do XML de exemploTag(s) no XML que atribuiu(ram) a informação
C5_FILIAL01<BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido)
C5_XX

Esses campos são preenchidos em uma integração porém podem não ter relação com a mesma.

É padrão do Protheus ao incluir qualquer cliente [Iniciador padrão do campo]).

(No XML exemplo não foram inseridos Tags para tratamento desses campos)

-
Card
defaulttrue
idTags
labelTags possíveis

   

Campo Tag que levá seu valor/conteúdo ao respectivo campoValores possíveisOnde geralmente está localizada no XMLNecessita de De/Para de Mensagem Única?
C5_FILIAL<Code></Code> e <InternalId></InternalId>

Conteúdo alfanumérico

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É a chave principal da integração

C5_NUM<OrderId></OrderId> e <InternalId></InternalId>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Primeira Tag (Não contém "InternalId" no nome)

Segunda Tag é a chave principal da integração


<OrderPurpose>2</OrderPurpose>

1 - Pedido de compra (Tratamento com a Equipe Compras)

2 - Pedido de venda

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É uma Tag interna que passa que se trata de um pedido de venda.

C5_CLIENTE + C5_LOJACLI<CustomerCode>/<CustomerCode>Cliente existente + Loja existente<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C5_MOEDA<CurrencyCode></CurrencyCode>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_CONDPAG<PaymentTermCode></PaymentTermCode>Registro válido na tabela do campo C5_CONDPAG (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C5_CONDPAG<PaymentConditionInternalId></PaymentConditionInternalId>Empresa | Filial | Registro válido na tabela do campo<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.

C5_EMISSAO<RegisterDate></RegisterDate>Conteúdo de data<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_TPFRETE<FreightType></FreightType>

'C=CIF' (<FreightType>C</FreightType>)


'F=FOB' (<FreightType>F</FreightType>)


'T=Por conta terceiros' (<FreightType>T</FreightType>)


'R=Por conta remetente' (<FreightType>R</FreightType>)


'D=Por conta destinatário' (<FreightType>D</FreightType>)


'S=Sem frete' (<FreightType>S</FreightType>)

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

C5_PBRUTO<GrossWeight></GrossWeight>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_SEGURO<InsuranceValue></InsuranceValue>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_DESC1
C5_DESC2
C5_DESC3
C5_DESC4

          <Discount></Discount>
          <Discount></Discount>
          <Discount></Discount>
          <Discount></Discount>
Conteúdo numérico

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
                <Discounts>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_MENNOTA<InvoiceMessage></InvoiceMessage>Conteúdo alfanumérico

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo livre (Não contém "InternalId" no nome)

C5_NOTA<InvoiceNumber></InvoiceNumber>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_SERIE<InvoiceSerie></InvoiceSerie>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo livre, não contém na Tag "InternalId".

C5_TIPO

<OrderTypeCode></OrderTypeCode> ou

se a integração não for exclusão de registro C5_TIPO == N

'N - Normal'<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

C5_CLIENT + C5_LOJAENT<DeliveryCustomerCode></DeliveryCustomerCode>Cliente existente + Loja existente

Se essa Tag for levada vazia:
(C5_CLIENTE + C5_LOJACLI == C5_CLIENT + C5_LOJAENT)
<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C5_TABELA

<PriceTableNumber></PriceTableNumber>Registro válido na tabela do campo C5_TABELA (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C5_VEND1<SellerCode></SellerCode>Registro válido na tabela do campo C5_VEND1 (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C5_TRANSP<CarrierCode></CarrierCode>Registro válido na tabela do campo C5_TRANSP (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C5_DESCFI<FinancialDiscount></FinancialDiscount>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_FRETE<FreightValue></FreightValue>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_REDESP<RedeliveryCarrierCode></RedeliveryCarrierCode>Registro válido na tabela do campo C5_REDESP (ALIAS).<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C5_PESOL<NetWeight></NetWeight>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C5_VOLUME1<NumberOfVolumes></NumberOfVolumes>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_PRODUTO<ItemCode></ItemCode>Registro válido na tabela do campo C6_PRODUTO (ALIAS).

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C6_TES<TypeOperation></TypeOperation>Registro válido na tabela do campo C6_TES (ALIAS).

OBS: Caso a TES não tenha sido informada, assume a TES do parâmetro MV_SLMTS
<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C6_QTDVEN<Quantity></Quantity>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_QTDLIBC6_QTDVEN(<Quantity></Quantity>)

Só é carregado a informação ao campo se configurado para liberar conforme o estoque.

Documentação:

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_PRCVEN<UnityPrice></UnityPrice>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_PRUNIT<UnityPrice></UnityPrice> ou <PriceOfPriceTable></PriceOfPriceTable>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_VALOR<TotalPrice></TotalPrice> ou Multiplicação entre C6_PRCVEN e C6_PRUNITConteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_DESCRI<ItemDescription></ItemDescription>Conteúdo alfnumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_ENTREG<DeliveryDate></DeliveryDate>Conteúdo de data<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_NUM<OrderId></OrderId>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_PEDCLI<CustomerOrderNumber></CustomerOrderNumber>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo livre, não contém na Tag "InternalId".

C6_DESCONT<DiscountPercentage></DiscountPercentage>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_VALDESC<ItemDiscount></ItemDiscount>Conteúdo numérico

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>
                         <ItemDiscounts>

ou

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <Discounts>
                    <Discount>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_NFORI<InputDocumentNumber></InputDocumentNumber>Conteúdo numérico

<TOTVSMessage>   <BusinessMessage>
    <BusinessContent>
      <SalesOrderItens>
         <Item>
           <ListOfReturnedDocuments>
              <ReturnedInputDocument>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_SERIORI<InputDocumentSerie></InputDocumentSerie>Conteúdo alfanumérico<TOTVSMessage>   <BusinessMessage>
    <BusinessContent>
      <SalesOrderItens>
         <Item>
           <ListOfReturnedDocuments>
              <ReturnedInputDocument>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_ITEMORI<InputDocumentSequence></InputDocumentSequence>Conteúdo numérico<TOTVSMessage>   <BusinessMessage>
    <BusinessContent>
      <SalesOrderItens>
         <Item>
           <ListOfReturnedDocuments>
              <ReturnedInputDocument>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_IDENTB6
Resgata pelos campos C6_FILIAL, C6_NFORI, C6_CLIENTE, C6_SERIORI, C6_ITEMORI e C6_LOJACLI resgata o saldo da Tabela SB6 no retorno do documento de entrada.

Não

É uma Tag interna que passa que se trata de um pedido de venda.

C6_CODINF
Conteúdo alfanumérico

Não

Campo livre, não contém na Tag "InternalId".

C6_INFAD
Memo

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_ITEM<OrderItem></OrderItem> ou <InternalId></InternalId>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>
               <SalesOrderItens>
                    <Item>

Não

Primeira Tag (Não contém "InternalId" no nome)

Segunda Tag é a chave principal da integração

C6_PRODUTO<ItemInternalId></ItemInternalId>Registro válido na tabela do campo C6_PRODUTO (ALIAS).<TOTVSMessage>
    <BusinessMessage>
        <BusinessContent>
            <SalesOrderItens>
                <Item>
                   

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.

C6_LOCAL<WarehouseInternalId></WarehouseInternalId>Registro válido na tabela do campo C6_LOCAL (ALIAS).<TOTVSMessage>
    <BusinessMessage>
        <BusinessContent>
            <SalesOrderItens>
                <Item>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.

C6_UM<UnitOfMeasureInternalId></UnitOfMeasureInternalId>

ou

<ItemUnitOfMeasureInternalId></ItemUnitOfMeasureInternalId>
Registro válido na tabela do campo C6_UM (ALIAS).

<TOTVSMessage>
    <BusinessMessage>
        <BusinessContent>
            <SalesOrderItens>
                <Item>
                   


Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.

C6_PROJPMS<ProjectInternalId></ProjectInternalId>Registro válido na tabela do campo C6_PROJPMS (ALIAS).<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.

C6_TASKPMS<TaskInternalId></TaskInternalId>Registro válido na tabela do campo C6_TASKPMS (ALIAS).<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.

C6_RATEIO<ApportionOrderItem></ApportionOrderItem>

Se essa Tag existir simboliza que há rateio no pedido de vendas (C6_RATEIO == 1)

1 - Sim

2 - Não

<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

C6_CC<CostCenterCode></CostCenterCode>Registro válido na tabela do campo C6_CC (ALIAS).<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C6_OPER<TaxOpCode></TaxOpCode>Registro válido na tabela do campo C6_OPER (ALIAS).<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C6_LOTECTL<LotNumber></LotNumber>Conteúdo alfanumérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_NUMLOTE<SubLotNumber></SubLotNumber>Conteúdo alfanumérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_NUMSERI<SeriesItem></SeriesItem>Conteúdo alfanumérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_LOCALIZ<AddressingItem></AddressingItem>Conteúdo alfanumérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo regrado porém essa Tag está passando valor direto,

sem necessidade de De/Para.

C6_DATFAT<InvoicingDate></InvoicingDate>Conteúdo de data<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_QTDEMP<AlloccatedQuantity></AlloccatedQuantity>Conteúdo numérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_QTDENT<QuantityDelivered></QuantityDelivered>Conteúdo numérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_NOTA<InvoiceNumber></InvoiceNumber>Conteúdo numérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_SERIE<InvoiceSerie></InvoiceSerie>Conteúdo alfanumérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_RESERVA<ItemReserveInternalId></ItemReserveInternalId>Registro válido na tabela do campo C6_RESERVA (ALIAS).<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.


<InternalId>


<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>


<DepartamentCode/>
<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>


<DepartamentInternalId/>
<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.


<AccountantAcountInternalId>Empresa | Filial onde está o registro da tabela CTI | Registro da AGG_CONTA<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.


<ProjectInternalId>
<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.


<SubProjectInternalId/>
<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.


<TaskInternalId>
<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.


<Percentual>Conteúdo numérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.


<Quantity>Conteúdo numérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.


<Observation/>Conteúdo alfanumérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.


<Value/>Conteúdo numérico<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>
            <ListOfApportionOrderItem>
                 <ApportionOrderItem>

Não

Campo dependente, sem necessidade de De/Para de Mensagem Única.

C6_CC<CostCenterInternalId></CostCenterInternalId>Registro válido na tabela do campo C6_CC (ALIAS).<TOTVSMessage>
  <BusinessMessage>
     <BusinessContent>
       <SalesOrderItens>
          <Item>

Sim

Campo regrado com Tag com "InternalId"

Há necessidade de De/Para de Mensagem Única.




Expandir
titleIntegração de Condição de Pagamento (PAYMENTCONDITION)
Deck of Cards
startHiddenfalse
effectDuration0.5
idIntegrar Cliente
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idConsiderações
labelConsiderações



Card
defaulttrue
idConsiderações
labelFontes, Considerações e Premissas

1 - A integração de condições de pagamento não integra condições de pagamento do Tipo 9, A e B (Tabela SEC).

Expandir
title2 - Os campos obrigatórios na tabela de condições de pagamento (SE4) serão exigidos também na integração. 

Por padrão os campos obrigatórios (Que por esse motivo devem ter suas tags no XML e que usaremos como base para exemplo):

[CAMPO LIVRE] - E4_CODIGO (Campo mestre da integração)

  • <InternalId></InternalId><Code></Code>



[CAMPO DEPENDENTE] - E4_TIPO

  • <TypePaymentCondition></TypePaymentCondition>

[CAMPO DEPENDENTE] - E4_COND

  • <DaysFirstDue></DaysFirstDue>          // Dias para primeira parcela
    <QuantityPlots></QuantityPlots>         // Quantidade de parcelas
    <RangePlots></RangePlots>                // Intervalo entre as parcelas
    <WeekDayFixed></WeekDayFixed>     // Dia da semana, quando este for fixo
    <DayMonthFixed></DayMonthFixed> // Dia do mês, quando este for fixo
    <DaysCondition></DaysCondition>    // Contagem dos dias para as parcelas
    <RangePlots></RangePlots>               // Intervalo de dias
    <DaysFirstDue></DaysFirstDue>         // Dias de carência para a primeira parcela 
    <WeekDayFixed></WeekDayFixed>    // Dia da semana
    <DaysCondition></DaysCondition>    // Dias da Condição

    <Due>                                                  // Parcelas (se E4_TIPO == 8)
                <DueDay></DueDay>             // Dia de vencimento
                <Percentage></Percentage>  // Porcentagem das parcelas

[CAMPO LIVRE] - E4_DESCRI 

  • <Description></Description>
Expandir
title3 - Fontes usados
  • MATA360: Fonte destino
  • MATI360: Fonte integrador

4 - Não há Tag que passa o conteúdo inteiro do campo E4_COND. O campo E4_COND é formado de várias Tags específicas e cada combinação de Tags culmina no tipo da condição de pagamento. Caso o tipo da condição de pagamento não seja passado na Tag "<TypePaymentCondition>" e as Tags que formam o campo E4_COND representem uma condição válida, o sistema automaticamente a encontra e define o tipo da condição de pagamento (E4_COND).

Card
defaulttrue
idXMLs Exemplo
labelXML de Exemplo

<TOTVSMessage>
    <MessageInformation version="2.000">
        <UUID>V1n1c105-0001-1234-5678-90abcdefghij</UUID>
        <Type>BusinessMessage</Type>
        <Transaction>PAYMENTCONDITION</Transaction>
        <StandardVersion>1.000</StandardVersion>
        <SourceApplication>RM</SourceApplication>
        <CompanyId>99</CompanyId>
        <BranchId>01</BranchId>
        <Product name="RM" version="12.1.22.0" />
        <GeneratedOn>2019-01-28T14:01:50</GeneratedOn>
        <DeliveryType>Sync</DeliveryType>
    </MessageInformation>
    <BusinessMessage>
        <BusinessEvent>
            <Entity>PAYMENTCONDITION</Entity>
            <Event>upsert</Event>
        </BusinessEvent>
        <BusinessContent>
            <CompanyId>99</CompanyId>
            <Code>100</Code>
            <InternalId>1|12345</InternalId>
            <Description>ABC</Description>
            <DaysFirstDue>7</DaysFirstDue>
            <QuantityPlots>3</QuantityPlots>
            <RangePlots>30</RangePlots>
            <DaysCondition>1</DaysCondition>
        </BusinessContent>
    </BusinessMessage>
</TOTVSMessage>

Card
defaulttrue
idAdapter
labelI. ADAPTER

Tabela: XX4

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

Expandir
titleDefinição por escrito


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'MATA360'

XX4_MODEL = PAYMENTCONDITION'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '1 - Sim'/'2 - Não'

XX4_RECEIV = '1 - Sim'

XX4_METODO = '2 - Assíncrono'

XX4_TPOPER = '1 - Todas'

XX4_CHANEL = 3

XX4_SNDVER = ('3.000+') [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)


Card
defaulttrue
idDePreEmpreFili
labelII. De/Para de Empresa/Filial

Tabela: XXD

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


Expandir
titleDefinição por escrito


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]



XXD_REFER = RM

XXD_COMPA = 50

XXD_BRANCH = 50

XXD_EMPPRO = 99

XXD_FILPRO = 01


Card
defaulttrue
idIII. Campos "De/Para de Empresa/Filial"
labelIII. Campos "De/Para de Mensagem Unica!

Os campos obrigatórios nativos do cadastro de condições de pagamento no Protheus não possuem campos regrados que possuem "InternalId", então no XML de exemplo não é necessário cadastrar nenhum De/Para de Mensagem Unica.

  • OBS: O Campo <InternalId> geral da integração irá gerar a própria condição de pagamento (E4_CODIGO), é o campo com chave principal, não necessitando De/Para de Mensagem Unica pois a integração em si é sua criação.


Card
defaulttrue
idTags
labelIV. Retorno da integração (XX3)

Retorno da integração com o XML de Exemplo:


XX3_FILIAL = 01

XX3_CODIGO = 0000000000000000000000149

XX3_UUID = V1n1c105-0001-1234-5678-90abcdefghij

XX3_FUNCOD = PAYMENTCONDITION

XX3_FUNDES = TOTVSMessage PAYMENTCONDITION Business Message         

XX3_TRDATA = 28/01/2019   

XX3_TRHORA = 11:01:50

XX3_PRDATA = 19/11/2022

XX3_PRHORA = 20:14:18

XX3_TENTAT = 1

XX3_TRANS (Memo) =

XX3_TPDOC = 1

XX3_STATUS = 2

XX3_TMDATA = 19/11/2022

XX3_TMHORA = 20:14:18

XX3_MSGTYP = 20

XX3_CHANEL = 1

XX3_RETURN (Memo) =

XX3_PRODUC = RM

XX3_SOURCE = RM

XX3_VERSAO = 2.000

XX3_EVENT = upsert


Restante dos campos da XX3: Vazios.


Card
defaulttrue
idDe/Para de Mensagem Unica criado com a integração
labelDe/Para de Mensagem Unica criado com a integração

XXF_REFER

(Referência*)

XXF_TABLE

(Tabela*)

XXF_ALIAS

(Alias*)

XXF_FIELD

(Campo*)

XXF_UNMESS

(Mensagem Única)

XXF_EXTVAL

(Valor Externo*)

XXF_INTVAL

(Valor Interno*)

RMSE4990SE4E4_CODIGO-1|1234599|01|100
Card
defaulttrue
idCampos integrados com o exemplo (Resultado da integração)
labelCampos integrados com o exemplo (Resultado da integração)
Campo(s) destinoValor atribuído pós integração do XML de exemploTag(s) no XML que atribuiu(ram) a informação
E4_FILIAL01<BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido)
E4_CODIGO100<Code>100</Code>
E4_COND7,3,30<DaysFirstDue>7</DaysFirstDue>
<QuantityPlots>3</QuantityPlots>
<RangePlots>30</RangePlots>
E4_DESCRI'ABC'<Description>2</Description>
E4_DDD'L - Fora o dia'<DaysCondition>2</DaysCondition>
E4_AGRACRS/E4_ACRES/E4_CCORREN/E4_MSBLQL

Esses campos são preenchidos em uma integração porém podem não ter relação com a mesma.

É padrão do Protheus ao incluir qualquer cliente [Iniciador padrão do campo]).

(No XML exemplo não foram inseridos Tags para tratamento desses campos)

-
Card
defaulttrue
idTags
labelTags possíveis

   

Campo Tag que levá seu valor/conteúdo ao respectivo campoValores possíveisOnde geralmente está localizada no XMLNecessita de De/Para de Mensagem Única?
E4_FILIAL<Code></Code> e <InternalId></InternalId>

Conteúdo alfanumérico

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É a chave principal da integração

E4_CODIGO<Code></Code>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo livre (Não contém "InternalId" no nome)

E4_COND

<QuantityPlots></QuantityPlots>         // Quantidade de parcelas;

<RangePlots></RangePlots>                // Intervalo entre as parcelas/dias;

<WeekDayFixed></WeekDayFixed>     // Dia da semana, quando este for fixo;

<DayMonthFixed></DayMonthFixed> // Dia do mês, quando este for fixo;

<DaysCondition></DaysCondition>    // Contagem dos dias para as parcelas;

<DaysFirstDue></DaysFirstDue>         // Dias de carência para a primeira parcela;
 
<WeekDayFixed></WeekDayFixed>    // Dia da semana;

<Plots>
     <Due> 

      <Due>                                              // Parcelas (se E4_TIPO == 8)
            <DueDay></DueDay>             // Dia de vencimento
            <Percentage></Percentage>  // Porcentagem das parcelas

</Plots>

Conteúdo alfanumérico

(Recebe vírgulas mas possui validação
para detecção do tipo de alguma
condição existente)

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

E4_DESCRI<Description></Description>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo livre (Não contém "InternalId" no nome)

E4_DDD<DaysCondition></DaysCondition>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

E4_DIADESC<FinancialDiscountDays></FinancialDiscountDays>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

E4_DESCFIN<PercentageDiscountDays></PercentageDiscountDays>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

E4_ACRSFIN<PercentageIncrease></PercentageIncrease>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

E4_TIPO-

Conteúdo alfanumérico

<TypePaymentCondition> ou é formado

pela combinção única de Tags de parcelas.

Não

Campo dependente, sem necessidade de De/Para.




Expandir
titleIntegração de Vendedor (SELLER)
Deck of Cards
startHiddenfalse
effectDuration0.5
idIntegrar Cliente
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idConsiderações
labelFontes, Considerações e Premissas

1 - Integração XML: SELLER (Vendedores) em construção.

Expandir
title2 - Os campos obrigatórios na tabela de vendedores (SA3) serão exigidos também na integração. 

Por padrão os campos obrigatórios (Que por esse motivo devem ter suas tags no XML e que usaremos como base para exemplo):

[CAMPO LIVRE] - A3_COD (Campo primário da integração)

  • <InternalId></InternalId><Code></Code>



[CAMPO LIVRE] - A3_NOME

  • <Name></Name>
Expandir
title3 - Fontes usados
  • MATA040: Fonte destino
  • MATI040: Fonte integrador
Card
defaulttrue
idAdapter
labelI. ADAPTER

Tabela: XX4

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

Expandir
titleDefinição por escrito


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'MATA040'

XX4_MODEL = 'SELLER'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '1 - Sim'/'2 - Não'

XX4_RECEIV = '1 - Sim'

XX4_METODO = '2 - Assíncrono'

XX4_TPOPER = '1 - Todas'

XX4_CHANEL = 3

XX4_SNDVER = ('2.001+') [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)


Card
defaulttrue
idDePreEmpreFili
labelII. De/Para de Empresa/Filial

Tabela: XXD

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


Expandir
titleDefinição por escrito


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]



XXD_REFER = RM

XXD_COMPA = 55

XXD_BRANCH = 24

XXD_EMPPRO = 99

XXD_FILPRO = 01


Card
defaulttrue
idIII. Campos "De/Para de Empresa/Filial"
labelIII. Campos "De/Para de Mensagem Unica!

Os campos obrigatórios nativos do cadastro de vendedores no Protheus não possuem campos regrados que possuem "InternalId", então no XML de exemplo não é necessário cadastrar nenhum De/Para de Mensagem Unica.

  • OBS: O Campo <InternalId> geral da integração irá gerar a própria condição de pagamento (A3_COD), é o campo com chave principal, não necessitando De/Para de Mensagem Unica pois a integração em si é sua criação.


Card
defaulttrue
idTags
labelIV. Retorno da integração (XX3)

Retorno da integração com o XML de Exemplo:


XX3_FILIAL = 01

XX3_CODIGO = 0000000000000000000XX

XX3_UUID = V1n1c105-0002-1234-5678-90abcdefghij

XX3_FUNCOD = SELLER

XX3_FUNDES = TOTVSMessage SELLER Business Message         

XX3_TRDATA = 28/01/2019   XXX

XX3_TRHORA = 11:01:50XXX

XX3_PRDATA = 19/11/2022XXX

XX3_PRHORA = 20:14:18XXX

XX3_TENTAT = 1

XX3_TRANS (Memo) =

XX3_TPDOC = 1

XX3_STATUS = 2

XX3_TMDATA = 19/11/2022XXX

XX3_TMHORA = 20:14:18XXX

XX3_MSGTYP = 20

XX3_CHANEL = 1

XX3_RETURN (Memo) =

XX3_PRODUC = RM

XX3_SOURCE = RM

XX3_VERSAO = 2.001

XX3_EVENT = upsert


Restante dos campos da XX3: Vazios.


Card
defaulttrue
idDe/Para de Mensagem Unica criado com a integração
labelDe/Para de Mensagem Unica criado com a integração

XXF_REFER

(Referência*)

XXF_TABLE

(Tabela*)

XXF_ALIAS

(Alias*)

XXF_FIELD

(Campo*)

XXF_UNMESS

(Mensagem Única)

XXF_EXTVAL

(Valor Externo*)

XXF_INTVAL

(Valor Interno*)

RMSA3990SA3A3_COD-XXXXXX
Card
defaulttrue
idCampos integrados com o exemplo (Resultado da integração)
labelCampos integrados com o exemplo (Resultado da integração)
Campo(s) destinoValor atribuído pós integração do XML de exemploTag(s) no XML que atribuiu(ram) a informação
E4_FILIAL01<BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido)
E4_CODIGO100<Code>100</Code>
E4_COND7,3,30<DaysFirstDue>7</DaysFirstDue>
<QuantityPlots>3</QuantityPlots>
<RangePlots>30</RangePlots>
E4_DESCRI'ABC'<Description>2</Description>
E4_DDD'L - Fora o dia'<DaysCondition>2</DaysCondition>
E4_AGRACRS/E4_ACRES/E4_CCORREN/E4_MSBLQL

Esses campos são preenchidos em uma integração porém podem não ter relação com a mesma.

É padrão do Protheus ao incluir qualquer cliente [Iniciador padrão do campo]).

(No XML exemplo não foram inseridos Tags para tratamento desses campos)

-
Card
defaulttrue
idTags
labelTags possíveis

   

Campo Tag que levá seu valor/conteúdo ao respectivo campoValores possíveisOnde geralmente está localizada no XMLNecessita de De/Para de Mensagem Única?
E4_FILIAL<Code></Code> e <InternalId></InternalId>

Conteúdo alfanumérico

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É a chave principal da integração

E4_CODIGO<Code></Code>;Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

E4_COND

<Code></Code>;

<DaysFirstDue></DaysFirstDue>          // Dias para primeira parcela;

<QuantityPlots></QuantityPlots>         // Quantidade de parcelas;

<RangePlots></RangePlots>                // Intervalo entre as parcelas;

<WeekDayFixed></WeekDayFixed>     // Dia da semana, quando este for fixo;

<DayMonthFixed></DayMonthFixed> // Dia do mês, quando este for fixo;

<DaysCondition></DaysCondition>    // Contagem dos dias para as parcelas;

<RangePlots></RangePlots>               // Intervalo de dias;

<DaysFirstDue></DaysFirstDue>         // Dias de carência para a primeira parcela;
 
<WeekDayFixed></WeekDayFixed>    // Dia da semana;

<Plots>
     <Due> 

<Due>                                                  // Parcelas (se E4_TIPO == 8)
            <DueDay></DueDay>             // Dia de vencimento
            <Percentage></Percentage>  // Porcentagem das parcelas

Conteúdo alfanumérico

(Recebe vírgulas mas possui validação
para detecção do tipo de alguma
condição existente)

<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Dependente

E4_DESCRI<Description></Description>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo livre (Não contém "InternalId" no nome)

E4_DDD<DaysCondition></DaysCondition>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É um campo regrado simples (Não contém "InternalId" no nome)

E4_DIADESC<FinancialDiscountDays></FinancialDiscountDays>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

E4_DESCFIN<PercentageDiscountDays></PercentageDiscountDays>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

E4_ACRSFIN<PercentageIncrease></PercentageIncrease>Conteúdo numérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

Campo dependente, sem necessidade de De/Para.

E4_TIPO-

Conteúdo alfanumérico


Não

Campo dependente, sem necessidade de De/Para.




Expandir
titleIntegração de Transportadoras (CARRIER)
Deck of Cards
startHiddenfalse
effectDuration0.5
idIntegrar Cliente
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idConsiderações
labelConsiderações


Card
defaulttrue
idConsiderações
labelFontes, Considerações e Premissas

1 - Integração XML: CARRIER (Transportadoras) em construção.

Expandir
title2 - Os campos obrigatórios na tabela de transportadoras (SA4) serão exigidos também na integração. 

Por padrão os campos obrigatórios (Que por esse motivo devem ter suas tags no XML e que usaremos como base para exemplo):

[CAMPO LIVRE] - A4_COD (Campo primário da integração)

  • <InternalId></InternalId><Code></Code>



[CAMPO LIVRE] - A4_NOME

  • <Name></Name>
Expandir
title3 - Fontes usados
  • MATA050: Fonte destino
  • MATI060: Fonte integrador
Card
defaulttrue
idAdapter
labelI. ADAPTER

Tabela: XX4

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

Expandir
titleDefinição por escrito


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'MATA050'

XX4_MODEL = 'CARRIER'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '1 - Sim'/'2 - Não'

XX4_RECEIV = '1 - Sim'

XX4_METODO = '2 - Assíncrono'

XX4_TPOPER = '1 - Todas'

XX4_CHANEL = 3

XX4_SNDVER = ('1.000+') [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)


Card
defaulttrue
idDePreEmpreFili
labelII. De/Para de Empresa/Filial

Tabela: XXD

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


Expandir
titleDefinição por escrito


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]



XXD_REFER = RM

XXD_COMPA = 09

XXD_BRANCH = 08

XXD_EMPPRO = 99

XXD_FILPRO = 01


Card
defaulttrue
idIII. Campos "De/Para de Empresa/Filial"
labelIII. Campos "De/Para de Mensagem Unica!

Os campos obrigatórios nativos do cadastro de transportadoras no Protheus não possuem campos regrados que possuem "InternalId", então no XML de exemplo não é necessário cadastrar nenhum De/Para de Mensagem Unica.

  • OBS: O Campo <InternalId> geral da integração irá gerar a própria condição de pagamento (A4_COD), é o campo com chave principal, não necessitando De/Para de Mensagem Unica pois a integração em si é sua criação.


Card
defaulttrue
idTags
labelIV. Retorno da integração (XX3)

Retorno da integração com o XML de Exemplo:


XX3_FILIAL = 01

XX3_CODIGO = 0000000000000000000XX

XX3_UUID = V1n1c105-0003-1234-5678-90abcdefghij

XX3_FUNCOD = CARRIER

XX3_FUNDES = TOTVSMessage CARRIER Business Message         

XX3_TRDATA = 28/01/2019   XXX

XX3_TRHORA = 11:01:50XXX

XX3_PRDATA = 19/11/2022XXX

XX3_PRHORA = 20:14:18XXX

XX3_TENTAT = 1

XX3_TRANS (Memo) =

XX3_TPDOC = 1

XX3_STATUS = 2

XX3_TMDATA = 19/11/2022XXX

XX3_TMHORA = 20:14:18XXX

XX3_MSGTYP = 20

XX3_CHANEL = 1

XX3_RETURN (Memo) =

XX3_PRODUC = RM

XX3_SOURCE = RM

XX3_VERSAO = 1.000

XX3_EVENT = upsert


Restante dos campos da XX3: Vazios.


Card
defaulttrue
idDe/Para de Mensagem Unica criado com a integração
labelDe/Para de Mensagem Unica criado com a integração

XXF_REFER

(Referência*)

XXF_TABLE

(Tabela*)

XXF_ALIAS

(Alias*)

XXF_FIELD

(Campo*)

XXF_UNMESS

(Mensagem Única)

XXF_EXTVAL

(Valor Externo*)

XXF_INTVAL

(Valor Interno*)

RMSA4990SA4A4_COD-XXXXXX
Card
defaulttrue
idCampos integrados com o exemplo (Resultado da integração)
labelCampos integrados com o exemplo (Resultado da integração)
Campo(s) destinoValor atribuído pós integração do XML de exemploTag(s) no XML que atribuiu(ram) a informação
A4_FILIAL01<BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido)
Card
defaulttrue
idTags
labelTags possíveis

  

Campo Tag que levá seu valor/conteúdo ao respectivo campoValores possíveisOnde geralmente está localizada no XMLNecessita de De/Para de Mensagem Única?
A4_FILIAL





A4_COD<Code></Code> e <InternalId></InternalId>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É a chave principal da integração




Expandir
titleIntegração de Categorias de Produto (COMMERCIALFAMILY)
Deck of Cards
startHiddenfalse
effectDuration0.5
idIntegrar Cliente
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idConsiderações
labelFontes, Considerações e Premissas

1 - Integração XML: COMMERCIALFAMILY (Categorias de Produto) em construção.

Expandir
title2 - Os campos obrigatórios na tabela de categorias de produtos (ACU) serão exigidos também na integração. 

Por padrão os campos obrigatórios (Que por esse motivo devem ter suas tags no XML e que usaremos como base para exemplo):

[CAMPO LIVRE] - ACU_COD (Campo primário da integração)

  • <InternalId></InternalId><Code></Code>



[CAMPO LIVRE] - ACU_DESC

  • <CompleteDescription></CompleteDescription>
Expandir
title3 - Fontes usados
  • FATA140: Fonte destino
  • FATI140: Fonte integrador
Card
defaulttrue
idAdapter
labelI. ADAPTER

Tabela: XX4

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

Expandir
titleDefinição por escrito


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'FATA140'

XX4_MODEL = 'COMMERCIALFAMILY'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '1 - Sim'/'2 - Não'

XX4_RECEIV = '1 - Sim'

XX4_METODO = '2 - Assíncrono'

XX4_TPOPER = '1 - Todas'

XX4_CHANEL = 3

XX4_SNDVER = ('2.000+') [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)


Card
defaulttrue
idDePreEmpreFili
labelII. De/Para de Empresa/Filial

Tabela: XXD

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


Expandir
titleDefinição por escrito


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]



XXD_REFER = RM

XXD_COMPA = 20

XXD_BRANCH = 03

XXD_EMPPRO = 99

XXD_FILPRO = 01


Card
defaulttrue
idIII. Campos "De/Para de Empresa/Filial"
labelIII. Campos "De/Para de Mensagem Unica!

Os campos obrigatórios nativos do cadastro de categorias de produtos no Protheus não possuem campos regrados que possuem "InternalId", então no XML de exemplo não é necessário cadastrar nenhum De/Para de Mensagem Unica.

  • OBS: O Campo <InternalId> geral da integração irá gerar a própria condição de pagamento (ACU_COD), é o campo com chave principal, não necessitando De/Para de Mensagem Unica pois a integração em si é sua criação.


Card
defaulttrue
idTags
labelIV. Retorno da integração (XX3)

Retorno da integração com o XML de Exemplo:


XX3_FILIAL = 01

XX3_CODIGO = 0000000000000000000XX

XX3_UUID = V1n1c105-0004-1234-5678-90abcdefghij

XX3_FUNCOD = COMMERCIALFAMILY

XX3_FUNDES = TOTVSMessage COMMERCIALFAMILY Business Message         

XX3_TRDATA = 28/01/2019   XXX

XX3_TRHORA = 11:01:50XXX

XX3_PRDATA = 19/11/2022XXX

XX3_PRHORA = 20:14:18XXX

XX3_TENTAT = 1

XX3_TRANS (Memo) =

XX3_TPDOC = 1

XX3_STATUS = 2

XX3_TMDATA = 19/11/2022XXX

XX3_TMHORA = 20:14:18XXX

XX3_MSGTYP = 20

XX3_CHANEL = 1

XX3_RETURN (Memo) =

XX3_PRODUC = RM

XX3_SOURCE = RM

XX3_VERSAO = 2.000

XX3_EVENT = upsert


Restante dos campos da XX3: Vazios.


Card
defaulttrue
idDe/Para de Mensagem Unica criado com a integração
labelDe/Para de Mensagem Unica criado com a integração

XXF_REFER

(Referência*)

XXF_TABLE

(Tabela*)

XXF_ALIAS

(Alias*)

XXF_FIELD

(Campo*)

XXF_UNMESS

(Mensagem Única)

XXF_EXTVAL

(Valor Externo*)

XXF_INTVAL

(Valor Interno*)

RMACU990ACUACU_COD-XXXXXX
Card
defaulttrue
idCampos integrados com o exemplo (Resultado da integração)
labelCampos integrados com o exemplo (Resultado da integração)
Campo(s) destinoValor atribuído pós integração do XML de exemploTag(s) no XML que atribuiu(ram) a informação
ACU_FILIAL01<BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido)
Card
defaulttrue
idTags
labelTags possíveis

   

Campo Tag que levá seu valor/conteúdo ao respectivo campoValores possíveisOnde geralmente está localizada no XMLNecessita de De/Para de Mensagem Única?
ACU_FILIAL





ACU_COD<Code></Code> e <InternalId></InternalId>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É a chave principal da integração




Expandir
titleIntegração de Tabelas de Preço (PRICELISTHEADERITEM)
Deck of Cards
startHiddenfalse
effectDuration0.5
idIntegrar Cliente
effectTypehorizontal
loopCardstrue

Integração XML: PRICELISTHEADERITEM em construção.

Card
defaulttrue
idConsiderações
labelFontes, Considerações e Premissas
Expandir
title2 - Os campos obrigatórios na tabela de preços (DA0 e DA1) serão exigidos também na integração. 

Por padrão os campos obrigatórios (Que por esse motivo devem ter suas tags no XML e que usaremos como base para exemplo):

[CAMPO LIVRE] - DA0_CODTAB (Campo primário da integração)

  • <InternalId></InternalId> e <Code></Code>



[CAMPO LIVRE] - DA0_DESCRI


[CAMPO DEPENDENTE] - DA0_DATDE


[CAMPO DEPENDENTE] - DA0_HORADE


[CAMPO DEPENDENTE] - DA0_HORATE


[CAMPO REGRADO SIMPLES] - DA0_TPHORA


[CAMPO REGRADO SIMPLES] - DA0_ATIVO


[CAMPO REGRADO] - DA1_CODPRO

Expandir
title3 - Fontes usados
  • OMSA010: Fonte destino
  • OMSI010: Fonte integrador
Card
defaulttrue
idAdapter
labelI. ADAPTER

Tabela: XX4

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

Expandir
titleDefinição por escrito


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'OMSA010'

XX4_MODEL = 'PRICELISTHEADERITEM'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '1 - Sim'/'2 - Não'

XX4_RECEIV = '1 - Sim'

XX4_METODO = '2 - Assíncrono'

XX4_TPOPER = '1 - Todas'

XX4_CHANEL = 3

XX4_SNDVER = ('2.001+') [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)


Card
defaulttrue
idDePreEmpreFili
labelII. De/Para de Empresa/Filial

Tabela: XXD

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


Expandir
titleDefinição por escrito


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]



XXD_REFER = RM

XXD_COMPA = 12

XXD_BRANCH = 34

XXD_EMPPRO = 99

XXD_FILPRO = 01



Card
defaulttrue
idIII. Campos "De/Para de Empresa/Filial"
labelIII. Campos "De/Para de Mensagem Unica!

Os campos obrigatórios nativos do cadastro de categorias de produtos no Protheus não possuem campos regrados que possuem "InternalId", então no XML de exemplo não é necessário cadastrar nenhum De/Para de Mensagem Unica.

  • OBS: O Campo <InternalId> geral da integração irá gerar a própria condição de pagamento (ACU_COD), é o campo com chave principal, não necessitando De/Para de Mensagem Unica pois a integração em si é sua criação.


Card
defaulttrue
idTags
labelIV. Retorno da integração (XX3)

Retorno da integração com o XML de Exemplo:


XX3_FILIAL = 01

XX3_CODIGO = 0000000000000000000XX

XX3_UUID = V1n1c105-0005-1234-5678-90abcdefghij

XX3_FUNCOD = PRICELISTHEADERITEM

XX3_FUNDES = TOTVSMessage PRICELISTHEADERITEM Business Message         

XX3_TRDATA = 28/01/2019   XXX

XX3_TRHORA = 11:01:50XXX

XX3_PRDATA = 19/11/2022XXX

XX3_PRHORA = 20:14:18XXX

XX3_TENTAT = 1

XX3_TRANS (Memo) =

XX3_TPDOC = 1

XX3_STATUS = 2

XX3_TMDATA = 19/11/2022XXX

XX3_TMHORA = 20:14:18XXX

XX3_MSGTYP = 20

XX3_CHANEL = 1

XX3_RETURN (Memo) =

XX3_PRODUC = RM

XX3_SOURCE = RM

XX3_VERSAO = 2.001

XX3_EVENT = upsert


Restante dos campos da XX3: Vazios.


Card
defaulttrue
idDe/Para de Mensagem Unica criado com a integração
labelDe/Para de Mensagem Unica criado com a integração
XXX


XXF_REFER

(Referência*)

XXF_TABLE

(Tabela*)

XXF_ALIAS

(Alias*)

XXF_FIELD

(Campo*)

XXF_UNMESS

(Mensagem Única)

XXF_EXTVAL

(Valor Externo*)

XXF_INTVAL

(Valor Interno*)

RMDA0990DA0DA0_CODPRO-XXXXXX
Card
defaulttrue
idCampos integrados com o exemplo (Resultado da integração)
labelCampos integrados com o exemplo (Resultado da integração)


Campo(s) destinoValor atribuído pós integração do XML de exemploTag(s) no XML que atribuiu(ram) a informação
DA0_FILIAL01<BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido)
Card
defaulttrue
idTags
labelTags possíveis

   

Campo Tag que levá seu valor/conteúdo ao respectivo campoValores possíveisOnde geralmente está localizada no XMLNecessita de De/Para de Mensagem Única?
DA0_FILIAL





DA0_CODPRO<Code></Code> e <InternalId></InternalId>Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É a chave principal da integração




Expandir
titleIntegração de Documentos de Saída (INVOICE)
Deck of Cards
startHiddenfalse
effectDuration0.5
idIntegrar Cliente
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idConsiderações
labelFontes, Considerações e Premissas
1 - Integração XML: INVOICE em construção.


Expandir
title2 - Os campos obrigatórios na tabela de nota fiscal (SF2 e SD2) serão exigidos também na integração. 

Por padrão os campos obrigatórios (Que por esse motivo devem ter suas tags no XML e que usaremos como base para exemplo):

[CAMPO LIVRE] - F2_DOC (Campo primário da integração)

  • <InternalId></InternalId> e <InvoiceNumber></InvoiceNumber>


F2_FILIAL

F2_SERIE

F2_CLIENTE

F2_LOJA

F2_EMISSAO

F2_COND

F2_DUPL

F2_TIPOCLI

F2_VALBRUT

F2_VALMERC

F2_TIPO

(F2_PREFIXO) 

(F2_HORA)

(F2_RECISS)


D2_FILIAL

D2_ITEM

D2_COD

D2_UM

D2_QUANT

D2_TOTAL

D2_TES

D2_CF

D2_PEDIDO

D2_ITEMPV

D2_CLIENTE

D2_LOJA

D2_LOCAL

D2_DOC

D2_SERIE

D2_EMISSAO

D2_PRUNIT

D2_NUMSEQ

D2_TIPO

Expandir
title3 - Fontes usados
  • MATI461: Fonte destino
  • MATA461: Fonte integrador
Card
defaulttrue
idAdapter
labelI. ADAPTER

Tabela: XX4

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

Expandir
titleDefinição por escrito


XX4_FILEXE = Filial recebedora do Protheus

XX4_UNMESS = '1 - Sim'

XX4_ROTINA = 'MATA461'

XX4_MODEL = 'INVOICE'

XX4_DESCRI = Usuário escolhe

XX4_SENDER = '1 - Sim'/'2 - Não'

XX4_RECEIV = '1 - Sim'

XX4_METODO = '2 - Assíncrono'

XX4_TPOPER = '1 - Todas'

XX4_CHANEL = 3

XX4_SNDVER = ('4.001+') [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)


Card
defaulttrue
idDePreEmpreFili
labelII. De/Para de Empresa/Filial

Tabela: XXD

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


Expandir
titleDefinição por escrito


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]



XXD_REFER = RM

XXD_COMPA = 77

XXD_BRANCH = 77

XXD_EMPPRO = 99

XXD_FILPRO = 01



Card
defaulttrue
idIII. Campos "De/Para de Empresa/Filial"
labelIII. Campos "De/Para de Mensagem Unica!

Os campos obrigatórios nativos do cadastro de categorias de produtos no Protheus não possuem campos regrados que possuem "InternalId", então no XML de exemplo não é necessário cadastrar nenhum De/Para de Mensagem Unica.

  • OBS: O Campo <InternalId> geral da integração irá gerar a própria condição de pagamento (ACU_COD), é o campo com chave principal, não necessitando De/Para de Mensagem Unica pois a integração em si é sua criação.


Card
defaulttrue
idTags
labelIV. Retorno da integração (XX3)

Retorno da integração com o XML de Exemplo:


XX3_FILIAL = 01

XX3_CODIGO = 0000000000000000000XX

XX3_UUID = V1n1c105-0007-1234-5678-90abcdefghij

XX3_FUNCOD = INVOICE

XX3_FUNDES = TOTVSMessage INVOICE Business Message         

XX3_TRDATA = 28/01/2019   XXX

XX3_TRHORA = 11:01:50XXX

XX3_PRDATA = 19/11/2022XXX

XX3_PRHORA = 20:14:18XXX

XX3_TENTAT = 1

XX3_TRANS (Memo) =

XX3_TPDOC = 1

XX3_STATUS = 2

XX3_TMDATA = 19/11/2022XXX

XX3_TMHORA = 20:14:18XXX

XX3_MSGTYP = 20

XX3_CHANEL = 1

XX3_RETURN (Memo) =

XX3_PRODUC = RM

XX3_SOURCE = RM

XX3_VERSAO = 4.001

XX3_EVENT = upsert


Restante dos campos da XX3: Vazios.


Card
defaulttrue
idDe/Para de Mensagem Unica criado com a integração
labelDe/Para de Mensagem Unica criado com a integração

XXF_REFER

(Referência*)

XXF_TABLE

(Tabela*)

XXF_ALIAS

(Alias*)

XXF_FIELD

(Campo*)

XXF_UNMESS

(Mensagem Única)

XXF_EXTVAL

(Valor Externo*)

XXF_INTVAL

(Valor Interno*)

RMSF2990SF2F2_COD-XXXXXX
Card
defaulttrue
idCampos integrados com o exemplo (Resultado da integração)
labelCampos integrados com o exemplo (Resultado da integração)


Campo(s) destinoValor atribuído pós integração do XML de exemploTag(s) no XML que atribuiu(ram) a informação
F2_FILIAL01<BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido)
Card
defaulttrue
idTags
labelTags possíveis

   

Campo Tag que levá seu valor/conteúdo ao respectivo campoValores possíveisOnde geralmente está localizada no XMLNecessita de De/Para de Mensagem Única?
F2_FILIAL





F2_COD<Code></Code> e Conteúdo alfanumérico<TOTVSMessage>
     <BusinessMessage>
           <BusinessContent>

Não

É a chave principal da integração













4. Caminhos, Campos, Tabelas e Fontes

Deck of Cards
startHiddenfalse
effectDuration0.5
idCAMICAMPOETABS
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idCusto Médio
labelManual do tópico

Nesse menu interativo há o caminho das rotinas, todos os campos e tabelas envolvidos na integração de faturamento no Protheus recebendo do RM.



Card
defaulttrue
idCaminho
labelCaminhos
  • Caminho até o Schedule: Ambiente Configurador (SIGACFG) → Ambiente → Schedule → Schedule [CFGA010]

  • I. Caminho até o Adapter: Ambiente Configurador (SIGACFG) → Ambiente → Schedule → Adapter E.a.i. [CFGA020]

  • II. Caminho até o De/Para Mensagem Unica: Ambiente Configurador (SIGACFG) → Ambiente → Schedule → De/para de Mensagem Única [ACFG070]

  • III. Caminho até o De/Para de Empresa/Filial: Ambiente Configurador (SIGACFG) → Ambiente → Schedule → Emp.filial Mensagem Única [ACFG050]


Card
defaulttrue
idCampos
labelCampos
Deck of Cards
startHiddenfalse
effectDuration0.5
idCampos nas 4 tabelas
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idCampos "Adapter E.a.i."
labelI. Campos "Adapter E.a.i."


  • "Filial (XX4_FILIAL)" = Filial de registro do dado

  • "Filial Execução (XX4_FILEXE) = Filial recebedora do Protheus

  • "Mensagem Unica (XX4_UNMESS)" = '1 - Sim'/'2 - Não'

  • "Rotina* (XX4_ROTINA)" = Rotina que será o destino da integração

  • "Mensagem* (XX4_MODEL)" = Mensagem EAI da integração

  • "Descrição* (XX4_DESCRI) = Usuário escolhe o nome do registro

  • "Envia (XX4_SENDER)" = '1 - Não'/'2 - Não'

  • "Recebe (XX4_RECEIV)" = '1 - Não'/'2 - Não'

  • "Método (XX4_METODO) = '1 - Síncrono'/'2 - Assíncrono'

  • "Operação (XX4_TPOPER) = '1 - Todas'/'2 - Atualização'/'3 - Exclusão'

  • "Canal Envio (XX4_CHANEL)" = '1 - ESB'/'2 - EAI - SOAP'/'3 - EAI - PAD. APP.'

  • "Salva log (XX4_SNDVER)" = Versão do adapter (gatilhada automaticamente ao incluir a rotina [XX4_ROTINA])

  • "Formato (XX4_FORMAT)" = 'XML'/'JSON'

  • "Salva log (XX4_SAVLOG)" = '1 - Sim'/'2 - Nao'




  • "Rota padrão (XX4_ROUTE)" = Definida preenchida ou não na implantação da integração

  • "Condição (XX4_EXPFIL)" = Definida a expressão de filtro para envio

  • "Compl.Recep. (XX4_LOADRE)" = Definido o nome da rotina de complemento na recepção da mensagem

  • "Compl.Envio. (XX4_LOADSE)" = Definido o nome da rotina de complemento no envio da mensagem

  • "XSD (XX4_XSD)" = Definido o caminho do arquivo XSD de validação do XML

  • "Manipulação XML (XX4_CHGXML)" = Definido o modo de manipulação XML

  • "Alias (XX4_ALIASP)" = Alias da tabela a ser integrada



Card
defaulttrue
idCampos "De/Para Mensagem Unica"
labelII. Campos "De/Para Mensagem Unica"


  • "Referência (XXF_REFER)" = Nome da aplicação origem

  • "Tabela* (XXF_TABLE)" = Tabela destino no Protheus + Empresa filial recebedora 

  • "Alias* (XXF_ALIAS)" = Tabela destino No Protheus (ALIAS)

  • "Campo* (XXF_FIELD)" = Campo Mestre da tabela destino no Protheus

  • "Valor Externo (XXF_EXTVAL)" = Conteúdo da Tag á ser transcrita na mensagem EAI origem

  • "Valor Interno (XXF_INTVAL)" = Empresa + Filial + Registro no Protheus




  • "Mensagem Única (XXF_UNMESS)" = Definido a mensagem única da integração



Card
defaulttrue
idCampos "De/Para Mensagem Unica"
labelIII. Campos "De/Para Mensagem Unica"


  • "Referência* (XXD_REFER)" = Nome da aplicação origem

  • "XXD_COMPA" = Empresa na aplicação origem


  • "XXD_BRANCH" = Filial na aplicação origem


  • "XXD_EMPPRO" = Empresa do Protheus recebedora


  • "XXD_FILPRO" = Filial no Protheus recebedora [Dentro da empresa]




Card
defaulttrue
idCampos "De/Para Mensagem Unica"
labelRetorno da Integração
  • XX3_FILIAL

  • XX3_CODIGO

  • XX3_UUID

  • XX3_FUNCOD 

  • XX3_FUNDES     

  • XX3_TRDATA       

  • XX3_TRHORA 

  • XX3_PRDATA 

  • XX3_TENTAT

  • XX3_TNDATA

  • XX3_TNHORA 

  • XX3_TRANS (Memo) 

  • XX3_TRAN2 (Memo) 

  • XX3_TPDOC 

  • XX3_TPTRAN

  • XX3_STATUS

  • XX3_TMDATA 

  • XX3_TMHORA

  • XX3_RECPDT 

  • XX3_RECPHR 

  • XX3_RESPDT 

  • XX3_RESPHR 

  • XX3_MSGTYP

  • XX3_CHANEL 

  • XX3_REFER 

  • XX3_URL 

  • XX3_WBSER

  • XX3_RETURN (Memo) 

  • XX3_PROUTE 

  • XX3_SROUTE 

  • XX3_ORUUID 

  • XX3_PRODUC 


  • XX3_SOURCE 

  • XX3_VERSAO 

  • XX3_EVENT 

  • XX3_UUIDLT 

  • XX3_TIPOLT




Card
defaulttrue
idTabelas
labelTabelas


Deck of Cards
startHiddenfalse
effectDuration0.5
idtabsss
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idTabelas de Integração
labelTabelas de Integração
    • XX3 - Campos do Schedule (Retorno da Integração)

    • I. XX4 - Adapters

    • II. XXF - De/Para de Mensagens Únicas

    • III. XXD - De/Para de Empresas e Flilais



Card
defaulttrue
idTabelas de destino nas integrações
labelTabelas Integradas
  • Clientes: CUSTOMERVENDOR

    • (SA1) - Cadastro de Cliente


  • Pedidos de Venda: ORDER
      • (SC5) - Cabeçalho do Pedido de Venda
      • (SC6) - Itens do Pedido de Venda


  • Condições de Pagamento: PAYMENTCONDITION
      • (SE4) - Condições de Pagamento


  • Regras de Negócio: COMMERCIALFAMILY
      • (ACU) - Categorias de Produto


  • Vendedores: SELLER
      • (SA3) - Cadastro de Vendedores


  • Transportadoras: CARRIER
      • (SA4) - Cadastro de Transportadoras


  • Documentos de Saída: INVOICE
      • (SD2) - Itens dos Documentos de Saída
      • (SF2) - Cabeçalhos dos Documentos de Saída


  • Tabelas de Preço: PRICELISTHEADERITEM
      • (DA0) - Cabeçalhos das Tabelas de Preço
      • (DA1) - Itens das Tabelas de Preço





Card
defaulttrue
idTabelasFontes
labelFontes


Deck of Cards
startHiddenfalse
effectDuration0.5
idtabs
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idFaturamento (SIGAFAT)
labelFaturamento (SIGAFAT)
  • FATI140 (Faturamento)
    Categoria de Produtos

  • FISI010 (Módulo)
    Municípios

  • MATI030 (Faturamento)
    Clientes

  • MATI030B (Faturamento)
    Clientes - Função de integração para tratar a mensagem CUSTOMERVENDOR onde recebe-se o CPF/CPNJ e é retornado o CPF/CPNJ com Código/Loja/Nome Fantasia/Nome

  • MATI030O (Faturamento)
    Clientes - Função de integração E.A.I. para receber JSON

  • MATI040 (Faturamento)
    Vendedores

  • MATI040O (Faturamento)
    Vendedores - Função de integração E.A.I. para receber JSON

  • MATI050 (Faturamento)
    Transportadoras

  • MATI070 (Financeiro)
    Bancos

  • MATI090 (Financeiro)
    Moedas

  • MATI360 (Faturamento)
    Condição de Pagamento

  • MATI360O (Faturamento)
    Condição de Pagamento - Função de integração E.A.I. para receber JSON

  • MATI410 (Faturamento)
    Pedidos de Venda

  • MATI410B (Faturamento)
    Rastreabilidade de Pedidos de Venda\de Compra com o Objeto Eai(FwObjEai)

  • MATI410BO (Faturamento)
    Rastreabilidade de Pedidos de Venda\de Compra com o Objeto Eai(FwObjEai) para receber em JSON

  • MATI410EC1 (Faturamento)
    Pedidos de Venda - Função de integração para tratar informações de Vendas/Pedido Varejo

  • MATI410EC2 (Faturamento)
    Pedidos de Venda - Função de integração para tratar informações de Vendas/Pedido Varejo para receber em JSON

  • MATI410O (Faturamento)
    (Pedidos de Venda para receber em JSON

  • MATI411 (Faturamento)
    Faz o relacionamento das tabelas "SC5 - Cabeçalho dos Pedidos de Venda" e "SC6 - Itens dos Pedidos de Venda"

  • MATI461 (Faturamento)
    Geração do documento de saída

  • MATI461O (Faturamento)
    Geração do documento de saída para receber em JSON

  • MATI490O (Faturamento)
    Comissão de Vendas

  • OMSI010 (Faturamento)
    Tabela de Preços

  • OMSI010O (Faturamento)
    Para receber tabela de preços para receber em JSON



Card
defaulttrue
idGestão de Proejetos (SIGAPMS)
labelGestão de Projetos (SIGAPMS)
  • PMSI200

  • PMSI200A

  • PMSI200B

  • PMSI201

  • PMSI201A

  • PMSI203





5. Perguntas mais usuais (F.A.Q.)

Card
defaulttrue
idTabelas de destino nas integrações
labelTabelas Integradas
Deck of Cards
startHiddenfalse
effectDuration0.5
idtabs
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idCampos "Adapter E.a.i."
labelClientes (MATI030)

1 - Cross Segmento - TOTVS Backoffice (Linha Protheus) - SIGAFAT - Tratamento de Integrações EAI após a descontinuação do MATA030

2 - MP - FAT - INTEGRAÇÃO DE CADASTROS VIA MENSAGEM ÚNICA (EAI)

3 - MP - FAT - Como o Protheus cria e grava um Código de Cliente na Integração EAI

4 - Cross Segmento - TOTVS Backoffice (Linha Protheus) - Sigafat - Principais dúvidas sobre a descontinuidade do mata030


Card
defaulttrue
idCampos "Adapter E.a.i."
labelPedido de Venda (MATI410)

Não há KCS de dúvida sobre essa integração!


Card
defaulttrue
idCondição de Pagamento
labelCondição de Pagamento (MATI360)

Não há KCS de dúvida sobre essa integração!


Card
defaulttrue
idCategoria de Produtos - COMMERCIALFAMILY - FATI140
labelCategoria de Produtos (FATI140)

Não há KCS de dúvida sobre essa integração!


Card
defaulttrue
idVendedores (MATI040)
labelVendedores (MATI040)

Não há KCS de dúvida sobre essa integração!


Card
defaulttrue
idTransportadoras (MATI050)
labelTransportadoras (MATI050)

Não há KCS de dúvida sobre essa integração!


Card
defaulttrue
idDocumentos de Saída (MATI461)
labelDocumentos de Saída (MATI461)

Não há KCS de dúvida sobre essa integração!


Card
defaulttrue
idTabela de Preços (OMSI010)
labelTabelas de Preço (OMSI010)

Não há KCS de dúvida sobre essa integração!








6. Como passar a integrar as rotinas de faturamento do RM no Protheus

1 - Configurar o WS (WebServices) (https://tdn.totvs.com/x/apk4E).

  • Dúvidas nessa etapa, contate a equipe Protheus Framework.


2 - Seguir passo a passo a rotina que deseja incluir no tópico 3 dessa documentação.





7. HELPS

Card
defaulttrue
idTabelas de destino nas integrações
labelTabelas Integradas
Deck of Cards
startHiddenfalse
effectDuration0.5
idtabs
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idCampos "Adapter E.a.i."
labelClientes (MATI030)
Expandir
title1 - Help: ATENÇÃO! - Problema: Verificar problema no Monitor EAI

Mensagem exibida ao tentar manipular um registro no cadastro de clientes


Possíveis soluções:

1 - Deixar o campo "Salva log (XX4_SAVLOG)" como "1 - Sim".

Expandir
title2 - A Entidade 'CUSTOMERVENDOR' não está mapeada para esta Integração.

Mensagem exibida quando integrações não conseguem visualizar o Adapter "CUSTOMERVENDOR" no Protheus.

"A Entidade 'CUSTOMERVENDOR' não está mapeada para esta Integração."

Possíveis soluções:

1 - Atualizar os fontes de integração

2 - Revisar as configurações do adapter:

  • XX4_UNMESS = "1 - Sim" (Mensagem Unica)
  • XX4_ROTINA = "MATA030" ou "CRMA980" (Rotina)  |  Funciona ambas independente do valor do parâmetro MV_MVCSA1
  • XX4_MODEL = "CUSTOMERVENDOR" (Mensagem*)
  • XX4_SENDER = "1 - Sim" (Envia)
  • XX4_RECEIV = "1 - Sim" (Recebe)
  • XX4_TPOPER = "1 - Todas" (Operação)
  • XX4_CHANEL = "3 - EAI - PAD. APP." (Canal Envio)
  • XX4_SENDER = "2.005+"  |  Dessa versão específicada ou superior
  • XX4_FORMAT = "XML" (Formato)
  • XX4_SAVLOG = "1 - Sim" (Salva log)

OBS: A versão de Envio deve coincidir entre Protheus e RM. Se necessário atualize o adapter do RM/Ambiente que recebe a integração no RM. É necessário que o adapter do lado da aplicação da integração esteja atualizado também.




Card
defaulttrue
idCampos "Adapter E.a.i."
labelPedido de Venda (MATI410)

1 - Cross Segmento - TOTVS Backoffice (Linha Protheus) - SIGAFAT - HELP A410PEDFAT NA INTEGRAÇÃO EAI VIA XML



Card
defaulttrue
idDocumentos de Saída (MATI461)
labelDocumentos de Saída (MATI461)

1 - Cross Segmento - TOTVS Backoffice (Linha Protheus) - SIGAFAT - Adapter EAI Integração CRM







8. Parâmetros

Os parâmetros podem ser inclusive os mesmos como em uso manual do Protheus, porém a integração é uma entrada de dados ordenados automaticamente.

OBS: Não são parâmetros de funcionamento do sistema e sim os que podem interferir/barrar a integração do cadastro/registro.

Card
defaulttrue
idTabelas de destino nas integrações
labelTabelas Integradas
Deck of Cards
startHiddenfalse
effectDuration0.5
idtabs
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idCampos "Adapter E.a.i."
labelClientes (MATI030)
  • MV_VALCNPJ

  • MV_VALCPF

Card
defaulttrue
idCampos "Adapter E.a.i."
labelPedido de Venda (MATI410)
  • MV_1DUPNAT



Card
defaulttrue
idDocumentos de Saída (MATI461)
labelDocumentos de Saída (MATI461)
  • MV_MOEDTIT

  • MV_NDESCTP









9. Pontos de Entrada

Sessão que exibe os pontos de entrada de cada Integração específica (Adapter).


Card
defaulttrue
idTabelas de destino nas integrações
labelTabelas Integradas
Deck of Cards
startHiddenfalse
effectDuration0.5
idtabs
effectTypehorizontal
loopCardstrue
Card
defaulttrue
idPedido de Venda (MATI410/411)
labelPedido de Venda (MATI410/B)

MATI410B

MATI410 (.XML)



Card
defaulttrue
idCampos "Adapter E.a.i."
labelClientes (MATI030)
  • Não há pontos de entrada para Integração de Clientes via XML.

Card
defaulttrue
idCondição de Pagamento
labelCondição de Pagamento (MATI360)
  • Não há pontos de entrada para Integração de Condições de Pagamento via XML.



Card
defaulttrue
idCategoria de Produtos - COMMERCIALFAMILY - FATI140
labelCategoria de Produtos (FATI140)
  • Não há pontos de entrada para Integração de Categorias de Produtos via XML.



Card
defaulttrue
idVendedores (MATI040)
labelVendedores (MATI040)
  • Não há pontos de entrada para Integração de Vendedores via XML.



Card
defaulttrue
idTransportadoras (MATI050)
labelTransportadoras (MATI050)
  • Não há pontos de entrada para Integração de Transportadoras via XML.



Card
defaulttrue
idDocumentos de Saída (MATI461)
labelDocumentos de Saída (MATI461)
  • Não há pontos de entrada para Integração de Documentos de Saída via XML.



Card
defaulttrue
idTabela de Preços (OMSI010)
labelTabelas de Preço (OMSI010)
  • Não há pontos de entrada para Integração de Tabelas de Preço via XML.






10. ExecAuto()

Não há esquematização de integração nos moldes de ExecAuto(), a integração EAI já é um modelo de execução automática.




Sugestões

Gostaria de sugerir uma implementação diferente ou uma melhoria nessa documentação? Abra um ticket para nós, a Equipe Faturamento (SIGAFAT)!



...