Produto: | Protheus |
Ocorrência: | Quais são as informações utilizadas na integração de ordens de produção através do EAI (Mensagem única)? |
Passo a passo: | Foi disponibilizada a opção de integração de ordens de produção (MATA650) por mensagem única. Para integrar as ordens de produção é utilizada a mensagem "ProductionOrder" com versões superioes à 2.000. Para habilitar a integração de ordens de produção, no cadastro de Adapter EAI (CFGA020) deverá ser informado o campo "Mensagem Única" = "1-Sim", no campo "Rotina" informar "MATA650", e no campo "Mensagem" informar "PRODUCTIONORDER". Para mais detalhes sobre o cadastro do Adapter EAI, consultar a documentação do EAI Protheus. Abaixo estão descritas as tags da mensagem ProductionOrder que são utilizadas, e qual é o campo correspondente à informação recebida nas tabelas do Protheus. TAG Mensagem ProductionOrder | Campo correspondente da tabela SC2 | Obrigatório? |
---|
ProductionOrderUniqueID | Utilizada no DE/PARA do EAI. | Sim | Number | C2_NUM+C2_ITEM+C2_SEQUEN+C2_ITEMGRD | Não | ItemInternalID | C2_PRODUTO | Sim | ItemCode | C2_PRODUTO | Quantity | C2_QUANT | Sim | StartOrderDateTime | C2_DATPRI | Sim | EndOrderDateTime | C2_DATPRF | Sim | WarehouseCode | C2_LOCAL | Não | Type | C2_TPPR | Não | UnitOfMeasureCode | C2_UM | Não | ScriptCode | C2_ROTEIRO | Não | EmissionDate | C2_EMISSAO | Não | Priority | C2_PRIOR | Não |
- A TAG ProductionOrderUniqueID SEMPRE deve ser utilizada. Se esta tag não estiver informada, será retornada mensagem de erro. Esta tag é utilizada para identificar a ordem de produção, e o seu valor será incluído como Chave Externa no DE/PARA do EAI. Nas operações de Atualização e Exclusão de ordens, esta TAG deve possuir o identificador EXTERNO da ordem que será atualizada ou excluída. Sempre que uma mensagem for recebida, será realizada a busca no DE/PARA do EAI com o valor recebido. Se o evento da mensagem for UPSERT e não existir registro no DE/PARA do identificador recebido, será assumida a operação de Inclusão de ordem. Caso exista registro no DE/PARA, será utilizada a operação de Atualização de ordem. Se o evento da mensagem for DELETE, a exclusão da ordem somente será realizada se for encontrado o identificador externo no DE/PARA do EAI.
- A TAG NUMBER identifica a numeração da ordem de produção. No recebimento das ordens de produção este valor é de uso opcional e será considerado apenas na inclusão de ordens, já que as ordens de produção do Protheus possuem numeração automática. Se for realizada a operação de inclusão de ordem, e possuir algum valor na tag Number, a ordem de produção será criada com a numeração recebida desde que não exista outra ordem com a mesma numeração na tabela SC2, e a numeração esteja no padrão utilizado para a numeração das ordens no Protheus (C2_NUM+C2_ITEM+C2_SEQUEN+C2_ITEMGRD).
- A TAG ItemCode será utilizada apenas na ausência da tag ItemInternalID. Ambas as tags identificam o código do Produto, e uma das duas deverá ser enviada na mensagem. A diferença entre elas, é que a tag ItemInternalID possui o identificador externo do Produto, e este identificador será utilizado para buscar o código do Produto nas tabelas de DE/PARA do EAI. Se não for encontrado o produto no DE/PARA do EAI, será retornado mensagem de erro. A tag ItemCode possui diretamente o código do produto utilizado no Protheus, e não passa por tratativas do DE/PARA do EAI. Se as duas tags estiverem informadas na mensagem, será utilizado sempre a tag ItemInternalID.
- Se não for recebido nenhum valor na tag WarehouseCode, a ordem de produção será criada utilizando o armazém padrão do produto (SB1.B1_LOCPAD).
A tag TYPE é de preenchimento opcional e o valor padrão considerado é 1 (ordem de produção interna). Pela definição da mensagem única, a tag Type possui diversos valores. Porém, as ordens de produção no Protheus possuem apenas três tipos, sendo eles: Interno, Externo e Outros. Para registrar a informação na ordem de produção, serão considerados os valores abaixo: Valor da tag TYPE | Valor registrado na ordem de produção |
---|
1 | I - Interno | 2 | E - Externa | Qualquer outro valor | O - Outros |
Na operação de Modificação de ordem, é possível alterar apenas as datas de início (C2_DATPRI) e entrega (C2_DATPRF), roteiro da ordem (C2_ROTEIRO), tipo produção (TYPE) e prioridade (C2_PRIOR). As demais informações recebidas na mensagem serão desconsideradas. - A geração de empenhos, operações e ordens intermediárias da ordem irá seguir os cadastros da engenharia do Protheus, não sendo consideradas as tags ListOfMaterialOrders e ListOfActivityOrders. O recebimento destas informações será possível em desenvolvimentos futuros.
|
- O envio de ordens de produção por integrações do EAI ainda não está disponível.
|
|
Observações: | Exemplo de XML de recebimento, para operações de INCLUSÃO ou ALTERAÇÃO de ordens de produção <?xml version="1.0" encoding="UTF-8" ?><TOTVSMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xmlschema/general/events/ProductionOrder_2_006.xsd"> <MessageInformation version="2.006"> <UUID>84</UUID> <Type>BusinessMessage</Type> <Transaction>ProductionOrder</Transaction> <StandardVersion>1.0</StandardVersion> <SourceApplication>PROTHEUS</SourceApplication> <CompanyId>99</CompanyId> <BranchId>01</BranchId> <UserId>000000</UserId> <Product name="PROTHEUS" version="12.1.017"/> <GeneratedOn>2018-10-01T09:30:04</GeneratedOn> <ContextName>PROTHEUS</ContextName> <DeliveryType>Sync</DeliveryType> </MessageInformation> <BusinessMessage> <BusinessEvent> <Entity>ProductionOrder</Entity> <Event>upsert</Event> </BusinessEvent> <BusinessContent> <ProductionOrderUniqueID>ORDERUNIQUEIDEXTERNAL</ProductionOrderUniqueID> <Number></Number> <ItemInternalID>99|01|INTEG-EAI-PA</ItemInternalID> <ItemCode>INTEG-EAI-PA</ItemCode> <Quantity>4</Quantity> <StartOrderDateTime>2018-10-03</StartOrderDateTime> <EndOrderDateTime>2018-10-03</EndOrderDateTime> <WarehouseCode>12</WarehouseCode> <Type>1</Type> <UnitOfMeasureCode>PC</UnitOfMeasureCode> <ScriptCode>01</ScriptCode> <EmissionDate>2018-10-01</EmissionDate> <Priority>450</Priority> </BusinessContent> </BusinessMessage> </TOTVSMessage> |
|

<?xml version="1.0" encoding="UTF-8" ?>
<TOTVSMessage xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="xmlschema/general/events/ProductionOrder_2_006.xsd">
<MessageInformation version="2.006">
<UUID>84</UUID>
<Type>BusinessMessage</Type>
<Transaction>ProductionOrder</Transaction>
<StandardVersion>1.0</StandardVersion>
<SourceApplication>PROTHEUS</SourceApplication>
<CompanyId>99</CompanyId>
<BranchId>01</BranchId>
<UserId>000000</UserId>
<Product name="PROTHEUS" version="12.1.017"/>
<GeneratedOn>2018-10-01T09:30:04</GeneratedOn>
<ContextName>PROTHEUS</ContextName>
<DeliveryType>Sync</DeliveryType>
</MessageInformation>
<BusinessMessage>
<BusinessEvent>
<Entity>ProductionOrder</Entity>
<Event>upsert</Event>
</BusinessEvent>
<BusinessContent>
<ProductionOrderUniqueID>PIMS000027</ProductionOrderUniqueID>
<Number></Number>
<ItemInternalID>99|01|INTEG-EAI-PA</ItemInternalID>
<ItemCode>INTEG-EAI-PA</ItemCode>
<Quantity>4</Quantity>
<StartOrderDateTime>2018-10-03</StartOrderDateTime>
<EndOrderDateTime>2018-10-03</EndOrderDateTime>
<WarehouseCode>12</WarehouseCode>
<Type>1</Type>
<UnitOfMeasureCode>PC</UnitOfMeasureCode>
<ScriptCode>01</ScriptCode>
<EmissionDate>2018-10-01</EmissionDate>
<Priority>450</Priority>
</BusinessContent>
</BusinessMessage>
</TOTVSMessage>