- Criado por Vinicius Domingues da Silva Fonseca, última alteração em 13 set, 2024
Produto: | Protheus | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Versões: | A partir da 12.1.33 | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ocorrência: | Explicativo sobre todo o processo de integrações EAI do módulo PMS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Ambiente: | PMS (SIGAPMS) | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Índice
1. 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 (Tabela XX4, campo 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çõesQuando 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 vinculada 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. 3. Como integrar Tarefa - "TASKPROJECT" (PMSA203) Parâmetros e requisitos na integração da Tarefa:1: Parâmetro MV_PMSCAL
2: Parâmetro MV_INTCAL
3: Não pode haver mesma tarefa na mesma EDT informada. Há 3 passos para a integração (1 - Adapter), (2 - De/Para de Empresa/Filial) e (3 - De/Para de Mensagens Únicas):
Exemplo do EAI
<TOTVSMessage> <MessageInformation version="2.000"> <UUID>00269792-32c7-4da3-b547-3d913f89b170</UUID> <Type>BusinessMessage</Type> <Transaction>TASKPROJECT</Transaction> <StandardVersion>1.000</StandardVersion> <SourceApplication>RM</SourceApplication> <CompanyId>1</CompanyId> <BranchId>1</BranchId> <Product name="RM" version="12.1.2306.0"/> <GeneratedOn>2023-09-18T18:55:27</GeneratedOn> <DeliveryType>Sync</DeliveryType> </MessageInformation> <BusinessMessage> <BusinessEvent> <Entity>TASKPROJECT</Entity> <Event>Upsert</Event> </BusinessEvent> <BusinessContent> <CompanyId>1</CompanyId> <BranchId>1</BranchId> <CompanyInternalId>1|1</CompanyInternalId> <ShortCode>99</ShortCode> <Code>001</Code> <InternalId>79B32769-5DE1-4F02-9BFE-6056481D3D67</InternalId> <Name>RETROESCAVADEIRA</Name> <Description>RETROESCAVADEIRA SOBRE RODAS COM CARREGADEIRA</Description> <ProjectShortCode>1</ProjectShortCode> <ProjectInternalId>7871C3B8-AC91-492B-9128-9526FC847CBE</ProjectInternalId> <UnitOfMeasureCode>CHP</UnitOfMeasureCode> <Amount>100.00000000</Amount> <UnitCost>75.0000</UnitCost> <TotalCost>7500.0000</TotalCost> <UnitValue>90.0525</UnitValue> <TotalValue>9005.2500</TotalValue> <ParentNode>97</ParentNode> <ParentNodeInternalId>EC7D9DE9-E392-4A0D-833B-B3B87532E074</ParentNodeInternalId> <UnitOfMeasureInternalId>BBF4A730-A5AB-4919-9569-963765A547A0</UnitOfMeasureInternalId> <Level>5</Level> </BusinessContent> </BusinessMessage> </TOTVSMessage>
É necessário possuir os De/Para de Mensagem Unica nos códigos de Id "internos":
A integração EAI faz as mesmas coisas que o cadastro manual dentro no Protheus, se manualmente funciona, pela integração deve funcionar, os gatilhos criados manualmente também são ativos na integração EAI. 1 - Verificar o mesmo processo no ambiente de homologação sem customizações EAI e sem customizações em rotinas do PMS (Exemplo: Projeto - PMSA200]
Como retirar todos os pontos de entrada
1. Utilize a chave IXBLOG=NORUN: MP - FAT - Chave IXBLOG 2. desative também alterando no Configurador através do caminho abaixo: Ambiente - Cadastro - Catalogo de Personalizações - Posicione na Customização - Alterar - Muda para 2 - Desabilitado nos detalhes da tela de alteração. 3. Se utiliza a versão 12.1.33 ou superior, retire o RPO Custom da pasta de RPO. Priorize a orientação de retirar ele da pasta, renomear pode corromper o arquivo. Caso gere error.log encaminhe ao suporte para analise. 2 - Verificar se as rotinas do PMS estão atualizadas com as mais recentes atualizações para sua versão correspondente
Caso não apareça dados, copia e cole novamente, marcando a opção "Todos pacotes disponíveis" 3 - Verificar se não há gatilhos customizados interagindo na integração e não deixando os valores serem passados corretamente, verifique se há apenas esses parâmetros do padrão nas tabelas "AFC", "AF8" e "AF9": Gatilhos do padrão da AFC
Campo AFC_REVISA (do exemplo hipotético) no padrão Envie para o suporte no ticket:A - Log Profiler do cadastro manual do registro, com as mesmas informações que está tentando integrar (mesmos dados da mensagem EAI envio, para ter essa mensagem, cheque aqui como: OINF0008 - Como extrair o XML na integração EAI (Protheus)) B - Exporta-dados C - Todos os gatilhos das tabelas "AFC", "AF8" e "AF9" (por print) D - Print das abas do configurador "Campo", "Validações" e 'Opções" do campo com erro no retorno (o campo/tag que fica como Inválido) Pedido de Venda com produtos com projetos - "ORDER" (MATA410) Parâmetros e requisitos na integração da Tarefa:1: Parâmetro MV_SLMTS
2: Parâmetro MV_SLMNTPV
3: Parâmetro MV_SLMCOND
4: Não pode haver duas vezes o mesmo código de pedido de venda integrados com a mesma tag "InternalId", do contrário causará erros de numeração/duplicação e não integrará. Há 3 passos para a integração (1 - Adapter), (2 - De/Para de Empresa/Filial) e (3 - De/Para de Mensagens Únicas):
Exemplo do EAI
<?xml version="1.0"?> <TOTVSMessage> <MessageInformation version="3.006"> <UUID>00039e5a-238f-4b4d-9d2a-1ad6b1882739</UUID> <Type>BusinessMessage</Type> <Transaction>ORDER</Transaction> <StandardVersion>1.000</StandardVersion> <SourceApplication>RM</SourceApplication> <CompanyId>2</CompanyId> <BranchId>1</BranchId> <Product version="12.1.2302.0" name="RM"/> <GeneratedOn>2023-09-18T14:42:32</GeneratedOn> <DeliveryType>Sync</DeliveryType> </MessageInformation> <BusinessMessage> <BusinessEvent> <Entity>ORDER</Entity> <Event>Upsert</Event> </BusinessEvent> <BusinessContent> <CompanyId>2</CompanyId> <CompanyInternalId>2|1</CompanyInternalId> <InternalId>001353E5-A7A9-42E3-907A-CF52AEA27F09</InternalId> <BranchId>1</BranchId> <OrderId>1398</OrderId> <RegisterDate>2023-09-18T00:00:00</RegisterDate> <FreightValue>0</FreightValue> <ordertypecode/> <CustomerInternalId>A8BB1EE5-D4B5-44B3-A0E2-2E8BC7F03E94</CustomerInternalId> <CustomerCode>01;C000032</CustomerCode> <CustomerOrderId>A8BB1EE5-D4B5-44B3-A0E2-2E8BC7F03E94</CustomerOrderId> <PaymentConditionInternalId>BC020404-E3E7-4B3D-8D01-06D4192D3F44</PaymentConditionInternalId> <OrderPurpose>2</OrderPurpose> <UserInternalId>mestre</UserInternalId> <PaymentTermCode>BC020404-E3E7-4B3D-8D01-06D4192D3F44</PaymentTermCode> <CurrencyCode>R$</CurrencyCode> <CurrencyId>174E4DD3-16DE-499C-B3AC-83B7FAD41233</CurrencyId> <Observation/> <TaskCostAssignmentDocument>01</TaskCostAssignmentDocument> <SalesOrderItens> <Item> <CompanyId>2</CompanyId> <BranchId>1</BranchId> <OrderId>1398</OrderId> <OrderItem>1</OrderItem> <InternalId>0A942C22-0ED7-4C3D-AB6B-77E3385E03B3</InternalId> <ItemCode>238</ItemCode> <ItemInternalId>CBE85E22-A440-4528-A659-A9696F814E9C</ItemInternalId> <UnitOfMeasureInternalId>7B96CC53-F75F-4427-BD2C-10DFA4E60068</UnitOfMeasureInternalId> <itemunitofmeasure>UN</itemunitofmeasure> <CostCenter/> <Observation/> <WarehouseInternalId>9C0FC725-E4BF-4764-B3F5-8CDCCC0ECBC9</WarehouseInternalId> <Quantity>1.0000</Quantity> <UnityPrice>16460.5332000000</UnityPrice> <TotalPrice>16460.5332</TotalPrice> <FreightValue>0</FreightValue> <RetentionValue>0.0000</RetentionValue> <DeductionValue>0.0000</DeductionValue> <ItemDiscounts> <ItemDiscount>0</ItemDiscount> </ItemDiscounts> <ListOfApportionOrderItem> <ApportionOrderItem> <InternalId>CD9852D8-C9EA-4B3C-8B0F-F8620205F4BA</InternalId> <CostCenterInternalId>217D5E33-6C44-4C97-94AF-B834C6435E8E</CostCenterInternalId> <ProjectInternalId>2|81</ProjectInternalId> <TaskInternalId>2|81|206|0|0</TaskInternalId> <Value>0</Value> <Percentual>100.0000</Percentual> <SubProjectInternalId>2|81|206|0|0</SubProjectInternalId> <Quantity>1.00000000</Quantity> </ApportionOrderItem> </ListOfApportionOrderItem> <OTHER> <ADDFIELDS/> </OTHER> </Item> <Item> <CompanyId>2</CompanyId> <BranchId>1</BranchId> <OrderId>1398</OrderId> <OrderItem>2</OrderItem> <InternalId>1D9F9B40-0ED1-4265-B07A-5632FAF53EF6</InternalId> <ItemCode>238</ItemCode> <ItemInternalId>CBE85E22-A440-4528-A659-A9696F814E9C</ItemInternalId> <UnitOfMeasureInternalId>7B96CC53-F75F-4427-BD2C-10DFA4E60068</UnitOfMeasureInternalId> <itemunitofmeasure>UN</itemunitofmeasure> <CostCenter/> <Observation/> <WarehouseInternalId>9C0FC725-E4BF-4764-B3F5-8CDCCC0ECBC9</WarehouseInternalId> <Quantity>1.0000</Quantity> <UnityPrice>25488.4746000000</UnityPrice> <TotalPrice>25488.4746</TotalPrice> <FreightValue>0</FreightValue> <RetentionValue>0.0000</RetentionValue> <DeductionValue>0.0000</DeductionValue> <ItemDiscounts> <ItemDiscount>0</ItemDiscount> </ItemDiscounts> <ListOfApportionOrderItem> <ApportionOrderItem> <InternalId>68E4B029-E7CA-4D95-BF43-98BEC8A729CE</InternalId> <CostCenterInternalId>217D5E33-6C44-4C97-94AF-B834C6435E8E</CostCenterInternalId> <ProjectInternalId>2|81</ProjectInternalId> <TaskInternalId>2|81|207|0|0</TaskInternalId> <Value>0</Value> <Percentual>100.0000</Percentual> <SubProjectInternalId>2|81|207|0|0</SubProjectInternalId> <Quantity>1.00000000</Quantity> </ApportionOrderItem> </ListOfApportionOrderItem> <OTHER> <ADDFIELDS/> </OTHER> </Item> <Item> <CompanyId>2</CompanyId> <BranchId>1</BranchId> <OrderId>1398</OrderId> <OrderItem>3</OrderItem> <InternalId>F3D558D9-6982-48E0-BAC5-60BB44ADB00B</InternalId> <ItemCode>238</ItemCode> <ItemInternalId>CBE85E22-A440-4528-A659-A9696F814E9C</ItemInternalId> <UnitOfMeasureInternalId>7B96CC53-F75F-4427-BD2C-10DFA4E60068</UnitOfMeasureInternalId> <itemunitofmeasure>UN</itemunitofmeasure> <CostCenter/> <Observation/> <WarehouseInternalId>9C0FC725-E4BF-4764-B3F5-8CDCCC0ECBC9</WarehouseInternalId> <Quantity>1.0000</Quantity> <UnityPrice>233.6922000000</UnityPrice> <TotalPrice>233.6922</TotalPrice> <FreightValue>0</FreightValue> <RetentionValue>0.0000</RetentionValue> <DeductionValue>0.0000</DeductionValue> <ItemDiscounts> <ItemDiscount>0</ItemDiscount> </ItemDiscounts> <ListOfApportionOrderItem> <ApportionOrderItem> <InternalId>0FBA2AF5-DDD3-4003-825B-0EE7C4FFFC92</InternalId> <CostCenterInternalId>217D5E33-6C44-4C97-94AF-B834C6435E8E</CostCenterInternalId> <ProjectInternalId>2|81</ProjectInternalId> <TaskInternalId>2|81|209|0|0</TaskInternalId> <Value>0</Value> <Percentual>100.0000</Percentual> <SubProjectInternalId>2|81|209|0|0</SubProjectInternalId> <Quantity>1.00000000</Quantity> </ApportionOrderItem> </ListOfApportionOrderItem> <OTHER> <ADDFIELDS/> </OTHER> </Item> </SalesOrderItens> <PAYMENTPLAN/> <OTHER> <ADDFIELDS/> </OTHER> <DeliveryAddress> <State/> <City/> </DeliveryAddress> <Discounts> <Discount>0</Discount> </Discounts> <ListOfCreditDocument/> </BusinessContent> </BusinessMessage> </TOTVSMessage>
É necessário possuir o seguinte Adapter: Adapter MATA410 "ORDER" - Pedido de Venda Adapter MATA360 "PAYMENTCONDITION" - Condição de Pagamento Adapter CTBA030 "COSTCENTER" - Centro de Custo Adapter CTBA140 "CURRENCY" - Moeda É necessário possuir os De/Para de Mensagem Unica nos códigos de Id "internos":
A integração EAI faz as mesmas coisas que o cadastro manual dentro no Protheus, se manualmente funciona, pela integração deve funcionar, os gatilhos criados manualmente também são ativos na integração EAI. 1 - Verificar o mesmo processo no ambiente de homologação sem customizações EAI e sem customizações em rotinas do PMS (Exemplo: Projeto - PMSA200]
Como retirar todos os pontos de entrada
1. Utilize a chave IXBLOG=NORUN: MP - FAT - Chave IXBLOG 2. desative também alterando no Configurador através do caminho abaixo: Ambiente - Cadastro - Catalogo de Personalizações - Posicione na Customização - Alterar - Muda para 2 - Desabilitado nos detalhes da tela de alteração. 3. Se utiliza a versão 12.1.33 ou superior, retire o RPO Custom da pasta de RPO. Priorize a orientação de retirar ele da pasta, renomear pode corromper o arquivo. Caso gere error.log encaminhe ao suporte para analise. 2 - Verificar se as rotinas do PMS estão atualizadas com as mais recentes atualizações para sua versão correspondente
Caso não apareça dados, copia e cole novamente, marcando a opção "Todos pacotes disponíveis" 3 - Verificar se não há gatilhos customizados interagindo na integração e não deixando os valores serem passados corretamente, verifique se há apenas esses parâmetros do padrão nas tabelas "AFC", "AF8" e "AF9": Gatilhos do padrão da SC5
Campo C6_VALOR (do exemplo hipotético) no padrão Envie para o suporte no ticket:A - Log Profiler do cadastro manual do registro, com as mesmas informações que está tentando integrar (mesmos dados da mensagem EAI envio, para ter essa mensagem, cheque aqui como: OINF0008 - Como extrair o XML na integração EAI (Protheus)) B - Exporta-dados C - Todos os gatilhos das tabelas "SC5" e "SC6" (por print) D - Print das abas do configurador "Campo", "Validações" e 'Opções" do campo com erro no retorno (o campo/tag que fica como Inválido)
|
- Sem rótulos