Árvore de páginas

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 superiores à 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.

A seguir 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 ProductionOrderCampo correspondente da tabela SC2Obrigatório?
ProductionOrderUniqueIDUtilizada no DE/PARA do EAI.Sim
NumberC2_NUM+C2_ITEM+C2_SEQUEN+C2_ITEMGRDNão
ItemInternalIDC2_PRODUTOSim
ItemCodeC2_PRODUTO
QuantityC2_QUANTSim
StartOrderDateTimeC2_DATPRISim
EndOrderDateTimeC2_DATPRFSim
WarehouseCodeC2_LOCALNão
TypeC2_TPPRNão
UnitOfMeasureCodeC2_UMNão
ScriptCodeC2_ROTEIRONão
EmissionDateC2_EMISSAONão
PriorityC2_PRIORNão
ClassValueInternalIdC2_CLVLNão
ClassValueCodeC2_CLVLNão

Observações (Recebimento de ordens)

  • 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.
  • A TAG ClassValueCode será utilizada apenas na ausência da tag ClassValueInternalID. Ambas as tags identificam a Classe de Valor do Produto. A diferença entre elas, é que a tag ClassValueInternalID possui o identificador externo da Classe, e este identificador será utilizado para buscar o código da Classe 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 ClassValueCode possui diretamente o código da Classe 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 ClassValueInternalID.
  • 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 TYPEValor registrado na ordem de produção
    1I - Interno
    2E - Externa
    Qualquer outro valorO - 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.

  • Não está sendo considerada a tag ListOfActivityOrders e será obedecido os cadastros de engenharia do Protheus. O recebimento desta informação será possível em desenvolvimento futuro.
  • A TAG ListOfMaterialOrders é de preenchimento opcional e será tratada da seguinte forma:
    • Na operação de inclusão da ordem de produção, será gerado os empenhos de acordo com a tag ListOfMaterialOrders. Na ausência da tag ListOfMaterialOrders, a geração de empenhos, operações e ordens intermediárias da ordem irá seguir os cadastros da engenharia do Protheus.
    • Na operação de alteração da ordem de produção, terá a seguinte regra:
      • Se houver a TAG ListOfMaterialOrders e não houver dados na TAG Material Orders, serão excluídos os empenhos existentes. Se houver ordens intermediárias, também serão excluídos juntamente com os seus empenhos.
      • Se não houver a tag ListOfMaterialOrders, não serão alterados os empenhos já existentes na ordem de produção
      • Se houver a TAG ListOfMaterialOrders e há dados na TAG Material Orders, serão excluídos os empenhos existentes. Se houver ordens intermediárias, também serão excluídos juntamente com os seus empenhos e serão criados os novos empenhos com base nos dados passados na TAG ListOfMaterialOrders.
    • Se um dos produtos da TAG ListOfMaterialOrders controla endereço ou série, deve ser preenchida a TAG ListOfAllocatedMaterial
    • A TAG ListOfMaterialOrders está descrita abaixo e qual é o campo correspondente à informação recebida nas tabelas do Protheus:

      A tabela SD4 deve ser gerada de acordo com as tags do XML definidas abaixo:

      Tag XML (Dentro da ListOfMaterialOrder->MaterialOrder)Campo correspondente da tabela SD4Obrigatório?
      ProductionOrderNumberD4_OP.Não

      MaterialID

      D4_CODSim
      MaterialCodeD4_CODSim
      ScriptCodeD4_ROTEIRONão
      ActivityCodeD4_OPERACNão
      WarehouseCodeD4_LOCALNão
      LotCodeD4_LOTECTLNão
      MaterialDateD4_DATANão
      MaterialQuantityD4_QUANT e D4_QTDEORISim
      PertMaterialNumberD4_TRTNão


      • Cada empenho, pode ter uma lista com o endereçamento do empenho. Essas informações estão descritas na tag ListOfAllocatedMaterial, e são salvas na tabela SDC. As tags utilizadas na ListOfAllocatedMaterial estão descritas abaixo:

        Tag XML (Dentro da ListOfMaterialOrder->MaterialOrder-> ListOfAllocatedMaterial->AllocatedMaterial)Campo correspondente da tabela SDCObrigatório?
        SubLoteCodeD4_NUMLOTESim se o produto controla Sub-lote
        LocationCodeDC_LOCALIZSim se o produto controla endereço
        AllocationQuantityDC_QUANTSim
        NumberSeriesDC_NUMSERISim se o produto controla Série

        Os demais campos da SDC são criados conforme relacionamento da tabela SD4.

        Não é permitido informar diferentes sub-lotes para uma mesma lista de materiais.


    • Para a integração do PIMS, foi gerada as TAG´s abaixo:

      A tabela NLI deve ser gerada de acordo com as tags do XML definidas abaixo:

      Tag XML (Dentro da ListOfMaterialOrder->MaterialOrder)Campo correspondente da tabela NLIObrigatório?
      ClassValueInternalIdNLI_CLVAL.Não

      ClassValueCode

      NLI_CLVAL
      Não
      FarmInternalIdNLI_FAZNão
      FarmCodeNLI_FAZNão
      ComponentQuantityNLI_QTCOMPNão
      PMSQuantityNLI_PMSQTDNão
      PGQuantityNLI_PGQTDNão
      PopulationQuantityNLI_POPQTDNão
      NumberOfSieveNLI_NUMPENNão
      QuantityProductiveAreaNLI_QTDPARNão
      CultureInternalId

      NLI_CULTRA

      Não
      CultureCodeNLI_CULTRANão
      CostCenterInternalIdNLI_CCNão
      CostCenterCodeNLI_CCNão
      PlantHealthInternalIdNLI_FITSSANão
      PlantHealthCodeNLI_FITSSANão
      UserRequesterInternalIdN/A
      UserRequesterCodeNLI_REQCODNão
      UserRequesterNameNLI_REQNOMNão

      Os demais campos da NLI são criados conforme relacionamento da tabela SD4.

      Para cada SD4 haverá uma NLI.

Observações (Envio de ordens)

  • 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>
Exemplo de XML de recebimento, para operação de EXCLUSÃ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>delete</Event>
      </BusinessEvent>
      <BusinessContent>
         <ProductionOrderUniqueID>ORDERUNIQUEIDEXTERNAL</ProductionOrderUniqueID>
      </BusinessContent>
   </BusinessMessage>
</TOTVSMessage>
Exemplo de XML de recebimento, para operações de INCLUSÃO ou ALTERAÇÃO de ordens de produçãocom a tag ListOfMaterialOrders
			<?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>235</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|IPA</ItemInternalID>
			         <ItemCode>PA</ItemCode>
			         <Quantity>4</Quantity>
			         <StartOrderDateTime>2018-10-31</StartOrderDateTime>
			         <EndOrderDateTime>2018-10-31</EndOrderDateTime>
			         <WarehouseCode>01</WarehouseCode>
			         <Type>1</Type>
			         <UnitOfMeasureCode>UN</UnitOfMeasureCode>
			         <EmissionDate>2018-10-26</EmissionDate>
			         <Priority>450</Priority>
			         <ListOfMaterialOrders>
			         		<MaterialOrder>
			         			<ProductionOrderNumber></ProductionOrderNumber>
			         			<ScriptCode>01</ScriptCode>
			         			<WarehouseCode>01</WarehouseCode>
			         			<MaterialCode>MP1</MaterialCode>
			         			<MaterialDate>2018-10-31</MaterialDate>
			         			<MaterialQuantity>2</MaterialQuantity>
			         			<PertMaterialNumber>001</PertMaterialNumber>
			         		</MaterialOrder>	
			         		<MaterialOrder>
			         			<ProductionOrderNumber></ProductionOrderNumber>
			         			<ScriptCode>01</ScriptCode>
			         			<WarehouseCode>01</WarehouseCode>
			         			<MaterialCode>MPENDERECO</MaterialCode>
			         			<MaterialDate>2018-10-31</MaterialDate>
			         			<MaterialQuantity>2</MaterialQuantity>
			         			<PertMaterialNumber>002</PertMaterialNumber>
			         			<ListOfAllocatedMaterial>
			         				<AllocatedMaterial>
									<LocationCode>END1</LocationCode>
									<AllocationQuantity>1</AllocationQuantity>
			         				</AllocatedMaterial>
			         				<AllocatedMaterial>
			         					<LocationCode>END2</LocationCode>
			         					<AllocationQuantity>1</AllocationQuantity>
			         				</AllocatedMaterial>		         			
			         			</ListOfAllocatedMaterial>
			         		</MaterialOrder>
			         </ListOfMaterialOrders>
			      </BusinessContent>
			   </BusinessMessage>
			</TOTVSMessage>         
		
Exemplo de XML de recebimento, para operações de INCLUSÃO/ALTERAÇÃO de ordens de produção com a tag ListOfMaterialOrders com integração com o PIMS
			<?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>367</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>367</ProductionOrderUniqueID>
			         <Number></Number>
			         <ItemCode>PA</ItemCode>
			         <Quantity>4</Quantity>
			         <StartOrderDateTime>2018-11-07</StartOrderDateTime>
			         <EndOrderDateTime>2018-11-28</EndOrderDateTime>
			         <WarehouseCode>01</WarehouseCode>
			         <Type>1</Type>
			         <UnitOfMeasureCode>UN</UnitOfMeasureCode>
			         <EmissionDate>2018-10-07</EmissionDate>
			         <Priority>450</Priority>
			         <ListOfMaterialOrders>
			         		<MaterialOrder>
			         			<ProductionOrderNumber></ProductionOrderNumber>
			         			<ScriptCode>01</ScriptCode>
			         			<WarehouseCode>01</WarehouseCode>
			         			<MaterialCode>MP1</MaterialCode>
			         			<MaterialDate>2018-11-07</MaterialDate>
			         			<MaterialQuantity>4</MaterialQuantity>
			         			<PertMaterialNumber>001</PertMaterialNumber>
			         			<ClassValueInternalId>02</ClassValueInternalId>
			         			<FarmInternalId>001</FarmInternalId>
			         			<ComponentQuantity>20</ComponentQuantity>
			         			<PMSQuantity>15</PMSQuantity>
			         			<PGQuantity>25</PGQuantity>
			         			<PopulationQuantity>35</PopulationQuantity>
			         			<NumberOfSieve>01</NumberOfSieve>
			         			<QuantityProductiveArea>5000</QuantityProductiveArea>
			         			<CultureInternalId>01</CultureInternalId>
			         			<CostCenterInternalId>0010</CostCenterInternalId>
			         			<PlantHealthCode>10</PlantHealthCode>
			         			<UserRequesterCode>Admin</UserRequesterCode>
							<UserRequesterName>Admin</UserRequesterName>
			         		</MaterialOrder>	
			         		<MaterialOrder>
			         			<ProductionOrderNumber></ProductionOrderNumber>
			         			<ScriptCode>01</ScriptCode>
			         			<WarehouseCode>01</WarehouseCode>
			         			<MaterialCode>MPENDERECO</MaterialCode>
			         			<MaterialDate>2018-11-07</MaterialDate>
			         			<MaterialQuantity>4</MaterialQuantity>
			         			<PertMaterialNumber>002</PertMaterialNumber>
			         			<ClassValueInternalId>02</ClassValueInternalId>
			         			<FarmInternalId>001</FarmInternalId>
			         			<ComponentQuantity>20</ComponentQuantity>
			         			<PMSQuantity>42</PMSQuantity>
			         			<PGQuantity>52</PGQuantity>
			         			<PopulationQuantity>42</PopulationQuantity>
			         			<NumberOfSieve>01</NumberOfSieve>
			         			<QuantityProductiveArea>9000</QuantityProductiveArea>
			         			<CultureInternalId>01</CultureInternalId>
			         			<CostCenterInternalId>0010</CostCenterInternalId>
			         			<PlantHealthCode>10</PlantHealthCode>
			         			<UserRequesterCode>Admin</UserRequesterCode>
							<UserRequesterName>Admin</UserRequesterName>
			         			<ListOfAllocatedMaterial>
			         				<AllocatedMaterial>
									<LocationCode>END1</LocationCode>
									<AllocationQuantity>2</AllocationQuantity>
			         				</AllocatedMaterial>
			         				<AllocatedMaterial>
			         					<LocationCode>END2</LocationCode>
			         					<AllocationQuantity>2</AllocationQuantity>
			         				</AllocatedMaterial>		         			
			         			</ListOfAllocatedMaterial>
			         		</MaterialOrder>
			         </ListOfMaterialOrders>
			      </BusinessContent>
			   </BusinessMessage>
			</TOTVSMessage>