Histórico da Página
INTEGRAÇÃO PCP LOGIX X PPI-Multtask
Contexto de negócio (Introdução)
- MES
Manufacturing Execution Systems, ou simplesmente MES, é o termo utilizado para designar os sistemas focados no gerenciamento das atividades de produção e que estabelecem uma ligação direta entre o Planejamento e o Chão de Fábrica. Os sistemas MES geram informações precisas e em tempo real, que promovem a otimização de todas as etapas da produção, desde a emissão de uma ordem até o embarque dos produtos acabados.
A importância destes sistemas vem da lacuna que normalmente existe entre o ERP (Entreprise Resource Planning) e os softwares específicos da linha de produção. O MES pode importar dados do ERP e integrá-los com o dia a dia da produção, gerenciando e sincronizando as tarefas produtivas com o fluxo de materiais.
Considerando que na cadeia de suprimento o maior valor agregado costuma estar na produção, faz todo sentido investir em sistemas que otimizem o fluxo, controle e qualidade do material (Fonte: PPI-Multitask). - Planejamento e Controle da Produção
A reunião dos meios de produção (matéria-prima, mão de obra e equipamentos) possibilita a fabricação de produtos que surgem pela ação dos Sistemas produtivos. Os planos que servem de guia na execução e no controle da produção são comandados pelo órgão auxiliar denominado Planejamento e Controle da Produção (PCP), que dita normas à linha de produção, visando a um fluxo ordenado e contínuo do processo produtivo.
Sistemas Envolvidos
Descrição dos sistemas envolvidos no contexto de negócio (e que serão envolvidos na integração).
- LOGIX 12.1.17
- FRAME LOGIX 12.1.17
- PC-FACTORY (PPI MULTITASK)
Integração
O objetivo da Integração PC Factory (software MES da empresa PPI Multitask) X LOGIX é disponibilizar aos clientes TOTVS uma nova opção para controle da produção por meio da automação dos processos, permitindo a atualização e extração de informações de forma on-line de modo a simplificar o fluxo dos clientes.
Escopo
Permite a integração entre o módulo de Manufatura do Logix com o MES PC-Factory da PPI-Multitask, que tem como objetivo controlar os apontamentos das ordens de produções. O Logix tem como responsabilidade a criação das ordens de produção e o PC-Factory, os apontamentos.
A integração contempla as seguintes rotinas e processos:
- Parametrização: Permite parametrizar a utilização da integração, indicando se está ATIVA. Indica se ocorrerá a geração dos arquivos XMLs das informações que serão trafegadas entre os sistemas e, também possibilita definir os filtros que serão aplicados nas informações.
- Integradores: Os "adapters" são as funções responsáveis por enviar ou receber as informações que são trafegadas entre os sistemas Logix e PC-Factory. A integração contempla as seguintes informações: Item, local de estoque, máquinas, ordens de produção, roteiro, estrutura e endereço e receber apontamento de produção, apontamento de parada, motivo de parada e motivo de refugo.
- Gerenciamento TOTVS MES: Permite gerenciar as pendências de envio do Logix para o PC-Factory bem como verificar o histórico e erros do processo da integração.
- WebService: Permite processar os apontamentos de produção e parada enviados do PC-Factory para o Logix.
- Sincronização: Permite realizar a sincronização dos dados entre o Logix e o PC-Factory. Poderá enviar os dados dos Item, local de estoque, máquinas, ordens de produção, roteiro, estrutura e endereço
- Consulta ID MES : Permite verificar os IDs gerados para os produtos quando estiver parametrizado o uso de grade.
Nota:
Pré-requisitos instalação/implantação/utilização
Para a versão 12 do Logix, deve-se aplicar o pacote de atualizações a partir da versão 12.1.17.
Usar o pacote do do framework da 12.1.17.
Endereço de IP e porta liberada para execução do WebService. Estes dados serão utilizados no arquivo APPSERVER.INI na sessão WEBSERVICE.
Deve atualizar o arquivo APPSERVER.INI na sessão WEBSERVICE.
Exemplo :
;CONFIGURACAO WEBSERVICE
[WEBSERVICES]
Enable=1
Environment=migralgx
Conout=0
Trace=0
NameSpace=http://totvs.com
URLLocation=http://10.80.128.17:2347
Logix=1
[HTTP]
Enable=1
Port=8080
path=c:\totvs\bin\smartclient\
;FIM CONFIGURACAO WEBSERVICE
Instalação/Atualização
A integração Logix x PC-Factory PPI-Multitask é ativada por intermédio dos seguintes passos:
- Abrir o programa de Parâmetros da integração: MAN10538.
- Setar o campo Ativo para "Ativo".
- No campo Caminho Webservice informar a URL do WebService da PPI-Multitask.
- Verificar a conectividade do WebService por meio do botão Testar.
- Indicar se a integração irá gerar fisicamente os arquivos XML.
- Configurar os filtros para cada informação que será trafegada entre os sistemas.
- Confirmar a ativação por meio do botão CONFIRMA.
O botão de Testar verifica se é possível realizar a conexão com o WebService informado no campo Caminho. Este botão tem dois retornos:
- Conexão com o WebService realizada com Sucesso.
- Não foi possível realizar a conexão com o WebService do PC-Factory.
Selecionando o campo Gera XML, serão gerados os XML das mensagens trocadas. Se não estiver selecionado, será gravado apenas em tabelas. A geração dos arquivos não é obrigatória. Serve como uma ferramenta útil para encontrar problemas e poderá ser gravado no diretório de XMLs enviados com sucesso ou XMls pendentes.
Os nomes do arquivos seguirão o seguinte padrão:
OK_<MSG>_<DATAHORA>_<REGISTRO>
PEND_<MSG>_<DATAHORA>_<REGISTRO>
ERR_<MSG>_<DATAHORA>_<REGISTRO>
Em que: OK - Se mensagem entregue sem problemas
PEND- Se mensagem não foi enviada
ERR - Se mensagem enviada, porém retornou erro.
MSG - Nome da mensagem. Ex.: Item, Wharehouse, Workcenter, etc.
DATAHORA: Data e Hora do envio
REGISTRO: Código do registro que está sendo enviado. Ex.: Código do item, número da ordem, etc.
Para cada arquivo movimentado (item, local de estoque, máquinas, roteiro, estrutura, endereço e ordem de produção) terá um folder. Para cada folder, será possível montar filtros e definir parametrizações. Os filtros serão utilizados nas rotinas que enviarão informações ao PC-Factory, permitindo selecionar o que deve ser enviado. Serão exibidos os campos da tabela selecionada (folder) e operadores para que sejam montados os filtros. Se não existir nenhum filtro cadastrado todo registro incluído, alterado ou excluído será enviado ao PC-Factory. Para montar os filtros o usuário requer conhecimento do dicionário de dados pois é utilizado diretamente o nome das tabelas e dos campos.
Exemplo:
Montar um filtro para que somente seja enviado os itens que sejam classificados como Produzido . O filtro será: IES_TIP_ITEM = "P"
O envio de informações do Logix para o PC-Factory PPI-Multitask ocorre nas seguintes transações:
- Cadastro, alteração e exclusão de produto MAN10021, local de estoque SUP10002 e máquinas que pode ser arranjo - MAN10072 ou recurso - MAN10078;
- Cadastro e alteração de ordens MAN0515;
- Manutenção do Status da ordem MAN10055;
- Manutenção das operações MAN10030;
- Manutenção dos empenhos, MAN10029;
- Desmembramento das ordens MAN10034;
- Planejamento por Equipamento MAN10500;
- Cálculo do MRP MAN10255 ;
- Crianção manual de ordens MAN10031;
- Abertura automática MAN10032 e liberação automática MAN0860;
- Encerramento das ordens MAN0730;
- Cadastro, alteração e exclusão de estrutura, MAN10002;
- Cadastro, alteração e exclusão do endereço MAN10093 ou SUP1637;
- Cadastro, alteração e exclusão dos processos MAN10243.
O envio de informações do PC-Factory PPI-Multitask para o Logix ocorre nas seguintes transações:
- Cadastro de motivos de parada MAN10095;
- Cadastro de motivos de refugo MAN10026;
- Apontamento de produção e parada MAN8228;
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância das marcas e alinhamento com as diretivas definidas pelo Comitê de Integração TOTVS.
Suporte
O suporte aos recursos da Integração será de responsabilidade de todas as linhas, sendo assim as equipes de suporte dos produtos RM Conector e Backoffice Protheus estarão aptas a fazer a primeira análise e, quando necessário, repassar para a equipe mais adequada em cada caso.
Observação: Este modelo de suporte está sendo revisado pela TOTVS.
Transações/Entidades/Mensagens únicas
As seguintes transações serão trocadas entre a TOTVS e a PPI-Multitask:
Fluxo das Informações
Método | ID | Descrição | Origem | Destino | XSD (versões podem variar) | Programas | Tabela |
Cadastros | 01 | Item | Logix | PC-Factory | Item_4_001.xsd | MAN10021 | ITEM |
02 | Local de Estoque | Logix | PC-Factory | Warehouse_1_001.xsd | SUP10002 | LOCAL | |
03 | Máquinas | Logix | PC-Factory | Machine_1_001.xsd | MAN10072 MAN10078 | REC_ARRANJO RECURSO | |
05 | Estrutura | Logix | PC-Factory | ItemStructure_1_001 | MAN10002 | ESTRUT_GRADE | |
06 | Roteiro | Logix | PC-Factory | ItemScript_1_000 | MAN10243 | MAN_PROCESSO_ITEM | |
07 | Ordem de Produção | Logix | PC-Factory | ProductionOrder_2_005.xsd | MAN0515 MAN10255 MAN10500 MAN10030 MAN10029 MAN10055 MAN10034 MAN10031 MAN10032 MAN0860 MAN0730 | ORDENS | |
08 | Endereço | Logix | PC-Factory | AddressStock_1_000 | MAN10093 SUP1637 | SUP_ENDERECO_LOCAL | |
Processos | 09 | Motivo de Parada | PC-Factory | Logix | StopReason_1_000 | MAN10095 | MOT_PARADA |
10 | Motivo de Refugo | PC-Factory | Logix | WasteReason_1_000 | MAN10026 | DEFEITO | |
11 | Apontamento de Produção | PC-Factory | Logix | ProductionAppointment_2_002 | MAN8228 | MAN_APO_MESTRE MAN_ITEM_PRODUZIDO MAN_COMP_CONSUMIDO | |
12 | Apontamento de Parada | PC-Factory | Logix | StopReport_1_001 | MAN8228 | MAN_APO_MESTRE MAN_TEMPO_PRODUCAO |
Fluxo das Informações
Fluxo das informações das transações:
- Parametrização: MAN10538, permite parametrizar a integração TOTVS MES, indicando o que será trafegado entre os sistemas.
- Item, local de estoque,máquinas, estrutura, processo e endereço: no momento da criação, alteração ou exclusão de um produto no programa MAN10021, de um local de estoque no programa SUP10002, de um recurso no MAN10078 ou arranjo no MAN10072, de uma estrutura no MAN10002, de um processo no MAN10243 ou endereço no MAN10093 ou SUP1637, os programas verificam se a integração está ativa e, se estiver ativa, efetuam o envio do cadastro para o PC-Factory. Caso não ocorrer erro, o cadastro não apresentará nenhuma mensagem, porém se ocorrer erro será criada uma pendência de envio no programa MAN10540.
- Ordem de produção: no momento da criação ou alteração de uma ordem de produção, ou durante a alteração da situação de uma ordem (requisição, alteração de operações ou empenhos, MRP, criação de splits,etc), o programa irá verificar se a integração está ativa e, se estiver ativa, irá efetuar o envio do cadastro para o PC-Factory. Se não ocorrer erro, o cadastro não apresentará nenhuma mensagem. Caso ocorra erro, será gerada uma pendência de envio no programa MAN10540. Ao final do processo das rotinas que processam múltiplas ordens, como por exemplo o MRP, serão exibidos os que tiveram pendência de envio.
- Programa de gerenciamento TOTVS MES MAN10540 - este programa tem por função administrar as pendências/exceções referentes à integração que são criadas quando a mensagem não for enviada ao PC-Factory, sejam elas, pendências ou erro. Permite o reprocessamento de uma mensagem, exclusão de uma pendência e a visualização do XML, além de possuir filtro por data de envio, transação, tipo de pendência e rotina geradora. A rotina também permite consultar as mensagens enviadas com sucesso. Outra funcionalidade é a verificação das mensagens recebidas pelo PC-Factory, que são , motivos de parada, motivos de refugo, apontamento de parada e apontamento de produção.
- Programa de Sincronização MAN10541- permite o envio das informações do item, local de estoque, recurso/arranjo, roteiro, estrutura, endereço e ordem de produção e tem como objetivo efetuar uma atualização da base de dados do PC Factory. Além dos filtros definidos no MAN10538, também será possível adicionar novos filtros para cada tabela.
- Apontamento de produção/parada: Consiste no WebService para receber os apontamentos de produção/parada realizados no PC-Factory. Poderá processar apontamentos de produção e parada de recurso. Executará o mesmo processo que a rotina MAN8228.
O fluxo da integração será o seguinte:
a. Operador efetua reporte normalmente conforme sua operação no PC-Factory.
b. Em um processo batch ou disparado paralelamente no sistema, ocorre a montagem da mensagem (XML) conforme Schema de Mensagem Única TOTVS e o envio dessa mensagem(XML) para o Logix; que validará a mensagem e encaminhará ao respectivo adapter de negócio para processamento.
c. Em caso de erros, esse reporte ficará com um status de pendente para envio dentro do software MES e o usuário poderá tomar ações no próprio PC Factory (o Logix registrará em LOG o processamento).
d. Em caso de sucesso no reporte, será retornado ao PC-Factory o número do registro do reporte realizado no Logix. Esse número poderá ser utilizado em caso de estorno.
Replicação
No Logix é possível cadastrar replicações de cadastros. Para o envio das mensagens nas empresas replicadas será utilizado o Webservice que estiver cadastrado no MAN10538 de cada empresa.
Controle de latência
Existem situações em que o tempo de espera do webservice é menor que o tempo de processamento das importações para o ERP. Pode ocorrer a situação em que o ERP continue processando a importação e o WebService do PC-Factory para de esperar a resposta. Quando o PC-Factory não recebe a resposta a tempo, o mesmo arquivo é reenviado, podendo gerar duplicidade no processamento da mensagem.
Solução:
Controlar ID do PC-Factory para as mensagens recebidas. Todas as mensagens recebidas deverão ter esse tratamento:
- ProductionAppointment
- StopReport
- StopReason
- WasteReason
Nos XML´s será usada a TAG Key name = "IDPCfactory"
<BusinessEvent>
<Entity>Entity</Entity>
<Event>upsert</Event>
<Identification>
<key name="IDPCFactory">29892829</key>
</Identification>
</BusinessEvent>
O retorno com erro apresenta a mensagem com o seguinte padrão:
<ProcessedOn>2017-03-28T09:11:17</ProcessedOn>
<Status>ERROR</Status>
<ListOfMessages>
<Message type="ERROR" code="N">MENSAGEM</Message>
</ListOfMessages>
</ProcessingInformation>
O XML de retorno deverá respeitar a seguinte regra:
- Quando ID já processado e contêm ERRO
Retorna o ID PC-Factory na tag <UUID>
Na tag Message type="ERROR" code="2", utiliza o 2 para indicar erro.
A mensagem será: ID xxxx já processado. Status: mensagem de erro”.
Exemplo: <Message type="ERROR" code="2">ID productionappointment-0038 já processado. Status: ProductionOrderNumber não cadastrada no Logix.</Message>
- Quando ID já processado com sucesso
Retorna o ID PC-Factory na tag <UUID>
Na tag Message type="ERROR" code="3", usa o 3 para indicar o processamento com sucesso.
A mensagem será: "ID xxxx já processado. Status: ID do Logix" ou "ID xxxx já processado. Status: ID do Logix" quando o PC-Factory enviar mais de uma vez.
Exemplo 1: <Message type="ERROR" code="3">ID productionappointment-0038 já processado. Status: 5091</Message>
Exemplo 2: <Message type="ERROR" code="3">ID productionappointment-0038 já processado. Status: Reprocessado. 5091</Message>.
- Quando ID já está na base mas em processamento
Retorna o ID PC-Factory na tag <UUID>
Na tag Message type="ERROR" code="4", usa o 4 para indicar que está em processamento.
A mensagem será: ID xxxx está sendo processado pelo Logix.
Exemplo: <Message type="ERROR" code="4">ID apapapapeaaa está sendo processado pelo Logix.</Message>
O retorno, quando mensagem processada na primeira tentativa, dentro do tempo de espera do webservice, será "1" - Processado de primeira vez com ERRO ou OK.
Exemplo:
Com Erro:
<ProcessingInformation>
<ProcessedOn>2017-03-28T09:00:03</ProcessedOn>
<Status>ERROR</Status>
<ListOfMessages>
<Message type="ERROR" code="1">ProductionOrderNumber não cadastrada no protheus.</Message>
</ListOfMessages>
</ProcessingInformation>
Com Sucesso:
<ProcessingInformation>
<ProcessedOn>2017-03-28T08:57:28</ProcessedOn>
<Status>OK</Status>
</ProcessingInformation>
<ReturnContent>
<ListOfInternalId>
<InternalId>
<Name>PRODUCTIONAPPOINTMENTINTERNALID</Name>
<Destination>5090</Destination>
</InternalId>
</ListOfInternalId>
</ReturnContent>
Situações inesperadas que podem ocorrer: a parada do serviço do Logix, banco de dados fora do ar, falta de energia, entre outros. Se ocorrer durante o processamento da integração, o registro do PC-Factory (ID do PC-Factory) pode ficar travado e a mensagem não sai da fila de processamento. Para tratar essa situação:
O PC-Factory tenta enviar por determinado tempo, tempo esse parametrizado no PC-Factory. Caso continue recebendo a mesma mensagem depois do tempo parametrizado, o PC-Factory gera uma pendência de envio e passa para o próximo registro. Ao passar para o próximo registro, um contador de mensagens não enviadas é gerado. Quando esse contador atinge um limite (parametrizado), o processo de integração é paralisado para que os usuários possam resolver o problema. O controle de processamento ficará registrado em tabela de LOG.
Abaixo tabela dos códigos enviados:
1 | Processado na primeira tentativa com ERRO ou OK | 1 ou 2 |
2 | Registro já processado com retorno de erro | 2 |
3 | Registro já processado com sucesso | 1 |
4 | Registro em processamento | 0 |
Importante:
- Caso um registro fique preso com status de "registro em processamento", este poderá ser destravado pela rotina MAN10540, informando o IDMES correspondente.
- O reprocessamento de uma mensagem com ERRO(2) pode ser feito passando a tag Reprocess = true.
Exemplo:<BusinessEvent>
<Entity>productionappointment</Entity>
<Event>upsert</Event>
<Identification>
<key name="IDPCFactory">9o93049u88557</key>
<key name="Reprocess">true</key>
</Identification>
</BusinessEvent>
Rotinas
Parametrização - MAN10538
A parametrização terá influência direta sobre os registros que serão movimentados entre os dois sistemas.
A rotina de parametrização terá os seguintes campos:
- Integração Ativa?: Indica se a integração está ativa.
- Caminho Webservice: Indica o caminho do WebService do PC-Factory. Após o caminho, terá um botão testar para verificar se webservice está ativo.
- Gera XML - Ao selecionar esse campo, irá gerar os XML das mensagens trocadas. Se não estiver selecionado, será gravado apenas em tabelas. A geração dos arquivos não é obrigatória. Serve como uma ferramenta útil para encontrar problemas. O envio sempre será feito com base do que estiver registrado nas tabelas.
- Enviados - Diretório onde serão salvos os XMLs enviados com sucesso ao PC-Factory
- Pendentes - Diretório onde serão salvos os XMLs que não foram enviados ao PC-Factory
Os nomes do arquivos seguirão o seguinte padrão:
OK_<MSG>_<DATAHORA>_<REGISTRO>
PEND_<MSG>_<DATAHORA>_<REGISTRO>
ERR_<MSG>_<DATAHORA>_<REGISTRO>
Em que: OK - Se mensagem entregue sem problemas
PEND- Se mensagem não foi enviada
ERR - Se mensagem enviada, porém retornou erro.
MSG - Nome da mensagem. Ex.: Item, Wharehouse, Workcenter, etc.
DATAHORA: Data e Hora do envio
REGISTRO: Código do registro que está sendo enviado. Ex.: Código do item, número da ordem, etc.
Obs.: Se selecionar o Gera XML, deverão ser informados os diretórios.
Para cada arquivo movimentado terá um folder. Para cada folder será possível montar filtros. Esses filtros serão utilizados nas rotinas que enviarão informações ao PC-Factory, permitindo selecionar o que deve ser enviado. Serão exibidos os campos da tabela selecionada (folder) e operadores para que sejam montados os filtros. Além de filtros, alguns arquivos possuem parametrizações.
A rotina terá os seguintes folders:
- Item
- Local de Estoque
- Máquina (Arranjo/Recurso)
Deverá ser parametrizado o centro de trabalho do recurso. Informar o campo centro de trabalho padrão. - Roteiro
- Estrutura
- Ordem de Produção
Painel MRP: Indica como o sistema deverá se comportar em relação as ordens geradas pelo MRP. Terá as seguintes opções:
"Não integra": As ordens geradas pelo MRP não serão enviadas ao PC-Factory pelo cálculo do MRP
"Gera Pendência": As ordens geradas pelo MRP ficarão registradas nas pendências de envio
"Integra": As ordens geradas pelo MRP serão enviadas ao PC-Factory pelo cálculo do MRP.
Painel "Consumo de componentes". Determinar como será o consumo dos componentes. Esse campo pode conter os seguintes valores:
"1" - BackFlush: Sempre irá realizar a baixa dos componentes conforme o definido na engenharia.
"2" - Consumo Real: Irá consumir conforme lista de componentes.
Painel "Operações": Define se o filtro criado no folder "Roteiros" deve ser utilizado para filtrar as operações da ordem de produção.
- Roteiros
- Estrutura
- Endereço
Sincronização - MAN10541
A sincronização é o processo que será utilizado para popular ou atualizar a base do PC-Factory com os dados do Logix. O funcionamento se dará da mesma forma que as demais rotinas de integração, enviando uma mensagem XML ao WebService do PC-Factory, respeitando as parametrizações definidas no MAN10541. A única diferença é que serão visualizados todos os dados da tabela que estiver sendo integrada (respeitando os filtros) ao invés de apenas um único registro.
Gerenciamento TOTVS MES - MAN10540
Rotina para gerenciar as mensagens não enviadas ao sistema PC-Factory, sejam elas pendências ou erro. A rotina também possibilita consultar as mensagens enviadas com sucesso.
Permite gerencias as mensagens recebidas pelo Logix. A rotina está divida em dois folders "Envio" e "Recebimento".
Poderá verificar as pendências e log das mensagens trafegadas entre os sistemas:
Envio
- Produto/Item
- Local de Estoque (depósitos)
- Máquinas - Arranjo/Recurso
- Ordens de produção (Operações, Roteiros, Componentes )
- Cadastro de Estruturas
- Roteiro - Operações
- Endereços
Recebimento - Apontamento de produção
- Apontamento de parada
- Motivo de Refugo
- Motivo de Parada
Possui as seguintes opções:
- Reprocessar:
Para cada linha selecionada deverá executar o envio das mensagens. - Excluir
Deverá excluir os registros selecionados - Salvar XML
Esta opção permite salvar o XML em um diretório local da máquina que está processando a rotina de pendências. - Atualizar
Irá refazer a pesquisa dos registros, atualizando os dados na tela
ID MES - MAN10539
O PC-Factory não utiliza o conceito grade. Para atender essa demanda foi criado o ID MES.
Quando usa o conceito grade (parâmetro: utiliza_grade) e o item controlar grade (item_ctr_grade) o sistema terá um tratamento diferenciado para o envio dos itens.
No XML, o código do item será composto pelo código do item, mais um ID (número sequencial) gerado pelo sistema para identificar a grade. Esta geração do ID é necessário pois o PC-Factory não possui o conceito grade.
Exemplo: ITEM = CAMISA. Grade 1 : Cor = Branca. Grade 2: Tamanho: P (pequeno)
O código do item passado para o PC-Factory será: CAMISA1, onde 1 é um número sequencial gerado pelo Logix.
Exemplo: ITEM = CAMISA. Grade 1 : Cor = Preta. Grade 2: Tamanho: P (pequeno)
O código do item passado para o PC-Factory será: CAMISA2, onde 2 é um número sequencial gerado pelo Logix.
Estes IDS gerados serão registrados na seguinte tabela: MAN_ITEM_MES. Serão gravados os seguintes campos:
- item_mes : Item com sequencial. Sequencial é gerado com base no o último sequencial do item mais um(+1).
- item : Item Logix
- grade_1
- grade_2
- grade_3
- grade_4
- grade_5
Quando usa grade a integração deverá considerar a estrutura por composição. Exemplo: Item controlando 2 grades. COR e TAMANHO.
Abaixo tabela com exemplo da estrutura do item CAMISA.
Produto: Camisa | COR | BRANCO | AZUL | PRETO |
TAM | G,H | D | Z | |
Pequeno | E,F | A,B,C | Y | |
Médio | X | |||
Grande | P |
Existe a possibilidade de manutenção dessa estrutura nas seguintes situações:
1 - Estrutura da CAMISA, cor branco e tamanho P. Deve gerar XML somente da estrutura branco e P, considerando os componentes A,B,C,D,E,F,G,H
2 - Estrutura da CAMISA, somente da cor branco. Deve gerar XML de todas as camisas brancas e todos tamanhos. Branco e P:considerando os componentes A,B,C,D,E,F,G,H. Branco e M: considerando os componentes X,D,G,H
3 - Estrutura da CAMISA, somente do tamanho P. Deve gerar XML de todas as camisas de tamanho P e todas cores.Branco e P:considerando os componentes A,B,C,D,E,F,G,H.Azul e P: considerando os componentes Y,E,F,G,H
4 - Estrutura sem cor e tamanho. Deve gerar XML de todas as camisas.
- Branco e P: componentes A,B,C,D,E,F,G,H . Branco e M: componentes X,D,G,H. Branco e G: componentes A,B,C,D,G,H
- Azul e P: componentes Y,E,F,G,H . Azul e M: componentes G,H. Azul e G: componentes G,H
- Preto e P: componentes Z,G,H . Preto e M: componentes Z,G,H. Preto e G: componentes P,Z,G,H
Esta regra será utilizada por todas as rotinas que manipulam a utilização de grade para o item , como o MAN10002, MAN10243 e MAN10021.
Mensagens
Cadastros
Transação Item: Item_4_001.xsd
Identificador da Mensagem: Item
Versão: 4_001
Módulo Logix: Engenharia
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType | CompanyId | Código da Empresa Logada
| item.cod_empresa | CHAR(02) |
|
|
| BranchId | Código Filial | TBLInProduct.PlantCode | CHAR(15) | ||
| CompanyInternalId | Empresa | item.cod_empresa |
|
| |
| Code | Código do Produto | item.cod_item | CHAR(15) | TBLInProduct.Code | CHAR(20) |
| Name | Descrição do produto | item.den_item | CHAR(76) | TBLInProduct.Name | CHAR(70) |
| InternalId | Empresa+código do produto | item.cod_empresa + item.cod_item |
|
|
|
| ShortName | Nome curto | item.den_item_reduz | CHAR(18) | TBLInProduct.SecondName | CHAR(30) |
| Active | Item ativo? | item.ies_situacao 1=Ativo; 0=Inativo ou Cancelado | CHAR(01) | TBLInProduct.FlgEnable | SMALLINT |
| UnitOfMeasureCode | Unidade de Medida | item.cod_unid_med | CHAR(03) | TBLInProduct.Unit1code | CHAR(05) |
| UnitOfMeasureInternalId | Unidade de medida | item.cod_unid_med |
|
|
|
| StockGroupCode | Grupo de Estoque | item.gru_ctr_estoq | DECIMAL(2,0) |
|
|
| StockGroupInternalId | Empresa+grupo de estoque | item.cod_empresa + item.gru_ctr_estoq |
|
|
|
| StockGroupDescription | Descrição do grupo estoque | grupo_ctr_estoq. den_gru_ctr_estoq | CHAR(30) |
|
|
| StandardWarehouseCode | Local de Estoque |
| CHAR(10) |
|
|
| StandardWarehouseInternalId | Empresa+local de estoque |
|
|
|
|
| StandardWarehouseDescription | Descrição Local de Estoque | local.den_local | CHAR(30) |
|
|
| EconomicLot | Lote econômico |
| DECIMAL(12,3) |
|
|
| MinimumLot | Lote mínimo |
| DECIMAL(10,3) |
|
|
| FamilyCode | Família | item.cod_familia | CHAR(03) | TBLInProduct.FamilyProductCode | CHAR(15) |
| FamilyInternalId | Empresa+família | item.cod_empresa + item.cod_familia |
|
|
|
| FamilyDescription | Descrição da família | familia.den_familia | CHAR(30) | TBLInProduct.FamilyProductName | CHAR(30) |
| NetWeight | Peso do Item | item.pes_unit | DECIMAL(12,5) |
|
|
| GrossWeight | Peso bruto | Fixo "0" |
|
|
|
| Trail | Rastro | item.ies_ctr_lote Se estiver igual a nulo, será considerado "N". | CHAR(01) |
|
|
| BinControl | Controla Endereço | item_ctr_grade.ies_endereco Se estiver igual a nulo, será considerado "FALSE" | CHAR(01) |
|
|
| SecondUnitOfMeasureCode | Segunda Unidade de medida |
| TBLInProduct.Unit2Code | CHAR(20) | |
| SecondUnitOfMeasureInternalId | Empresa+filial+ seg. unidade de medida |
|
|
|
|
| MultiplicationFactorValue | Fator de conversão | item.fat_conver | DECIMAL(11,6) | TBLInProduct.Unit2Factor | DEC(8,4) |
| ProductType | Tipo do Item | item.ies_tip_item P=22; C=23; T=24; B=25; F=26; Outros=21 | CHAR(01) | TBLInProduct.ProductTypeCode | CHAR(15) |
| PackingQuantity | Quantidade Embalagem | Fixo "0" | NUM(09) | TBLInProduct.QtyPackage | DEC(19,4) |
| CostCenterCode | Centro de Custo |
|
| TBLInProduct.CostCenterCode | CHAR(20) |
| StockControlType | Controle do estoque do item | Controla número de série=2; Controla endereço=1; Controla lote=3 | CHAR(01) |
|
|
Detail | Especificações do item | CHAR(60) |
Nota:
- O PC-Factory não trabalha com o conceito grade. Para atender esse conceito existe o DE-PARA de itens entre os sistemas. Informações registradas na tabela MAN_ITEM_MES.
Na tag Code, quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim", será gravado o conteúdo do ID ITEM MES, registrado na tabela de/para de itens entre o Logix e o PC-Factory(MAN_ITEM_MES). Quando usa o conceito grade, o envio do XML de itens é processado da seguinte forma:
1 - Ao cadastrar o item no folder básico ou alterar os demais folders é enviada a mensagem de item ao PC-Factory e gerada a MAN_ITEM_MES, sendo que, Item Logix igual a ITEM MES.
2 - Ao setar o controle de grade no folder Grades e Dimensionais é enviado uma mensagem de DELETE do item e excluído o registro na MAN_ITEM_MES. Quando a grade for informada nas rotinas MAN10002 (Estrutura de Produtos) ou MAN10243 (Processos) ou folder Planej. Grade ou MAN10002 será regerada a MAN_ITEM_MES e a mensagem do item será reenviado com o ID MES atualizado.
Caso o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Não", a tabela man_item_mes não será gravada. - Na tag StandardWarehouseCode será considerado a tabela/campo item.cod_local_estoq. Caso o mesmo esteja nulo, será considerado o parâmetro "Local estoque padrão' localizado no LOG00087, Administração Logix, Controle Geral, Integração entre Sistemas.
- Na tag StandardWarehouseInternalId será considerado o código da empresa (item.cod_empresa) + o local de estoque existente na tag StandardWarehouseCode.
- Na tag EconomicLot, caso o tipo do item seja igual a "Produzido" ou "Final" será gravado 0 (zero). Caso o tipo do item seja diferente de "Produzido" ou "Final", será considerado a tabela/campo item_sup.qtd_lote_economic.
- Na tag MinimumLot, caso o tipo do item seja igual a "Produzido" ou "Final" e o item esteja cadastrado no MAN10021, folder Planej. Grade, será considerado a tabela/campo it_polit_grade.qtd_prog_minima.
Caso o tipo do item seja igual a "Produzido" ou "Final" e o item não esteja cadastrado no MAN10021, folder Planej. Grade, será considerado a tabela/campo item_man.qtd_prog_minima.
Caso o tipo do item seja diferente de "Produzido" ou "Final", será considerado a tabela/campo item_sup.qtd_lote_minimo. - Caso o cadastro do item esteja parametrizado no MAN10246 para fazer a replicação em outras empresas, será gerado o XML nas empresas destinos.
- Na função Cópia do item no MAN10021, além do XML do cadastro do item, se existir estrutura ou roteiro, serão gerado os XML´s de estrutura do item e roteiro.
- Serão integrados os itens cadastrados no MAN10021. Não será considerado o MAN10081.
- A tagStockControlType deverá verificar se controla nr. de série (ITEM_CTR_GRADE.RESERVADO_2), se controlar gravar = '2'.
Se não controlar série, verificar se controla endereço (ITEM_CTR_GRADE.IES_ENDERECO), se controlar gravar '1'. Por último verificar se controla Lote, se controlar gravar = '3'. Caso não possuir nenhum desses controles a tag não será gerada.
- A tag Detail registra as informações da grade, quando o sistema utilizar o conceito grade. Deverá gerar com a descrição da grade, o código da grade e o conteúdo da grade, separados por pipe |.
Exemplo: ITEM = CAMISA. Grade 1 : Cor = Branca. Grade 2: Tamanho: P (pequeno). Gravar como: COR:01-BRANCA|TAMANHO:01-P.
A tag DETAIL é gerada com base na rotina que estiver sendo executada,conforme descrito abaixo:
- ESTRUTURA - MAN10002
Usar a tabela estrut_grade.
Exemplo: ITEM = CAMISA. Grade 1 : Cor = Branca. Grade 2: Tamanho: P (pequeno). Resultado: COR:01-BRANCA|TAMANHO:01-P.
Descrição da grade: Na tabela ITEM_CTR_GRADE, verifica-se qual a grade o item controla. Grade 1 = NUM_GRADE_1; Grade 2 = NUM_GRADE_2; Grade 3 = NUM_GRADE_3; Grade 4 = NUM_GRADE_4; Grade 5 = NUM_GRADE_5. A descrição da grade é da tabela CTR_GRADE, campo.DESCR_CABEC_ZOOM
Código da grade: Pai: ESTRUT_GRADE, campos:COD_GRADE_1, COD_GRADE_2,COD_GRADE_3,COD_GRADE_4,COD_GRADE_5
Componente: ESTRUT_GRADE, campos:COD_GRADE_COMP_1,COD_GRADE_COMP_2,COD_GRADE_COMP_3,COD_GRADE_COMP_4,COD_GRADE_COMP_5
Conteúdo da grade: O conteúdo da grade deverá ser pesquisado com base na tabela cadastrada na CTR_GRADE.NOM_TABELA_ZOOM. Fazer pesquisa usando os campos: CTR_GRADE..NOM_TABELA_ZOOM, CTR_GRADE.DESCR_COL_1_ZOOM e CTR_GRADE.DESCR_COL_2_ZOOM - PROCESSO- MAN10243
Usar a tabela man_processo_item
Exemplo: ITEM = CAMISA. Grade 1 : Cor = Branca. Grade 2: Tamanho: P (pequeno). Resultado: COR:01-BRANCA|TAMANHO:01-P.
Descrição da grade: Na tabela ITEM_CTR_GRADE, verifica-se qual a grade o item controla. Grade 1 = NUM_GRADE_1; Grade 2 = NUM_GRADE_2; Grade 3 = NUM_GRADE_3; Grade 4 = NUM_GRADE_4; Grade 5 = NUM_GRADE_5.A descrição da grade é da tabela CTR_GRADE, campo.DESCR_CABEC_ZOOM
Código da grade: Pai: ESTRUT_GRADE, campos:COD_GRADE_1, COD_GRADE_2,COD_GRADE_3,COD_GRADE_4,COD_GRADE_5
Componente: MAN_PROCESSO_ITEM, campos:CONTEUDO_GRADE_1,CONTEUDO_GRADE_2,CONTEUDO_GRADE_3, CONTEUDO_GRADE_4, CONTEUDO_GRADE_5
Conteúdo da grade: O conteúdo da grade deverá ser pesquisado com base na tabela cadastrada na CTR_GRADE.NOM_TABELA_ZOOM. Fazer pesquisa usando os campos: CTR_GRADE..NOM_TABELA_ZOOM, CTR_GRADE.DESCR_COL_1_ZOOM e CTR_GRADE.DESCR_COL_2_ZOOM - ITEM - MAN10021
Usar a tabela it_polit_grade.
Exemplo: ITEM = CAMISA. Grade 1 : Cor = Branca. Grade 2: Tamanho: P (pequeno). Resultado: COR:01-BRANCA|TAMANHO:01-P.
Descrição da grade: Na tabela ITEM_CTR_GRADE, verifica-se qual a grade o item controla. Grade 1 = NUM_GRADE_1; Grade 2 = NUM_GRADE_2; Grade 3 = NUM_GRADE_3; Grade 4 = NUM_GRADE_4; Grade 5 = NUM_GRADE_5.A descrição da grade é da tabela CTR_GRADE, campo.DESCR_CABEC_ZOOM
Código da grade: Pai: IT_POLIT_GRADE, campos:COD_GRADE_1, COD_GRADE_2,COD_GRADE_3,COD_GRADE_4,COD_GRADE_5
- ESTRUTURA - MAN10002
Transação Depósito: Warehouse_1_001.xsd
Identificador da Mensagem: Warehouse
Versão: 1_001
Módulo Logix: Engenharia
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType | CompanyId | Código da Empresa | local.cod_empresa | CHAR(02) | TBLInWarehouse.Extcode | CHAR(20) |
| BranchId | Código da Filial | TBLInWarehouse.PlantCode | CHAR(15) | ||
| CompanyInternalId | Empresa | local.cod_empresa |
|
|
|
| Code | Código do Local de Estoque(armazém/almoxarifado/depósito) | local.cod_local | CHAR(10) | TBLInWarehouse.Code | CHAR(15) |
| InternalId | Empresa+código local | local.cod_empresa + local.cod_local |
|
|
|
| Description | Descrição do Local de Estoque (armazém/almoxarifado/depósito) | local.den_local | CHAR(30) | TBLInWarehouse.Name | CHAR(15) |
| Active | Local de Estoque Ativo? |
| TBLInWarehouse.FlgEnable | SMALLINT | |
| Type | Tipo do Local de Estoque |
|
| ||
| WarehouseClassification | Classificação |
|
|
Nota:
- Caso o cadastro de locais esteja parametrizado no MAN10246 para fazer a replicação em outras empresas, será gerado o XML nas empresas destinos.
- Serão integrados os locais de estoque cadastrados no SUP10002.
Transação Recurso: Machine_1_000.xsd
Identificador da Mensagem: Machine
Versão: 1_000
Módulo Logix: Engenharia
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix
| Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType |
|
|
|
|
| |
| Code | Código Máquina | recurso.cod_recur rec_arranjo.cod_arranjo | CHAR(05)
| CHAR(15) | |
| Description | Descrição Máquina | recurso.den_recur arranjo.den_arranjo | CHAR(30) | TBLInResource.Name TBLInResource.Nickname | CHAR(20) |
| WorkCenterCode | Código Centro Trabalho |
| CHAR(05) | TBLInResource.ManagerGrpCode | CHAR(15) |
| WorkCenterDescription | Descrição Centro Trabalho | cent_trabalho.den_cent_trab | CHAR(30) | TBLInResource.WorkCenterDescription | CHAR(15) |
| CostCenterCode | Código Centro Custo |
|
|
|
|
| ProcessorType | Tipo de Processamento |
|
|
|
|
| LaborType | Tipo MOD |
|
|
|
|
| VolumeMachineQuantity | Quantidade Volume Máquina |
|
|
|
|
| EfficiencyMachineValue | Eficiência Máquina |
|
|
|
|
| OperatorMachineQuantity | Quantidade Operador Máquina |
|
|
|
|
| SimultaneousActivityQuantity | Quantidade Operações Simultâneas |
|
|
|
|
| IsSetup | Possui Preparação |
|
|
|
|
| IsOverlapReport | Sobrepõe Apontamento |
|
|
|
|
| ProductionAreaCode | Área de Produção |
|
|
|
|
| InitialValidateDate | Data início validade |
|
|
|
|
| FinalValidateDate | Data fim validade |
|
|
|
|
TypeMachine | Tipo Máquina | 1=Recurso; 2=Arranjo | CHAR(01) | |||
ListOfResources |
|
|
|
|
| |
| ResourceType | Tipo do Recurso |
|
|
|
|
| ResourceCode | Código Recurso |
|
| TBLInUser.Code | CHAR(30) |
| ResourceName | Nome Recurso |
|
| TBLInUser.Name TBLInUser.Nickname | CHAR(60) |
| UnitTimeType | Tipo Medida Tempo |
|
|
|
|
| StartExpirationDate | Data Início Validade |
|
|
|
|
| EndExpirationDate | Data Fim Validade |
|
|
|
|
| CycleQuantity | Número Ciclos |
|
|
|
|
| IsTimeActivity | Determina tempo |
|
| ||
ListOfProductionShifts |
|
|
|
|
|
|
| ProductionShiftCode | Código Modelo Turno |
|
| ||
| ProductionShiftDescription | Descrição Modelo Turno |
|
|
|
|
| BeginDate | Data Início Validade |
|
|
|
|
| EndDate | Data Fim Validade |
|
|
|
|
Nota:
- Serão integrados os recursos cadastrados como equipamento no Cadastro de Recursos (MAN10078) e os arranjos físicos cadastrado no MAN10072.
- Na tag WorkCenterCode, para o arranjo, será considerado o centro de trabalho padrão parametrizado no MAN10538, folder 2-Máquina, subfolder 1-Arranjo; para o recurso, será considerado o centro de trabalho padrão parametrizado no MAN10538, folder 2-Máquina, subfolder 2-Recurso. Campo/tabela man_filtro_mes.parametro1, quando o campo tabela for igual a "rec_arranjo" ou "arranjo".
- Se a tag TypeMachine for gerada pelo MAN10072 deve gravar como 2. Se for gerada pelo MAN10078 gravar como 1.
Se a mensagem for gerada pelo MAN10078, considerar somente recurso = equipamento. Onde: IES_TIP_RECUR = 2
- Caso o cadastro de recursos ou arranjo estejam parametrizados no MAN10246 para fazer a replicação em outras empresas, será gerado o XML nas empresas destinos.
Transação Estrutura: ItemStructure_1_001.xsd
Identificador da Mensagem: ItemStructure
Versão: 1_0001
Módulo Logix: Engenharia
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType | CompanyId | Código da Empresa | estrut_grade.cod_empresa | CHAR(02) |
|
|
| CompanyInternalId | Empresa | estrut_grade.cod_empresa | CHAR(02) |
|
|
| ItemInternalId | Empresa+código item pai | estrut_grade.cod_empresa + estrut_grade.cod_item_pai |
|
|
|
| ItemCode | Código item pai | estrut_grade.cod_item_pai | CHAR(15) | TBLInWOHD.ProductCode TBLInWOHD.WOCode | CHAR(30) |
| ItemAmount | Quantidade base do item pai | Fixo "1" | DECIMAL(1,0) | TBLInWOHD.TotalQTY | DEC(19,4) |
ItemComponentType |
|
|
|
|
|
|
| ItemSequence | Sequência do componente | estrut_grade.num_sequencia | DECIMAL(10,0) | TBLInBillMat.BillMatExtCode | CHAR(20) |
| ItemComponentCode | Código item componente | estrut_grade.cod_item_compon | CHAR(15) | TBLInBillMat.ProductCode | CHAR(20) |
| ItemComponentInternalId | Internal Id do Item Componente | estrut_grade.cod_empresa + estrut_grade.cod_item_compon |
|
|
|
| InitialDate | Data validade inicial | estrut_grade.dat_validade_ini | DATE | TBLInWOHD.DtPlanStart | DATETIME |
| FinalDate | Data validade final | estrut_grade.dat_validade_fim | DATE | TBLInWOHD.DtPlanEnd | DATETIME |
| IsGhostMaterial | Indica se é fantasma | Se tipo do item for igual a "T"=TRUE; Se tipo do item for diferente de "T"= FALSE | BOOLEAN ( FALSE ou TRUE) |
|
|
| ItemComponentAmount | Quantidade do item componente | estrut_grade.qtd_necessaria | DECIMAL(14,7) |
|
|
| LossFactor | Fator de perda | estrut_grade.pct_refug | DECIMAL(6,3) |
|
|
ListOfScript |
|
|
|
|
|
|
| Scriptcode | Código do Roteiro | man_processo_item.roteiro | CHAR(15) | TBLInWOHD.ExtCode | CHAR(20) |
| ScriptAlternative | Alternativo do Roteiro | man_processo_item.roteiro_alternativo | DECIMAL(2,0) |
|
|
| ActivityInternalID | ID Operação | man_processo_item.seq_processo | DECIMAL(10,0) |
|
|
| ActivityCode | Código da Operação | man_processo_item.operacao | CHAR(05) | TBLInWodet.Code | CHAR(10) |
| ActivityComponentSequence | Sequência do componente na operação | estrut_grade.cod_posicao | SMALLINT |
|
|
Nota:
- Na tag ItemCode, quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim" será considerado a tabela/campo man_item_mes.item_mes.
Nesse caso, quando os valores das grades forem informados no MAN10002, será gravado um registro na tabela man_item_mes, onde o campo item será igual a tabela/campo estrut_grade.cod_item_pai e o campo item_mes será igual a tabela/campo estrut_grade.cod_item_pai + sequencial da grade. Será verificado se existe registro na tabela man_item_mes para o código do item e será incrementado +1 à sequência até conseguir gerar uma sequencia que ainda não exista. OBS. A tabela man_item_mes irá gravar o código do item e o código do item MES. O código do item MES é um código que identifica o código do item e a sequência da grade do item.
Exemplos:
Item: Camisa Cor: Preta Tamanho: P - Será gerado o código do item MES igual a Camisa1
Item: Camisa Cor: Preta Tamanho: M - Será gerado o código do item MES igual a Camisa2
Item: Camisa Cor: Branca Tamanho P - Será gerado o código do item MES igual a Camisa3 - Na tag ItemComponentCode, quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim" será considerado a tabela/campo man_item_mes.item_mes.
Nesse caso, quando os valores das grades forem informados no MAN10002, será gravado um registro na tabela man_item_mes, onde o campo item será igual a tabela/campo estrut_grade.cod_item_compon e o campo item_mes será igual a tabela/campo estrut_grade.cod_item_compon + sequencial da grade. Será verificado se existe registro na tabela man_item_mes para o código do item e será incrementado +1 à sequência até conseguir gerar uma sequencia que ainda não exista.
OBS. A tabela man_item_mes irá gravar o código do item e o código do item MES. O código do item MES é um código que identifica o código do item e a sequência da grade do item.
Exemplos:
Item: Camisa Cor: Preta Tamanho: P - Será gerado o código do item MES igual a Camisa1
Item: Camisa Cor: Preta Tamanho: M - Será gerado o código do item MES igual a Camisa
Item: Camisa Cor: Branca Tamanho P - Será gerado o código do item MES igual a Camisa3 - Na tag Scriptcode, caso o item não utilize o conceito de estrutura por operação será considerada a tabela/campo item_man.cod_roteiro.
Caso o item utilize o conceito de estrutura por operação será considerada a tabela/campo man_processo_item.roteiro. - Na tag ScriptAlternative, caso o item não utilize o conceito de estrutura por operação será considerada a tabela/campo item_man.num_altern_roteiro.
Caso o item utilize o conceito de estrutura por operação será considerada a tabela/campo man_processo_item.roteiro_alternativo. - O item pode ter vários roteiros de produção. Para não repetir as informações, os dados do roteiro e operações serão gerados como lista, ListOfScript, quando o item controlar estrutura por operação. Quando o item controla estrutura por operação o MAN10002 será usado somente para consulta das estruturas, sendo que, a manutenção será via MAN10243.
- Na tag ActivityInternalID, caso o item não utilize o conceito de estrutura por operação será considerada a tabela/campo man_processo_item.seq_operacao da operação final.
Caso o item utilize o conceito de estrutura por operação será considerada a tabela/campo man_estrutura_operacao.seq_processo. - Na tag ActivityCode, caso o item ão utilize o conceito de estrutura por operação será considerada a tabela/campo man_processo_item.operacao da operação final.
Caso o item utilize o conceito de estrutura por operação será considerada a tabela/campo man_processo_item.operacao. - Na tag ActivityComponentSequence será um número sequencial do componente na operação.
- Caso o cadastro de estrutura de itens esteja parametrizado no MAN10246 para fazer a replicação em outras empresas, será gerado o XML nas empresas destinos.
- Serão integradas as estruturas dos itens cadastradas no MAN10002.
Transação Roteiro - Operações do Item: ItemScript_1_000.xsd
Identificador da Mensagem: ItemScript
Versão: 1_000
Módulo Logix: Engenharia
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType | ItemCode | Código item | man_processo_item.item | CHAR(15) | TBLInWOHD.ProductCode TBLInWOHD.WOCode | CHAR(20) |
| ItemDescription | Descrição do item | item.den_item | CHAR(76) |
|
|
| ItemInternalId | Empresa+Item | man_processo_item.empresa+man_processo_item.item |
|
|
|
| ScriptCode | Código do Roteiro | man_processo_item.roteiro | CHAR(15) |
|
|
| ScriptDescription | Descrição Roteiro | roteiro.den_roteiro | CHAR(30) |
|
|
| ScriptAlternative | Roteiro Alternativo | man_processo_item.roteiro_alternativo | DECIMAL(2,0) |
|
|
ListOfActivity |
|
|
|
|
|
|
| ActivityInternalID | ID Operação | man_processo_item.seq_processo | DECIMAL(10,0) |
|
|
| ActivityCode | Código da Operação | man_processo_item.operacao | CHAR(05) | TBLInWodet.Code | CHAR(10) |
| ActivityDescription | Descrição Operação | operacao.den_operac | CHAR(30) | TBLInWodet.Name | CHAR(40) |
| MachineCode | Código da Máquina | man_processo_item.arranjo/man_recurso_processo.recurso | CHAR(05) | TBLInWodet.Resource | CHAR(15) |
| ToolCode | Código Ferramenta |
|
|
|
|
| ActivityType | Tipo Operação | man_processo_item.apontar_operacao 1=Realiza apontamento; 2=Não realiza. | CHAR(01) |
|
|
| WorkCenterCode | Código Centro Trabalho | man_processo_item.centro_trabalho | CHAR(05) | TBLInWodet.ManagerGrpCode | CHAR(15) |
| WorkCenterInternalId | Id Centro de Trabalho | man_processo_item.empresa+man_processo_item.centro_trabalho |
|
|
|
| UnitItemNumber | Lote padrão | item_man.parametros[1,5] | CHAR(06) | TBLInWodet. StdSpeed | DEC(28,23) |
| TimeResource | Tempo Recurso |
|
| TBLInWodet. StdSpeed | DEC(28,23) |
| TimeMachine | Tempo Máquina | man_processo_item.qtd_tempo | DECIMAL(11,7) | TBLInWodet. StdSpeed | DEC(28,23) |
| TimeSetup | Tempo Preparação | man_processo_item.qtd_tempo_setup | DECIMAL(11,7) | TBLInWodet. SetUpTime | INT |
| UnitTimeType | Tipo Unidade Tempo | par_pcp.parametros[4,4] 1 = Horas;2=Minutos;3=Segundos;4=Dias | CHAR(01) | TBLInWodet. StdSpeedFormat | TINYINT |
| ScriptAlternative | Alternativo | man_processo_item.roteiro_alternativo | DECIMAL(2,0) |
|
|
| InitialDate | Data Inicial | man_processo_item.validade_inicial | DATE | TBLInWodet.DtPlanStart | DATETIME |
| FinalDate | Data Final | man_processo_item.validade_final | DATE | TBLInWodet.DtPlanEnd | DATETIME |
| PercentageScrapValue | % Refugo | man_processo_item.pct_retrabalho | DECIMAL(6,3) |
|
|
| PercentageValue | Proporção |
|
|
|
|
| ResourceQuantity | Quantidade Recurso |
|
|
|
|
Nota:
- Na tag ItemCode, quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim" será considerado a tabela/campo man_item_mes.item_mes.
Nesse caso, quando os valores das grades forem informados no MAN10002, será gravado um registro na tabela man_item_mes, onde o campo item será igual a tabela/campo estrut_grade.cod_item_pai e o campo item_mes será igual a tabela/campo estrut_grade.cod_item_pai + sequencial da grade. Será verificado se existe registro na tabela man_item_mes para o código do item e será incrementado +1 à sequência até conseguir gerar uma sequencia que ainda não exista. OBS. A tabela man_item_mes irá gravar o código do item e o código do item MES. O código do item MES é um código que identifica o código do item e a sequência da grade do item.
Exemplos:
Item: Camisa Cor: Preta Tamanho: P - Será gerado o código do item MES igual a Camisa1
Item: Camisa Cor: Preta Tamanho: M - Será gerado o código do item MES igual a Camisa2
Item: Camisa Cor: Branca Tamanho P - Será gerado o código do item MES igual a Camisa3 - Caso os valores das grades não forem informados no MAN10243, será gravado um registro na tabela man_item_mes, onde os campos item e item_mes serão iguais à tabela/campo man_processo_item.item.
Caso o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Não", a tabela man_item_mes não será gravada e será considerado a tabela/campo man_processo_item.item. - A tag MachineCode será gerada da seguinte forma:
Usar o campo MAN_PROCESSO_ITEM.ARRANJO. Se não possuir arranjo usar o recurso da MAN_RECURSO_PROCESSO.RECURSO (pesquisar por recurso critico). Se encontrar mais de um ou nenhum, buscar o primeiro recurso da MAN_RECURSO_PROCESSO. - A tag ToolCode não será gerada.
- A tag TimeMachine é o tempo para fazer uma peça
- A tag UnitTimeType deve verificar o parâmetro: par_pcp1.parametros[4,1] - Pode ser Hora, Minuto, Segundo ou Dias
- Caso o cadastro de roteiro esteja parametrizado no MAN10246 para fazer a replicação em outras empresas, será gerado o XML nas empresas destinos.
- Serão integrados os roteiros cadastrados no MAN10243.
Transação Endereços: AdressStock_1_000.xsd
Identificador da Mensagem: AdressStock
Versão: 1_000
Módulo Logix: Engenharia
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType | WarehouseCode | Armazém/Depósito | sup_endereco_local.local | CHAR(10) | TBLInAddress.WarehouseCode | CHAR(15) |
| LocationCode | Endereço/Localização | sup_endereco_local.endereco | CHAR(11) | TBLInAddress.Code | CHAR(15) |
| AddressInternalId | Chave completa endereço | sup_endereco_local.empresa+sup_endereco_local.local+sup_endereco_local.endereco |
|
|
|
| AddressStockDescription | Descrição do endereço | sup_endereco_local.denomin_endereco | CHAR(40) | TBLInAddress.ExtCode | CHAR(20) |
Nota:
- Serão integrados os endereços cadastrados no SUP1637 e MAN10093.
Transação Motivo de Refugo: WasteReason_1_000.xsd
Identificador da Mensagem: WasteReason
Versão: 1_000
Módulo Logix: Chão de Fábrica
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType | Code | Código Refugo | defeito.cod_defeito | DECIMAL(3,0) | TBLOutScrap.Code | CHAR(15) |
| Description | Descrição do Refugo | defeito.den_defeito | CHAR(30) | TBLOutScrap.Name | CHAR(30) |
| IsRework | Retrabalho |
|
|
|
|
| IsScrapMaterial | Refugo Material |
|
|
|
|
Nota:
- Essa mensagem será gerada pelo PC-Factory e enviado ao Logix.
- O programa de cadastro do motivo de refugo é o MAN10026.
Transação Motivo de Parada: StopReason_1_000.xsd
Identificador da Mensagem: StopReason
Versão: 1_000
Módulo Logix: Chão de Fábrica
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType | Code | Código Motivo Parada | mot_parada.cod_motivo cfp_para.cod_parada | CHAR(05) | TBLOutResourceStatus.Code | CHAR(05) |
| Description | Descrição Parada | mot_parada.des_motivo cfp_para.des_parada | CHAR(30) | TBLOutResourceStatus.Name | CHAR(30) |
| IsEfficiency | Altera Eficiência |
|
|
| |
| IsEmailEquipment | E-mail Planejador |
|
|
|
|
| IsServiceRequest | Emite Solicitação Serviço |
|
|
|
|
| IsSetup | Parada Setup |
|
| TBLOutResourceStatus.FlgSetup | SMALLINT |
Nota:
- Essa mensagem será gerada pelo PC-Factory e enviado ao Logix.
- O programa de cadastro de motivo de parada é o MAN10095 e MAN1470.
Transação Ordem de Produção: ProductionOrder_2_005.xsd
Identificador da Mensagem: ProductionOrder
Versão: 2_005
Módulo Logix: Plano Operacional
Tipo de Envio: Síncrona
Mesagem | Tag | Descrição | Tabela/Campo Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
BusinessContentType | Number | Número Ordem Produção | ordens.num_ordem | DECIMAL(10,0) | TBLInWOHD.Code | CHAR(41) |
| ProductionOrderUniqueID | Empresa+Ordem Produção | ordens.cod_empresa+ordens.num_ordem |
|
|
|
| ItemCode | Código Item | ordens.cod_item | CHAR(15) | TBLInWOHD.ProductCode | CHAR(20) |
| ItemDescription | Descrição Item | item.den_item | CHAR(76) |
|
|
| Type | Fixo "1" - INTERNA | CHAR(01) | TBLInWOHD.WoTypeCode | CHAR(20) | |
| Quantity | Quantidade | ordens.qtd_planej | DECIMAL(10,3) | TBLInWOHD.TotalQty | DEC(19,4) |
| ReportQuantity | Quantidade Reportada | ordens.qtd_boas + ordens.pct_refug + ordens.qtd_sucata | DECIMAL(10,3) |
|
|
| UnitOfMeasureCode | Unidade Medida | item.cod_unid_med | CHAR(03) | TBLInWoDet.Unit1Code | CHAR(05) |
| RequestOrderCode | Código Pedido Ordem Produção | ordens.num_docum | CHAR(10) |
|
|
| StatusOrderType | Estado da ordem | 1=Planejada; 2=Liberada; 7=Fechada; 10=Firme; 11=Aberta; 12=Cancelada | CHAR(01) | TBLInWOHD.Status | SMALLINT |
| WarehouseCode | Código Depósito | ordens.cod_local_prod | CHAR(10) | TBLInWOHD.AuxCode1 | CHAR(20) |
| EndOrderDateTime | Data Fim Ordem Produção CP | ordens.dat_entrega | DATE | TBLInWOHD.DtPlanEnd | DATETIME |
| StartOrderDateTime | Data Início Ordem Produção CP | ordens.dat_liberac | DATE | TBLInWOHD.DtPlanStart | DATETIME |
| AbbreviationProviderName | Nome Cliente | clientes.nom_cliente | CHAR(36) |
|
|
| ScriptCode | Código Roteiro | ordens.cod_roteiro | CHAR(15) |
|
|
| ReportOrderType | Tipo de Reporte | 1 = Ordem; 2 = Operações; 3 = Ponto Controle; 4 = Item | CHAR(01) |
|
|
ListOfActivityOrders |
|
|
|
|
|
|
| ProductionOrderNumber | Ordem de Produção | ord_compon.num_ordem | DECIMAL(10,0) | TBLInWoDet.Wocode | CHAR(10) |
| ActivityID | ID do Registro | ord_oper.seq_processo | DECIMAL(10,0) |
|
|
| ActivityCode | Código Operação | ord_oper.cod_operac | CHAR(05) | TBLInWoDet.WODetCode+Split | CHAR(10) |
| ActivityDescription | Descrição Operação | operacao.den_operac | CHAR(30) | TBLInWoDet.WODetName | CHAR(30) |
ListOfMaterialGrids_ItemGrid_GridCode | Código da grade | CHAR(15) | ||||
ListOfMaterialGrids_ItemGrid_GridSequence | Número da grade | DECIMAL(5,0) | ||||
| Split | Desdobramento da operação |
|
|
|
|
| ItemCode | Código do item | ord_oper.cod_item | CHAR(15) |
|
|
| ItemDescription | Descrição do item | item.den_item | CHAR(76) |
|
|
| ActivityType | Tipo Operação | ord_oper.ies_apontamento | CHAR(01) |
|
|
| WorkCenterCode | Código Centro de Trabalho | ord_oper.cod_cent_trab | DECIMAL(4,0) | TLBInWODet.ManagerGrpCode | CHAR(15) |
| WorkCenterDescription | Descrição Centro de Trabalho | cent_trabalho.den_cent_trab | CHAR(30) |
|
|
| UnitTimeType | Tipo Unidade Tempo | par_pcp.parametros[4,4] 1 = Horas;2=Minutos;3=Segundos | CHAR(01) | TLBInWODet.StdSpeedFormat | TINYINT |
| TimeResource | Tempo Recurso (Tempo padrão para um lote) | ord_oper.qtd_horas | DECIMAL(11,7) | TLBInWODet.StdSpeed | DEC(28,23) |
| TimeMachine | Tempo Máquina (Tempo para fazer toda a ordem) | ord_oper.qtd_horas * ordens.qtd_planej | DECIMAL(11,7) | TLBInWODet.StdSpeed | DEC(28,23) |
| TimeSetup | Tempo Preparação | ord_oper.qtd_horas_setup | DECIMAL(11,7) | TLBInWODet.SetUpTime | INT |
| TimeMOD | Tempo Homen | ord_oper.tmp_producao | DECIMAL(6,2) |
|
|
| TimeIndMES | Iindicador de tempo no MES | 1 = Tempo Máquina; 2 = Tempo mão-de-obra; 3 = Escolha pelo MES. | CHAR(01) |
|
|
| ScriptCode | Código Roteiro | ordens.cod_roteiro | CHAR(15) |
|
|
| LaborCode | Código Mão de Obra Direta |
|
|
|
|
| UnitItemNumber | Lote Padrão | item_man.parametros[1,5] | DECIMAL(10,3) | TLBInWODet.StdSpeed | DEC(28,23) |
| IsActivityEnd | Última Operação | ord_oper.ies_oper_final | BOOLEAN | TLBInWODet.ReportTrigger | TINYINT |
| MachineCode | Código Máquina | ord_oper.cod_arranjo | CHAR(05) |
|
|
| StartPlanDateTime | Data/Hora Início Programação | ord_oper.dat_inicio | DATE | TLBInWODet.StartPlanDateTime | DATETIME |
| EndPlanDateTime | Data/Hora Fim Programação | ord_oper.dat_entrega | DATE | TLBInWODet.EndPlanDateTime | DATETIME |
| ProductionQuantity | Quantidade a produzir na operação | ord_oper.qtd_planejada | DECIMAL(10,3) | TLBInWODet.Qty | DEC(19,4) |
| ActivityQuantity | Quantidade da operação | ord_oper.qtd_boas+ord_oper.qtd_refugo+ord_oper.qtd_sucata | DECIMAL(10,3) |
|
|
| UnitActivityCode | Unidade de medida | item.cod_unid_med | CHAR(03) | TLBInWODet.Unit1Code | CHAR(5) |
| SecondUnitActivityCode | Segunda unidade de medida na operação |
|
| TLBInWODet.Unit2Code | CHAR(5) |
| SecondUnitActivityFactor | Fator de conversão para segunda un. na operação |
|
| TLBInWODet.Unit2Factor | DEC(8,4) |
| ResourceQuantity | Quantidade de recursos | Fixo "1" | DECIMAL(7,4) |
|
|
ListOfMaterialOrders |
|
|
|
|
|
|
| ProductionOrderNumber | Ordem de produção | ordens.num_ordem | DECIMAL(10,0) | TBLInBillMat.Wocode | CHAR(41) |
| MaterialID | ID do registro da reserva | ord_compon.num_seq | DECIMAL(10,0) |
|
|
| MaterialCode | Código Item Reserva | ord_compon.cod_item_compon | CHAR(15) | TBLInBillMat.ProductCode | CHAR(20) |
| MaterialDescription | Descrição do Item | item.den_item | CHAR(76) |
|
|
| ScriptCode | Código Roteiro |
| CHAR(15) |
|
|
| ActivityCode | Código Operação |
| CHAR(05) | TBLInBillMat.WODetCode | CHAR(10) |
| WarehouseCode | Código Depósito | ord_compon.cod_local_baixa | CHAR(10) | TBLInBillMat.ExtCode | CHAR(20) |
| MaterialDate | Data Reserva | ord_compon.dat_entrega | DATE |
|
|
| MaterialQuantity | Quantidade Reserva | necessidades.qtd_necessaria | DECIMAL(14,7) | TBLInBillMat.TotalQty | DEC(19,4) |
| LotCode | Lote | op_lote.num_lote | CHAR(15) |
|
|
| PertMaterialNumber | Sequência do item |
|
|
|
|
| RequestType | Tipo da Requisição | item_man.ies_sofre_baixa Se item_man.ies_sofre_baixa for igual a "S" = 1; se item_man.ies_sofre_baixa for igual a "N" = 2 | CHAR(01) | TBLInBillMat.Comments | CHAR(500) |
ListOfAllocatedMaterial
|
|
|
|
|
|
|
| WarehouseCode | Código Depósito | op_lote.cod_local_baixa | CHAR(15) | TBLInMovMat.WarehouseCode | CHAR(15) |
| LotCode | Código Lote | op_lote.num_lote | CHAR(15) | TBLInMovMat.LotCode | CHAR(41) |
| LocationCode | Localização/Endereço | op_lote.endereco | CHAR(15) | TBLInMovMat.AddressCode | CHAR(15) |
| ActivityCode | Código Operação |
| CHAR(05) | TBLInMovMat.WoDetCode | CHAR(10) |
| ScriptCode | Código Roteiro |
| CHAR(15) |
|
|
| AllocationQuantity | Quantidade Alocada | op_lote.qtd_transf | DECIMAL(15,3) | TBLInMovMat.Qty | DEC(19,4) |
| AllocationType | Tipo Alocação | 1-Soma, 2-Diminui, 3-Absoluto Fixo 3 (Valor Absoluto) | CHAR(01) | TBLInMovMat.AllocationType | INT |
| SubLoteCode | Sub Lote |
|
|
| |
| NumberSeries | Número de Serie | op_lote.num_serie | CHAR(15) |
|
|
| LotDueDate | Data de Validade | op_lote.dat_hor_valid | DATE | TBLInMovMat.LotDtValidity | DATETIME |
ListOfQuotaActivity |
|
|
|
|
|
|
| ProductionOrderNumber | Número Ordem Produção | ordens.num_ordem | CHAR(20) |
|
|
| ControlType | Seleção Split |
|
|
|
|
| ActivityID | ID Operação | ord_oper.cod_operac | CHAR(10) |
|
|
| ItemCode | Código do item | ordens.cod_item | CHAR(15) |
|
|
| ItemDescription | Descrição do item | item.den_item | CHAR(40) |
|
|
| StartActivityDateTime | Data/Hora Início Atividade | ord_oper.dat_inicio | DATETIME | TBLInWODet.StartPlanDateTime | DATETIME |
| EndActivityDateTime | Data/Hora Fim Atividade | ord_oper.dat_entrega | DATETIME | TBLInWODet.EndPlanDateTime | DATETIME |
| ApprovedQuantity | Quantidade Aprovada | ord_oper.qtd_boas | DEC(13,4) |
|
|
| ScrapQuantity | Quantidade Refugada | ord_oper.qtd_refugo | DEC(13,4) |
|
|
| MachineCode | Código Máquina |
| CHAR(20) | TBLInWODet.ResourceCode | CHAR(15) |
| MachineDescription | Descrição da Máquina |
| CHAR(40) |
|
|
| ActivityQuantity | Quantidade Prevista | ord_oper.qtd_planejada | DEC(13,4) | TBLInWODet.QTY | DEC(19,4) |
| StandardSetup | Tempo Padrão Preparação |
| NUM(10) |
|
|
| StandardActivity | Tempo Padrão Operação |
| NUM(10) |
|
|
| StandardPostprocessing | Tempo Padrão Pós_processo |
| NUM(10) |
|
|
| StandardMachine | Tempo Padrão Máquina |
| NUM(10) |
|
|
| StandardOperator | Tempo Padrão MOD |
| NUM(10) |
|
|
| UsedCapacity | Capacidade Utilizada |
| DEC(12,4) |
|
|
| ActivityTimeQuantity | Hora Disponível Atividade |
| CHAR(08) |
|
|
| ReportQuantity | Quantidade Reportada | ord_oper.qtd_boas + ord_oper.qtd_refugo | DEC(13,4) |
| |
| ReworkQuantity | Quantidade Retrabalhada |
| DEC(12,4) |
|
|
| StartSetupDateTime | Data/Hora Início Preparação |
| DATETIME |
|
|
| EndSetupDateTime | Data/Hora Fim Preparação |
| DATETIME |
|
|
| TimeSetup | Tempo Preparação | ord_oper.qtd_horas_setup | NUM(10) | TBLInWODet.SetUpTime | TINYINT |
| TimeMachine | Tempo Máquina | ord_oper.qtd_horas | NUM(10) | TBLInWODet.StdSpeed | DEC(28,23) |
| TimeOperator | Tempo MOD |
| NUM(10) |
|
|
| TimePostprocessing | Tempo Pós Processo |
| NUM(10) |
|
|
| QuotaActivityID | ID Split | ord_oper.seq_processo | CHAR(05) | ActivityCode+ TBLInWODet.WODetCode | CHAR(10) |
| WorkCenterCode | Centro de Trabalho | ord_oper.cod_cent_trab | CHAR(10) | TBLInWODet.ManagerGrpCode | CHAR(15) |
| ReportedSplit | Split Reportado |
| BOOELAN |
|
|
| StatusActivityType | Estado Operação | 1=Não Iniciado;2=Programado;3=Liberado;4=Iniciado;5=Finalizado;6=Suspenso | CHAR(01) |
|
|
ListOfQuotaActivityTools |
|
|
|
|
|
|
| ToolCode | Ferramenta |
|
|
|
|
| ToolQuantity | Quantidade Ferramenta |
|
|
|
|
Nota:
- Não serão enviadas ordens com situação '1' e '2' (tabela/coluna ordens.ies_situa).
- Serão enviadas ordens que apontam por operação, tabela/coluna item_man.ies_apontamento ='1' ou ordens.ies_apontamento = '1'.
- Nas tags ItemCode, quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim" será considerado a tabela/campo man_item_mes.item_mes.
Caso os valores das grades utilizados na criação da ordem não estiverem na MAN_ITEM_MES, deverá ser gerada MAN_ITEM_MES e enviado os arquivos de ITEM, ESTRUTURA e PROCESSO.Neste caso,Tse a grade não possuir estrutura e roteiro, deve possuir, obrigatoriamente, registro de grade genérica no MAN10002 e MAN10243. Para itens que já possuam a MAN_ITEM_MES será enviada somente a mensagem de ORDEM.
Caso o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Não", a tabela man_item_mes não será utilizada. - Somente serão integrados as ordens de produção, cujo planejamento do item estiver cadastrado como apontamento por operação.
- Não haverá integração para ordens de produção de retrabalho ou reforma.
- Na tag ReportOrderType, caso o tipo de apontamento da ordem de produção (tabela/campo ordens.ies_apontamento) for igual a "1", será gravado "2" (apontamento por operação).
Caso o tipo de apontamento da ordem de produção (tabela/coluna ordens.ies_apontamento) seja diferente de "1", será verificado o tipo de apontamento do cadastro do item (tabela/campo item_man.ies_tip_apont). Caso o mesmo for igual a "1", será gravado "4" (apontamento por item). Caso o mesmo for diferente de "1', será gravado "1' (apontamento por ordem). - Na ListOfActivityOrders, tag ActivityType enviaremos 1=Aponta ou 2=Não aponta
- Na ListOfActivityOrders, a tag ListOfMaterialGrids_ItemGrid_GridCode, é uma lista e será enviado o código da grade 1 (neces_complement.cod_grade_1), código da grade 2 (neces_complement.cod_grade_2), código da grade 3 (neces_complement.cod_grade_3), código da grade 4 (neces_complement.cod_grade_4) e código da grade 5 (neces_complement.cod_grade_5), caso os mesmos existam. Caso contrário, a tag não será enviada.
- Na ListOfActivityOrders, a tag ListOfMaterialGrids_ItemGrid_GridSequence é uma lista e será enviado o número da grade 1 (item_ctr_grade.num_grade_1), número da grade 2 (item_ctr_grade.num_grade_2), número da grade 3 (item_ctr_grade.num_grade_3), número da grade 4 (item_ctr_grade.num_grade_4), número da grade 5 (item_ctr_grade.num_grade_5), caso os mesmos existam. Caso contrário, a tag não será enviada.
- Na ListOfActivityOrders, a tag UnitTimeType da ListOfActivityOrders deve verificar o parâmetro: par_pcp1.parametros[4,1] - Pode ser Hora, Minuto, ou Segundo
- O PC-Factory calcula o tempo para fazer uma unidade da seguinte forma: ActivityQuantity / Time Machine
- Na ListOfActivityOrders, a tag TimeResource (Tempo Recurso) indica o tempo para fazer um lote padrão.
- Na ListOfActivityOrders, a tag TimeIndMES deverá ser gerada com o valor '3'.
- Na ListOfActivityOrders, a tag UnitItemNumber será utilizada para registrar o lote padrão de produção da operação.
- Na ListOfActivityOrders, a tag IsActivityEnd, quando se tratar da última operação = TRUE. Nas demais = FALSE.
- Na ListOfActivityOrders, a tag MachineCode , deverá ser gerada conforme validações:Se existir Arranjo, deverá usar o campo ORD_OPER.COD_ARRANJO. Se estiver nulo, buscar o recurso da man_recurso_operacao_ordem. Seguir a regra: Pesquisar por recurso critico. Se encontrar mais de um ou nenhum, buscar o primeiro recurso da man_recurso_operacao_ordem.
- Na ListOfMaterialOrders, a tag ActivityCode, se usar o controle de estrutura por operação, deverá usar a tabela man_op_componente_operacao para pesquisar na ord_compon. Se não controlar estrutura por operação, deverá usar a operação final.
- Na ListOfMaterialOrders, a tag ScriptCode é gerada a partir da tabela/campo man_op_componente_operacao.roteiro. Se não existir gerar com base na tabela/campos ordens.cod_roteiro
- Na ListOfMaterialOrders, a tag LotCode somente será enviada caso a empresa esteja parametrizada para utilizar o conceito de OP_LOTE. Caso contrário, essa tag não será enviada.
- Se a empresa não utilizar o conceito de OP_LOTE, a lista ListOfAllocatedMaterial, com a listagem de material alocado, não será enviada.
- Na ListOfAllocatedMaterial, as tags ScriptCode e ActivityCode seguem a mesma regra da lista ListOfMaterialOrders.
- A sessão ListOfQuotaActivity sempre é gerada para o Logix.
- Na ListOfQuotaActivity, a tag MachineCode , deverá ser gerada conforme validações:Se existir Arranjo, deverá usar o campo ORD_OPER.COD_ARRANJO. Se estiver nulo, buscar o recurso da man_recurso_operacao_ordem. Seguir a regra: Pesquisar por recurso critico. Se encontrar mais de um ou nenhum, buscar o primeiro recurso da man_recurso_operacao_ordem.
Processos
Transação Apontamento de Parada de Máquina: StopReport_1_001.xsd
Identificador da Mensagem: StopReport
Versão: 1_001
Módulo Logix: Chão de Fábrica
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
ProductionOrder | Ordem de Produção | man_apo_mestre.ordem_producao | DEC(10,0) | |||
ActivityCode | Código da Operação | man_apo_detalhe.operacao | CHAR(05) | |||
ActivityId | ID do Registro | man_apo_detalhe.sequencia_operacao | INT | |||
ProductionShiftNumber | Turno | man_tempo_producao.turno_producao | ||||
| MachineCode | Código Máquina | man_apo_detalhe.eqpto | CHAR(15) | TBLOutRSEv.ResourceCode | CHAR(15) |
| MachineDescription | Descrição Maquina |
|
|
|
|
| StopReasonCode | Código Motivo Parada | man_tempo_parada.parada_producao | CHAR(03) | TBLOutRSEv.ResourceStatusCode | CHAR(20) |
| StopReasonDescription | Descrição Motivo Parada | mot_parada.des_motivo | CHAR(30) |
|
|
| StartDateTime | Data/Hora Início | man_tempo_producao.data_ini_producao man_tempo_producao.hor_ini_producao | DATE CHAR(08) | TBLOutRSEv.ShiftDtStart | DATETIME |
| EndDateTime | Data/Hora Fim | man_tempo_producao.dat_final_producao man_tempo_producao.hor_final_producao | DATE CHAR(08) | TBLOutRSEv.ShiftDtEnd | DATETIME |
| OperatorCode | Código Operador | man_apo_detalhe.operador | CHAR(15) | TBLOutRSEv.UserCodeStart | CHAR(30) |
| ReportDateTime | Data/Hora Reporte | man_apo_mestre.data_producao | DATE | TBLOutRSEv.DtTimeStamp | DATETIME |
| ToolCode | Código Ferramenta |
|
|
|
|
| ProductionTeamCode | Código Equipe |
|
|
|
|
| StopType | Tipo Parada (1=Não Programada;2=Programada) |
|
|
|
|
| ReportSequence | ID PC-Factory |
|
| TBLOutRSEv.IDOutRSEv |
|
ReversedReport | Indicador de Estorno | TRUE ou FALSE | BOOLEAN | |||
IntegrationReport | Registro a ser estorno | man_apo_mestre.seq_reg_mestre | INT |
Nota:
- Essa mensagem será gerada pelo PC-Factory e enviado ao Logix.
- O programa de apontamento de parada é o MAN8228 e deverá ser informado o motivo da parada e a data/hora início e fim de parada. O processamento seguirá as regras do apontamento de parada do MAN8228
- O Logix, diferente de outros ERPs, obriga algumas tags: ProductionOrder, ActivityCode e ProductionShiftNumber
- Quando a tag ActivityId não vier informada, deverá usar a maior sequencia da operação para o código da operação. Pesquisar a tabela/campo ord_oper.num_seq_operac
- Para tabela/campo man_apo_mestre.observacao será gravado o conteúdo 'TOTVS MES' para indicar a origem do apontamento.
- Apontamento de parada setará o man_tempo_producao.periodo_produtivo como 'I'
- Todo apontamento deverá enviar uma mensagem de retorno, indicando possíveis problemas ou processamento efetuado com sucesso. Será retornado o man_apo_mestre.seq_reg_mestre. Este mesmo número será utilizado quando precisar registrar um estorno (IntegrationReport)
- O estorno ocorre quando o campo o campo ReversedReport (Estorno do apontamento) possuir o conteúdo TRUE.
Quando for estorno deverá, obrigatoriamente, ter o número do apontamento, campo IntegrationReport. - O estorno pode ser gerado de duas formas no arquivo: somente o estorno ou estorno + apontamento. Quando a mensagem possuir o estorno e o apontamento só pode commitar as movimentações quando ambas forem concluídas.
Para identificar se a mensagem possui somente estorno ou estorno + apontamento deverá verificar as seguintes situações:
Somente estorno: possui somente as informações do ReversedReport e IntegrationReport com a demais tags sem dados.
Estorno + apontamento: possui ReversedReport e IntegrationReport informados e os demais dados obrigatórios (Ordem de produção, Operação,Máquina, Motivo de Parada, Data/Hora Início e Fim e Data/Hora Reporte) preenchidos.
Transação Apontamento de Produção: ProductionAppointment_2_000.xsd
Identificador da Mensagem: ProductionAppointment
Versão: 2_003
Módulo Logix: Chão de Fábrica
Tipo de Envio: Síncrona
BusinessContentType | MachineCode | Máquina | man_apo_detalhe.eqpto | CHAR(15) | TBLOutInteg.ResourceCode | CHAR(15) |
---|---|---|---|---|---|---|
ProductionOrderNumber | Ordem de Produção | man_apo_mestre.ordem_producao | DECIMAL(10,0) | TBLOutInteg.WOCode | CHAR(41) | |
ActivityCode | Operação | man_apo_detalhe.operacao | CHAR(05) | TBLOutInteg.WODetCode | CHAR(10) | |
Split | Split | TBLOutInteg.WODetCode | CHAR(10) | |||
ActivityID | ID Operação | man_apo_detalhe.seq_processo | DECIMAL(10,0) | |||
ItemCode | Produto | man_apo_mestre.item_produzido | CHAR(15) | TBLOutInteg.ProductCode | CHAR(20) | |
ApprovedQuantity | Quantidade Aprovada | man_item_produzido.qtd_produzida | DECIMAL(10,3) | TBLOutInteg.Qty | DEC(19,4) | |
ScrapQuantity | Quantidade Refugada | man_item_produzido.qtd_produzida | DECIMAL(10,3) | TBLOutInteg.Qty | DEC(19,4) | |
ReworkQuantity | Quantidade Retrabalhada | |||||
StartSetupDateTime | Data/Hora Início Preparação | |||||
EndSetupDateTime | Data/Hora Fim Preparação | |||||
SetupCode | Código Preparação | |||||
OpTimeInt | Tempo Operação | |||||
ProductionShiftCode | Código Modelo Turno | |||||
ProductionShiftNumber | Número Turno | man_tempo_producao.turno_producao | CHAR(05) | TBLOutInteg.Shift | SMALLINT | |
DocumentCode | Documento | TBLOutInteg.DocNumber | CHAR(20) | |||
DocumentSeries | Série Documento | |||||
StartReportDateTime | Data/Hora Início Reporte | man_tempo_producao.data_ini_producao + man_tempo_producao.hor_ini_producao | DATETIME | TBLMSGERP.Start | DATETIME | |
EndReportDateTime | Data/Hora Fim Reporte | man_tempo_producao.dat_final_producao + man_tempo_producao.hor_final_producao | DATETIME | TBLMSGERP.End | DATETIME | |
ReversedReport | Estorno do Apontamento | TRUE ou FALSE | BOOLEAN | |||
ReversalDate | Data do estorno | TBLOutInteg.DTEv | DATETIME | |||
ReportDateTime | Data/Hora Reporte | man_apo_mestre.data_apontamento | DATE | TBLOutInteg.DtEv | DATETIME | |
WarehouseCode | Código Depósito | man_item_produzido.local | CHAR(10) | TBLOutInteg.WarehouseCode | CHAR(15) | |
LotCode | Lote/Série | man_item_produzido.lote_produzido ou man_item_produzido.serie | CHAR(15) CHAR(25) | TBLOutInteg.LotCode | CHAR(41) | |
LotDueDate | Data Validade Lote | man_item_produzido.dat_valid | DATE | TBLLot.DtValidity | DATETIME | |
CloseOperation | Encerra Operação | ord_oper.ies_apontamento | CHAR(01) | |||
LocationCode | Localização | man_item_produzido.endereco | CHAR(15) | TBLOutInteg.Address1Code | CHAR(15) | |
ListOfReversalAppointments | ||||||
IntegrationReport | Registro a ser estornado | man_apo_mestre.seq_reg_mestre | DECIMAL(10,0) | TBLOutInteg.TransacType | TINYINT | |
ReversalType | Tipo do Estorno | |||||
ReversalQuantity | Quantidade revertida | |||||
WasteAppointment | ||||||
WasteCode | Código Refugo | man_def_producao.motivo_defeito | DECIMAL(3,0) | TBLOutInteg.ScrapCode | CHAR(15) | |
WasteDescription | Descrição Refugo | defeito.den_defeito | CHAR(30) | |||
ScrapQuantity | Quantidade Refugada | man_def_producao.qtd_defeito_real | DECIMAL(10,3) | TBLOutInteg.Qty | DEC(18,4) | |
ScrapProduct | Produto Refugado | |||||
WareHouseCode | Depósito Produto Refugado | |||||
ScrapProductTo | Refugo Gerado | man_item_produzido.item_produzido | CHAR(15) | |||
WareHouseCodeTo | Depósito do Refugo gerado | |||||
AdressCode | Endereço Origem | |||||
AdressCodeTo | Endereço Destino | |||||
NumberSeries | Número de Série | |||||
NumberSeriesTo | Número de Série Destino | |||||
LotCode | Lote | |||||
SubLoteCode | Sub Lote | |||||
LotDueDate | Data de Validade | |||||
CostCenterCode | Centro de Custo | |||||
ResourceAppointment | ||||||
OperatorCode | Código Operador | man_apo_detalhe.operador | CHAR(15) | TBLOutInteg.UserCode | CHAR(30) | |
StartDateTime | Data/Hora Início | TBLMSGERP.Start | DATETIME | |||
EndDateTime | Data/Hora Fim | TBLMSGERP.End | DATETIME | |||
MOBTime | Tempo Mão de Obra Direta | |||||
ExtraTime | Tempo Extra | |||||
UtilTime | Tempo Útil | |||||
ProductionShiftCode | Código Modelo Turno | |||||
ProductionShiftNumber | Número Turno | TBLOutInteg.Shift | SMALLINT | |||
SupplyOrder | ||||||
ProductionOrderNumber | Número Ordem Produção | man_apo_mestre.ordem_producao | DECIMAL(10,0) | TBLOutInteg.WOCode | CHAR(41) | |
MaterialCode | Código Item Reserva | man_comp_consumido.item_componente | CHAR(15) | TBLOutInteg.ProductCode | CHAR(20) | |
UsedQuantity | Quantidade Utilizada | man_comp_consumido.qtd_baixa_real | DECIMAL(10,3) | TBLOutInteg.Qty | DEC(19,4) | |
WarehouseCode | Código Depósito | man_comp_consumido.local_estoque | CHAR(10) | TBLOutInteg.WarehouseCode | CHAR(15) | |
LocationCode | Localização | man_comp_consumido.endereco | CHAR(15) | TBLOutInteg.Address1Code | CHAR(15) | |
LotCode | Lote/Série | man_comp_consumido.lote_componente ou man_comp_consumido.serie | CHAR(15) CHAR(25 | TBLOutInteg.LotCode | CHAR(41) | |
ActivityCode | Código Operação | TBLOutInteg.WODetCode | CHAR(10) | |||
ScriptCode | Roteiro | |||||
ReportToolActivity | ||||||
ToolCode | Código Ferramenta |
Nota:
- Esta mensagem será gerada pelo PC-Factory e enviado ao Logix.
- Se o item controlar WMS integração não será permitida. Rotinas do WMS não preparadas para receber dados do PC-Factory.
- Deverá respeitar o processamento executado pelo MAN8228 (exceto quando for consumo real)
- Na tag ItemCode será enviado o código do item. Nesse caso, quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim", será verificado na tabela/campo man_item_mes.item_mes se o código do item existe nessa tabela. Caso exista, será considerado o item da tabela/campo man_item_mes.item e os códigos das grades da tabela/campos man_item_mes.grade_1, man_item_mes.grade_2, man_item_mes.grade_3, man_item_mes.grade_4, man_item_mes.grade_5. Caso o parâmetro esteja igual a "Não, será considerado a tabela/campo item.cod_item.
- A tag ProductionShiftNumber, turno, é obrigatório no apontamento de produção.
- A tag ApprovedQuantity será gravada na tabela/campo man_item_produzido.qtd_produzida, com a tabela/campo man_item_produzido.tip_producao igual a "B" (boas).
- A tag ScrapQuantity será gravada na tabela/campo man_item_produzido.qtd_produzida, com a tabela/campo man_item_produzido.tip_producao igual a "R" (refugo).
- A tag StartReportDateTime será gravada na tabela/campo man_tempo_producao.data_ini_producao + man_tempo_producao.hor_ini_producao e, caso o parâmetro Utilizar data fim de apontamento como data de movimentação do estoque? do LOG00087 - Processo Manufatura - Chão de Fábrica - Apontamento de Produção estiver diferente de "S", irá gravar também na tabela/campo man_apo_mestre.data_producao.
- A tag EndReportDateTime será gravada na tabela/campo man_tempo_producao.dat_final_producao + man_tempo_producao.hor_final_producao e, caso o parâmetro Utilizar data fim de apontamento como data de movimentação do estoque? do LOG00087 - Processo Manufatura - Chão de Fábrica - Apontamento de Produção estiver igual a "S", irá gravar também na tabela/campo man_apo_mestre.data_producao.
- Caso a ReportDateTime não exista ou seja igual a branco ou nulo, será considerado a data atual.
- Quando a tag ActivityId não vier informada, deverá usar a maior sequencia da operação para o código da operação. Pesquisar a tabela/campo ord_oper.num_seq_operac
Todo apontamento deverá enviar uma mensagem de retorno, indicando possíveis problemas ou processamento efetuado com sucesso. Em caso de sucesso o número do apontamento é enviado ao Pc-Factory na mensagem de retorno da ProductionAppointment. Retornar a tabela/campo man_apo_mestre.seq_reg_mestre. Este mesmo número será utilizado quando precisar registrar um estorno (IntegrationReport).
- O estorno ocorre quando o campo o campo ReversedReport (Estorno do apontamento) possuir o conteúdo TRUE.
Quando for estorno deverá, obrigatoriamente ter o número do apontamento, campo IntegrationReport. Poderá conter uma lista de Ids(ListOfReversalAppointments) que serão estornados. A tag ReversalType indica qual o processo a ser executado, sendo, 1 = Produção; 2 = Recusa, sendo que no Logix será sempre igual a 1. - O estorno pode ser gerado de duas formas no arquivo: somente o estorno ou estorno + apontamento.
Somente estorno: possui quantidade aprovada e refugado zerado (ou sem conteúdo) e dados do ReversedReport.
Estorno + apontamento: possui ReversedReport informado e dados da ordem e quantidade aprovada ou refugada maior que zero. - Na sessão SupplyOrder, a tag MaterialCode será enviado o código do item. Nesse caso, quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim", será verificado na tabela/campo man_item_mes.item_mes se o código do item existe nessa tabela. Caso exista, será considerado o item da tabela/campo man_item_mes.item e os códigos das grades da tabela/campos man_item_mes.grade_1, man_item_mes.grade_2, man_item_mes.grade_3, man_item_mes.grade_4, man_item_mes.grade_5. Caso o parâmetro esteja igual a "Não", será considerado a tabela/campo item.cod_item.
- Caso a tag CloseOperation seja igual a TRUE, será alterado a tabela/campo ord_oper.ies_apontamento igual a "F" (finalizado). Caso essa tag seja igual a FALSE, não será alterada.
- Na sessão WasteAppointment, a tag ScrapProductTo será enviado o código do item. Nesse caso, quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim", será verificado na tabela/campo man_item_mes.item_mes se o código do item existe nessa tabela. Caso exista, será considerado o item da tabela/campo man_item_mes.item e os códigos das grades da tabela/campos man_item_mes.grade_1, man_item_mes.grade_2, man_item_mes.grade_3, man_item_mes.grade_4, man_item_mes.grade_5. Caso o parâmetro esteja igual a "Não, será considerado a tabela/campo item.cod_item.
- Na sessão WasteAppointment, quando a tag ScrapProductTo vier preenchida será efetuado o apontamento de sucata.
- Para tabela/campo man_apo_mestre.observacao será gravado o conteúdo 'TOTVS MES' para indicar a origem do apontamento.
Notas Consumo dos componentes:
- O consumo dos componentes deverá respeitar parametrização do MAN10538. Na rotina de parâmetros será definido como será o tratamento do consumo dos componentes:
1 - BackFlush: Sempre irá realizar a baixa dos componentes conforme o definido na Engenharia. Desconsidera a lista de consumo SupplyOrder.
2 - Consumo Real: Irá consumir conforme lista de componentes, SupplyOrder, enviada na mensagem. Poderá consumir componentes em qualquer operação (exceto se o sofre baixa estiver igual a "N" no MAN10021). - No PC-Factory apontamento e consumo poderão ser enviados em arquivos XMLs diferentes.
- No PC-Factory, não são utilizados lote e número de série ao mesmo tempo. O retorno desse conteúdo será via tag SupplyOrder - LotCode, que pode ser o Lote ou número de série, conforme o cadastro do item.
Notas Refugo
- Para o apontamento de refugo utilizar a sessão ListOfWasteAppointments.
- Somatório da quantidade refugada da ListOfWasteAppointments deve ser igual a tag ScrapQuantity do BusinessContentType
Limitações / Restrições Gerais
A integração não contempla a geração de ordens pelo APS, cadastramentos via Fluig (WorkFlow) ou rotinas não descritas nesse documento.
A Build deve ser igual ou superior a 7.00.131227A e data 08/09/2014.
Situações comuns
Possíveis situações problemáticas comuns que podem ocorrer durante o funcionamento da integração e como solucioná-los.
1) Quando uma mensagem é enviada do Logix para o PC-Factory, podem ocorrer situações em que o WebService não estará totalmente funcional. Nesses casos, uma mensagem de erro genérica irá aparecer na tela:
Não foi possível realizar a conexão com o WebService do PCFactory.
Para resolver este problema, verifique as configurações do sistema de destino, analisando o funcionamento do servidor utilizado para esta comunicação e a habilitação do endereço do WebService.
2) Clientes que possuem regras específicas que afetam as rotinas listadas neste documento.
Para resolver este problema, deverá verificar o uso de ponto de entrada
3) Tempo de espera do WebService. Devido alguns processos ser demorados, quando o ERP envia o retorno, o WebService pode não estar mais no aguardo.
Alterar o tempo de espera do WebService PC-Factory.
Checklist de suporte da aplicação
Checklist de Verificações:
- Na rotina de parâmetros, MAN10538, verificar se o campo ativo está como "1 - ATIVO"
- Na rotina de parâmetros, MAN10538, testar conexão com o WebService da PPI informado por meio do botão Testar.
- Configuração das sessões WEBSERVICE do APPSERVER.INI;
- Realizar possíveis ajustes na integração quanto à configuração ou negócio.