- Criado por Vinicius Domingues da Silva Fonseca, última alteração em 30 nov, 2023

Explicativo sobre as integrações XML EAI com destino Protheus Faturamento
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) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Índice1. ConceitoA 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
|
Campo(s) destino | Valor atribuído pós integração do XML de exemplo | Tag(s) no XML que atribuiu(ram) a informação |
---|---|---|
A1_FILIAL | 01 | <BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido) |
A1_COD | 000001 | <Code>000001</Code> e <InternalId>2|09;C000001</InternalId> |
A1_LOJA | 09 | <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_EST | MG | <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]) |
- |
Campo | Tag que levá seu valor/conteúdo ao respectivo campo | Valores possíveis | Onde geralmente está localizada no XML | Necessita 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> |
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> |
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>)
|
<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> |
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> |
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> |
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. |
- Fontes, Considerações e Premissas
- I. ADAPTER
- II. De/Para de Empresa/Filial
- III. Campos "De/Para de Mensagem Unica!
- IV. Retorno da integração (XX3)
- De/Para de Mensagem Unica criado com a integração
- Campos integrados com o exemplo (Resultado da integração)
- Tags possíveis
1 - Integração XML: ORDER (Pedidos de Venda) em construçã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
- MATA410: Fonte destino
- MATI410: Fonte integrador
Tabela: XX4
Rotina: (CFGA020 - Adapter E.A.I.)
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)
Tabela: XXD
Rotina: (APCFG050 - De/para Empresas Mensagem Unica)
XXD_REFER = Conteúdo da Tag do XML <ProductName> (RM)
XXD_COMPA = Conteúdo da Tag do XML <CompanyId>
XXD_BRANCH = Conteúdo da Tag do XML <BranchId> [Se estiver vazia no XML, o campo fica vazio.]
XXD_EMPPRO = Empresa do Protheus recebedora
XXD_FILPRO = Filial no Protheus recebedor [Dentro da empresa]
XXD_REFER = RM
XXD_COMPA = 77
XXD_BRANCH = 77
XXD_EMPPRO = 99
XXD_FILPRO = 01
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.
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.
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*) |
---|---|---|---|---|---|---|
RM | SC5990 | SC5 | C5_NUM | - | XX | XX |
RM | SC6990 | SC6 | C6_ITEM | - | XX | XX |
Campo(s) destino | Valor atribuído pós integração do XML de exemplo | Tag(s) no XML que atribuiu(ram) a informação |
---|---|---|
C5_FILIAL | 01 | <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) |
- |
Campo | Tag que levá seu valor/conteúdo ao respectivo campo | Valores possíveis | Onde geralmente está localizada no XML | Necessita 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>)
|
<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 |
<Discount></Discount> <Discount></Discount> <Discount></Discount> <Discount></Discount> |
Conteúdo numérico | <TOTVSMessage> |
Não Campo dependente, sem necessidade de De/Para de Mensagem Única. |
C5_MENNOTA | <InvoiceMessage></InvoiceMessage> | Conteúdo alfanumérico | <TOTVSMessage> |
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> |
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_QTDLIB | C6_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_PRUNIT | Conteú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> ou |
Não Campo dependente, sem necessidade de De/Para de Mensagem Única. |
C6_NFORI | <InputDocumentNumber></InputDocumentNumber> | Conteúdo numérico | <TOTVSMessage> <BusinessMessage> |
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> |
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) 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. |
- Considerações
- Fontes, Considerações e Premissas
- XML de Exemplo
- I. ADAPTER
- II. De/Para de Empresa/Filial
- III. Campos "De/Para de Mensagem Unica!
- IV. Retorno da integração (XX3)
- De/Para de Mensagem Unica criado com a integração
- Campos integrados com o exemplo (Resultado da integração)
- Tags possíveis
1 - A integração de condições de pagamento não integra condições de pagamento do Tipo 9, A e B (Tabela SEC).
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> e <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>
- 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).
<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>
Tabela: XX4
Rotina: (CFGA020 - Adapter E.A.I.)
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)
Tabela: XXD
Rotina: (APCFG050 - De/para Empresas Mensagem Unica)
XXD_REFER = Conteúdo da Tag do XML <ProductName> (RM)
XXD_COMPA = Conteúdo da Tag do XML <CompanyId>
XXD_BRANCH = Conteúdo da Tag do XML <BranchId> [Se estiver vazia no XML, o campo fica vazio.]
XXD_EMPPRO = Empresa do Protheus recebedora
XXD_FILPRO = Filial no Protheus recebedor [Dentro da empresa]
XXD_REFER = RM
XXD_COMPA = 50
XXD_BRANCH = 50
XXD_EMPPRO = 99
XXD_FILPRO = 01
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.
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.
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*) |
---|---|---|---|---|---|---|
RM | SE4990 | SE4 | E4_CODIGO | - | 1|12345 | 99|01|100 |
Campo(s) destino | Valor atribuído pós integração do XML de exemplo | Tag(s) no XML que atribuiu(ram) a informação |
---|---|---|
E4_FILIAL | 01 | <BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido) |
E4_CODIGO | 100 | <Code>100</Code> |
E4_COND | 7,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) |
- |
Campo | Tag que levá seu valor/conteúdo ao respectivo campo | Valores possíveis | Onde geralmente está localizada no XML | Necessita 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; </Plots> |
Conteúdo alfanumérico (Recebe vírgulas mas possui validação |
<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. |
- Fontes, Considerações e Premissas
- I. ADAPTER
- II. De/Para de Empresa/Filial
- III. Campos "De/Para de Mensagem Unica!
- IV. Retorno da integração (XX3)
- De/Para de Mensagem Unica criado com a integração
- Campos integrados com o exemplo (Resultado da integração)
- Tags possíveis
1 - Integração XML: SELLER (Vendedores) em construçã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> e <Code></Code>
[CAMPO LIVRE] - A3_NOME
- <Name></Name>
- MATA040: Fonte destino
- MATI040: Fonte integrador
Tabela: XX4
Rotina: (CFGA020 - Adapter E.A.I.)
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)
Tabela: XXD
Rotina: (APCFG050 - De/para Empresas Mensagem Unica)
XXD_REFER = Conteúdo da Tag do XML <ProductName> (RM)
XXD_COMPA = Conteúdo da Tag do XML <CompanyId>
XXD_BRANCH = Conteúdo da Tag do XML <BranchId> [Se estiver vazia no XML, o campo fica vazio.]
XXD_EMPPRO = Empresa do Protheus recebedora
XXD_FILPRO = Filial no Protheus recebedor [Dentro da empresa]
XXD_REFER = RM
XXD_COMPA = 55
XXD_BRANCH = 24
XXD_EMPPRO = 99
XXD_FILPRO = 01
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.
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.
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*) |
---|---|---|---|---|---|---|
RM | SA3990 | SA3 | A3_COD | - | XXX | XXX |
Campo(s) destino | Valor atribuído pós integração do XML de exemplo | Tag(s) no XML que atribuiu(ram) a informação |
---|---|---|
E4_FILIAL | 01 | <BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido) |
E4_CODIGO | 100 | <Code>100</Code> |
E4_COND | 7,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) |
- |
Campo | Tag que levá seu valor/conteúdo ao respectivo campo | Valores possíveis | Onde geralmente está localizada no XML | Necessita 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; |
Conteúdo alfanumérico (Recebe vírgulas mas possui validação |
<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. |
- Considerações
- Fontes, Considerações e Premissas
- I. ADAPTER
- II. De/Para de Empresa/Filial
- III. Campos "De/Para de Mensagem Unica!
- IV. Retorno da integração (XX3)
- De/Para de Mensagem Unica criado com a integração
- Campos integrados com o exemplo (Resultado da integração)
- Tags possíveis
1 - Integração XML: CARRIER (Transportadoras) em construçã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> e <Code></Code>
[CAMPO LIVRE] - A4_NOME
- <Name></Name>
- MATA050: Fonte destino
- MATI060: Fonte integrador
Tabela: XX4
Rotina: (CFGA020 - Adapter E.A.I.)
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)
Tabela: XXD
Rotina: (APCFG050 - De/para Empresas Mensagem Unica)
XXD_REFER = Conteúdo da Tag do XML <ProductName> (RM)
XXD_COMPA = Conteúdo da Tag do XML <CompanyId>
XXD_BRANCH = Conteúdo da Tag do XML <BranchId> [Se estiver vazia no XML, o campo fica vazio.]
XXD_EMPPRO = Empresa do Protheus recebedora
XXD_FILPRO = Filial no Protheus recebedor [Dentro da empresa]
XXD_REFER = RM
XXD_COMPA = 09
XXD_BRANCH = 08
XXD_EMPPRO = 99
XXD_FILPRO = 01
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.
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.
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*) |
---|---|---|---|---|---|---|
RM | SA4990 | SA4 | A4_COD | - | XXX | XXX |
Campo(s) destino | Valor atribuído pós integração do XML de exemplo | Tag(s) no XML que atribuiu(ram) a informação |
---|---|---|
A4_FILIAL | 01 | <BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido) |
Campo | Tag que levá seu valor/conteúdo ao respectivo campo | Valores possíveis | Onde geralmente está localizada no XML | Necessita 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 |
- Fontes, Considerações e Premissas
- I. ADAPTER
- II. De/Para de Empresa/Filial
- III. Campos "De/Para de Mensagem Unica!
- IV. Retorno da integração (XX3)
- De/Para de Mensagem Unica criado com a integração
- Campos integrados com o exemplo (Resultado da integração)
- Tags possíveis
1 - Integração XML: COMMERCIALFAMILY (Categorias de Produto) em construçã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> e <Code></Code>
[CAMPO LIVRE] - ACU_DESC
- <CompleteDescription></CompleteDescription>
- FATA140: Fonte destino
- FATI140: Fonte integrador
Tabela: XX4
Rotina: (CFGA020 - Adapter E.A.I.)
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)
Tabela: XXD
Rotina: (APCFG050 - De/para Empresas Mensagem Unica)
XXD_REFER = Conteúdo da Tag do XML <ProductName> (RM)
XXD_COMPA = Conteúdo da Tag do XML <CompanyId>
XXD_BRANCH = Conteúdo da Tag do XML <BranchId> [Se estiver vazia no XML, o campo fica vazio.]
XXD_EMPPRO = Empresa do Protheus recebedora
XXD_FILPRO = Filial no Protheus recebedor [Dentro da empresa]
XXD_REFER = RM
XXD_COMPA = 20
XXD_BRANCH = 03
XXD_EMPPRO = 99
XXD_FILPRO = 01
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.
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.
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*) |
---|---|---|---|---|---|---|
RM | ACU990 | ACU | ACU_COD | - | XXX | XXX |
Campo(s) destino | Valor atribuído pós integração do XML de exemplo | Tag(s) no XML que atribuiu(ram) a informação |
---|---|---|
ACU_FILIAL | 01 | <BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido) |
Campo | Tag que levá seu valor/conteúdo ao respectivo campo | Valores possíveis | Onde geralmente está localizada no XML | Necessita 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 |
- Fontes, Considerações e Premissas
- I. ADAPTER
- II. De/Para de Empresa/Filial
- III. Campos "De/Para de Mensagem Unica!
- IV. Retorno da integração (XX3)
- De/Para de Mensagem Unica criado com a integração
- Campos integrados com o exemplo (Resultado da integração)
- Tags possíveis
Integração XML: PRICELISTHEADERITEM em construçã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
- OMSA010: Fonte destino
- OMSI010: Fonte integrador
Tabela: XX4
Rotina: (CFGA020 - Adapter E.A.I.)
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)
Tabela: XXD
Rotina: (APCFG050 - De/para Empresas Mensagem Unica)
XXD_REFER = Conteúdo da Tag do XML <ProductName> (RM)
XXD_COMPA = Conteúdo da Tag do XML <CompanyId>
XXD_BRANCH = Conteúdo da Tag do XML <BranchId> [Se estiver vazia no XML, o campo fica vazio.]
XXD_EMPPRO = Empresa do Protheus recebedora
XXD_FILPRO = Filial no Protheus recebedor [Dentro da empresa]
XXD_REFER = RM
XXD_COMPA = 12
XXD_BRANCH = 34
XXD_EMPPRO = 99
XXD_FILPRO = 01
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.
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.
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*) |
---|---|---|---|---|---|---|
RM | DA0990 | DA0 | DA0_CODPRO | - | XXX | XXX |
Campo(s) destino | Valor atribuído pós integração do XML de exemplo | Tag(s) no XML que atribuiu(ram) a informação |
---|---|---|
DA0_FILIAL | 01 | <BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido) |
Campo | Tag que levá seu valor/conteúdo ao respectivo campo | Valores possíveis | Onde geralmente está localizada no XML | Necessita 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 |
- Fontes, Considerações e Premissas
- I. ADAPTER
- II. De/Para de Empresa/Filial
- III. Campos "De/Para de Mensagem Unica!
- IV. Retorno da integração (XX3)
- De/Para de Mensagem Unica criado com a integração
- Campos integrados com o exemplo (Resultado da integração)
- Tags possíveis
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
- MATI461: Fonte destino
- MATA461: Fonte integrador
Tabela: XX4
Rotina: (CFGA020 - Adapter E.A.I.)
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)
Tabela: XXD
Rotina: (APCFG050 - De/para Empresas Mensagem Unica)
XXD_REFER = Conteúdo da Tag do XML <ProductName> (RM)
XXD_COMPA = Conteúdo da Tag do XML <CompanyId>
XXD_BRANCH = Conteúdo da Tag do XML <BranchId> [Se estiver vazia no XML, o campo fica vazio.]
XXD_EMPPRO = Empresa do Protheus recebedora
XXD_FILPRO = Filial no Protheus recebedor [Dentro da empresa]
XXD_REFER = RM
XXD_COMPA = 77
XXD_BRANCH = 77
XXD_EMPPRO = 99
XXD_FILPRO = 01
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.
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.
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*) |
---|---|---|---|---|---|---|
RM | SF2990 | SF2 | F2_COD | - | XXX | XXX |
Campo(s) destino | Valor atribuído pós integração do XML de exemplo | Tag(s) no XML que atribuiu(ram) a informação |
---|---|---|
F2_FILIAL | 01 | <BranchId>1</BranchId> (De/Para de Empresa/Filial envolvido) |
Campo | Tag que levá seu valor/conteúdo ao respectivo campo | Valores possíveis | Onde geralmente está localizada no XML | Necessita 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
Nesse menu interativo há o caminho das rotinas, todos os campos e tabelas envolvidos na integração de faturamento no Protheus recebendo do RM.
- 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]
- I. Campos "Adapter E.a.i."
- II. Campos "De/Para Mensagem Unica"
- III. Campos "De/Para Mensagem Unica"
- Retorno da Integração
- "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
"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
"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]
- 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
-
- 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
- XX3 - Campos do Schedule (Retorno da Integração)
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
-
- 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
- PMSI200
- PMSI200A
- PMSI200B
- PMSI201
- PMSI201A
- PMSI203
5. Perguntas mais usuais (F.A.Q.)
- Clientes (MATI030)
- Pedido de Venda (MATI410)
- Condição de Pagamento (MATI360)
- Categoria de Produtos (FATI140)
- Vendedores (MATI040)
- Transportadoras (MATI050)
- Documentos de Saída (MATI461)
- Tabelas de Preço (OMSI010)
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
Não há KCS de dúvida sobre essa integração!
Não há KCS de dúvida sobre essa integração!
Não há KCS de dúvida sobre essa integração!
Não há KCS de dúvida sobre essa integração!
Não há KCS de dúvida sobre essa integração!
Não há KCS de dúvida sobre essa integração!
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
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".
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.
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.
9. Pontos de Entrada
Sessão que exibe os pontos de entrada de cada Integração específica (Adapter).
- Pedido de Venda (MATI410/B)
- Clientes (MATI030)
- Condição de Pagamento (MATI360)
- Categoria de Produtos (FATI140)
- Vendedores (MATI040)
- Transportadoras (MATI050)
- Documentos de Saída (MATI461)
- Tabelas de Preço (OMSI010)
MATI410B
MATI410 (.XML)
- Não há pontos de entrada para Integração de Clientes via XML.
- Não há pontos de entrada para Integração de Condições de Pagamento via XML.
- Não há pontos de entrada para Integração de Categorias de Produtos via XML.
- Não há pontos de entrada para Integração de Vendedores via XML.
- Não há pontos de entrada para Integração de Transportadoras via XML.
- Não há pontos de entrada para Integração de Documentos de Saída via XML.
- 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)!
- Sem rótulos