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 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 | ClassValueInternalId | C2_CLVL | Não | ClassValueCode | C2_CLVL | 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.
- 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 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. - 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 SD4 | Obrigatório? |
---|
ProductionOrderNumber | D4_OP. | Não | MaterialID | D4_COD | Sim | MaterialCode | D4_COD | Sim | ScriptCode | D4_ROTEIRO | Não | ActivityCode | D4_OPERAC | Não | WarehouseCode | D4_LOCAL | Não | LotCode | D4_LOTECTL | Não | MaterialDate | D4_DATA | Não | MaterialQuantity | D4_QUANT e D4_QTDEORI | Sim | PertMaterialNumber | D4_TRT | Nã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 SDC | Obrigatório? |
---|
SubLoteCode | D4_NUMLOTE | Sim se o produto controla Sub-lote | LocationCode | DC_LOCALIZ | Sim se o produto controla endereço | AllocationQuantity | DC_QUANT | Sim | NumberSeries | DC_NUMSERI | Sim se o produto controla Série |
Os demais campos da SDC são criados conforme relacionamento da tabela SD4.
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 NLI | Obrigatório? |
---|
ClassValueInternalId | NLI_CLVAL. | Não | ClassValueCode
| NLI_CLVAL
| Não | FarmInternalId | NLI_FAZ | Não | FarmCode | NLI_FAZ | Não | ComponentQuantity | NLI_QTCOMP | Não | PMSQuantity | NLI_PMSQTD | Não | PGQuantity | NLI_PGQTD | Não | PopulationQuantity | NLI_POPQTD | Não | NumberOfSieve | NLI_NUMPEN | Não | QuantityProductiveArea | NLI_QTDPAR | Não | CultureInternalId | NLI_CULTRA | Não | CultureCode | NLI_CULTRA | Não | CostCenterInternalId | NLI_CC | Não | CostCenterCode | NLI_CC | Não | PlantHealthInternalId | NLI_FITSSA | Não | PlantHealthCode | NLI_FITSSA | Não | UserRequesterInternalId | N/A |
| UserRequesterCode | NLI_REQCOD | Não | UserRequesterName | NLI_REQNOM | Não |
Os demais campos da NLI são criados conforme relacionamento da tabela SD4. Para cada SD4 haverá uma NLI.
|
- O envio de ordens de produção por integrações do EAI ainda não está disponível.
|
|