Integração PCP Logix x PPI-Multitask
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 / LOGIX 12.1.18;
- FRAME LOGIX 12.1.17;
- PC-FACTORY (PPI MULTITASK).
Objetivo da 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 da integração
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:
Restrições
Não é possível utilizar o conceito de prioridade do programa MAN10243.
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 Framework da 12.1.17.
WebService
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
xmlsaveall=0
NameSpace=http://totvs.com
URLLocation=http://10.80.128.17:2347
Logix=1
Security=0
PROFILE=0
TRACEHOST=0PROFILE=0
[HTTP]
Enable=1
Port=8080
path=c:\totvs\bin\smartclient\
Environment=migralgx
;FIM CONFIGURACAO WEBSERVICE
Importante:
Configuração do JOB
As mensagens de saldo de estoque atualizados pelo Logix e ordens de produção geradas pelo APS são enviadas por meio do JOB do Logix. Necessário configurar a sessão ONSTART do appserver.
Exemplo:
[ONSTART]
Jobs=4GLJOB1
[4GLJOB1]
Environment=migralgx
Main=JobStarter
Mensagens de Retorno
Para processar as mensagens deve ser atualizado o campo MAXSTRINGSIZE da sessão General do appserver:
MAXSTRINGSIZE=500
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 Integração Ativa? 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 é necessário 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);
- Criaçã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 (SUP0076) ou (SUP3335);
- Cadastro, alteração e exclusão dos processos (MAN10243);
- Saldo em estoque.
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);
- Transferências (SUP8790);
- Request - Saldo em estoque (SUP0170).
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 Logix 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_001 | MAN10243 | MAN_PROCESSO_ITEM | |
07 | Ordem de Produção | Logix | PC-Factory | ProductionOrder_2_008.xsd | MAN0515 MAN10255 MAN10500 MAN10030 MAN10029 MAN10055 MAN10034 MAN10031 MAN10032 MAN0860 MAN0730 | ORDENS | |
08 | Endereço | Logix | PC-Factory | AddressStock_1_000 | SUP0076 SUP3335 | ENDERECO | |
09 | Saldo em Estoque | Logix | PC-Factory | ItemStockLevel_1_000 | JOB | ESTOQUE_TRANS_END | |
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 | |
13 | Transferência | PC-Factory | Logix | TransferWareHouse_1_003 | SUP8790 SUP0737 SUP5620 SUP0638 | ESTOQUE_TRANS ESTOQUE_TRANS_END | |
14 | Movimentações | PC-Factory | Logix | MovimentsInternal_1_001 | SUP0710 | ESTOQUE_TRANS ESTOQUE_TRANS_END | |
15 | Request Saldo | PC-Factory | Logix | StockLevel_2_000 | SUP0170 | ESTOQUE_LOTE_ENDER |
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 SUP0076 ou SUP3335, 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:
- Operador efetua reporte normalmente conforme sua operação no PC-Factory.
- 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.
- 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).
- 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 dos cadastros
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
- TransferWareHouse
- MovimentsInternal
- StockLevel
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 logix.</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>
Autenticação da mensagem
Quando o usuário e a senha estiverem cadastrados no MAN10538 (Parâmetros), folder Segurança, estes dados serão enviados na mensagem para que o PC-Factory efetue a autenticação.
Estes dados serão enviados no cabeçalho da mensagem da seguinte forma:
Authorization: Basic QWxhZGRpbjpPcGVuU2VzYW1l
Onde: O valor será usuário:senha criptografado em Base64.
O recebimento das mensagens também seguirão mesmo modelo, porém o PC-Factory enviará um usuário do Logix.
Importante:
Para configurar a autenticação no recebimento, o appserver.ini deve ter o campo SECURITY=1, conforme exemplo de configuração do WebService.
Security = 0 -> Não utiliza autenticação.
Security = 1 -> Utiliza autenticação
Alerta de risco: fique atento ao utilizar o parâmetro de configuração com a chave Security=0, pois isso fará com que as integrações (APIs) não exijam autenticação, consequentemente dados do seu ambiente poderão ser consultados sem qualquer controle de autorização.
Rotinas Envolvidas
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 "APS". Indica se a integração(JOB) com o APS está ativa.
Painel "Arranjo". Indica se será enviado o código do arranjo como código da máquina nas operações da ordem.
Painel "Usuário Apontamentos". Indica para qual usuário será registrado o apontamento de produção.
Folder "Operações": Define o filtro criado para as operações da ordem de produção. - Roteiros;
- Estrutura;
- Endereço.
- Movimentos e transferências
Além dos filtros, devem ser definidas as operações de estoque a serem realizadas no recebimento das mensagens, e também definir as contas contábeis.
Painel Operações de Estoque:
- Entrada: Somente informar operação de estoque que esteja cadastrada no SUP0660 com o tipo entrada;
- Saída: Somente informar operação de estoque que esteja cadastrada no SUP0660 com o tipo saída;
- Transferência: Somente informar operação de estoque que esteja cadastrada no SUP0660 com o tipo diversos.
Painel Contas Contábeis:
- Entrada;
- Saída. - Saldos
Painel Operações de estoques integradas:
- Array para incluir as operações de estoque que permitem integração do saldo com o TOTVS MES.
Painel Data de corte das movimentações:
- Campo para indicar a data em que as movimentações deverão ser consideradas. - Segurança
Utilizado para realizar o controle autenticação na troca de mensagem entre os sistemas. Permite informar usuário e senha que devem ser válidos no PC-Factory, ou seja, informar o usuário e senha cadastrado no PC-Factory.
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á dividida 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;
- Transferências;
- Movimentações de Estoque.
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 - Controle de Grade
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ária 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, a 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
Nota:
Mensagens de 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á reenviada 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á considerada 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á considerada 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 geradoS 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
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á considerada 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 sequência 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 sequência 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 nã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_001.xsd
Identificador da Mensagem: ItemScript
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 | 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 | ||||
PartsPerCycle | Quantidade de peças por ciclo | man_processo_item.qtd_pecas_ciclo | DECIMAL(12,7) |
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á considerada 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 sequência 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 crítico). 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 | endereco.cod_local | CHAR(10) | TBLInAddress.WarehouseCode | CHAR(15) |
| LocationCode | Endereço/Localização | endereco.endereco | CHAR(15) | TBLInAddress.Code | CHAR(15) |
| AddressInternalId | Chave completa endereço | endereco.cod_empresa+endereco.cod_local+endereco.endereco | |||
| AddressStockDescription | Descrição do endereço | endereco.descr_cam | CHAR(15) | TBLInAddress.ExtCode | CHAR(20) |
Nota:
Serão integrados os endereços cadastrados no SUP0076 e SUP3335.
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 cadastro de Motivo de Parada é efetuado nos programas MAN10095 e MAN1470.
Transação Ordem de Produção: ProductionOrder_2_008.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) | ||
AuxiliarItemCode | Código do Item Pai da OP | ordens.cod_item_pai | CHAR(15) | |||
| 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) | ||
OrderNeed | Número da necessidade da OP | ordens.num_neces | DECIMAL(10,0) | |||
ListOfActivityOrders |
| |||||
| ProductionOrderNumber | Ordem de Produção | ord_compon.num_ordem | DECIMAL(10,0) | TBLInWoDet.Wocode | CHAR(10) |
| ActivityID | ID do Registro | ord_oper.num_seq_operac | DECIMAL(3,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 | ||||
ActivitySequence | Prioridade da execução das operações | NÃO UTILIZADO | ||||
| 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 | Soma de man_recurso_operacao_ordem.qtd_recurso do tipo de recurso 'Mão-de-obra' (ies_tip_recur = '1'). Caso não haja recurso de 'Mão-de-obra' será enviado valor default "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) |
ComponentNeed | Número da necessidade do item componente | necessidades.num_neces | DECIMAL(10,0) | |||
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 | ord_oper.cod_arranjo | 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.num_seq_operac | DECIMAL(3,0) | 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, se 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 integradas 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 este for igual a "1", será gravado "4" (apontamento por item). Caso seja 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, segue a seguinte regra:
Se o parâmetro "Utiliza Arranjo?" do programa MAN10538 estiver MARCADO: Se existir Arranjo, deverá usar o campo ORD_OPER.COD_ARRANJO. Se estiver nulo, buscar o recurso da man_recurso_operacao_ordem. Para localizar o recurso seguir a regra: Pesquisar por recurso crítico. Se encontrar mais de um recurso crítico será utilizado o primeiro encontrado, ordenando por código do recurso. Se não encontrar nenhum recurso crítico, buscar o primeiro recurso da man_recurso_operacao_ordem.
Se o parâmetro "Utiliza Arranjo?" do programa MAN10538 estiver DESMARCADO: busca o recurso da man_recurso_operacao_ordem. Para localizar o recurso seguir a regra: Pesquisar por recurso crítico. Se encontrar mais de um recurso crítico será utilizado o primeiro encontrado, ordenando por código do recurso. Se não encontrar nenhum recurso crítico, buscar o primeiro recurso da man_recurso_operacao_ordem.
Somente serão considerados recursos cadastrados com o tipo “Equipamento” (tabela RECURSO.IES_TIP_RECUR = 2). Se não existir nenhum recurso do tipo Equipamento na operação, não será enviado o código da máquina.
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, segue a seguinte regra:
Se o parâmetro "Utiliza Arranjo?" do programa MAN10538 estiver MARCADO: Se existir Arranjo, deverá usar o campo ORD_OPER.COD_ARRANJO. Se estiver nulo, buscar o recurso da man_recurso_operacao_ordem. Para localizar o recurso seguir a regra: Pesquisar por recurso crítico. Se encontrar mais de um recurso crítico será utilizado o primeiro encontrado, ordenando por código do recurso. Se não encontrar nenhum recurso crítico, buscar o primeiro recurso da man_recurso_operacao_ordem.
Se o parâmetro "Utiliza Arranjo?" do programa MAN10538 estiver DESMARCADO: busca o recurso da man_recurso_operacao_ordem. Para localizar o recurso seguir a regra: Pesquisar por recurso crítico. Se encontrar mais de um recurso crítico será utilizado o primeiro encontrado, ordenando por código do recurso. Se não encontrar nenhum recurso crítico, buscar o primeiro recurso da man_recurso_operacao_ordem.
Somente serão considerados recursos cadastrados com o tipo “Equipamento” (tabela RECURSO.IES_TIP_RECUR = 2). Se não existir nenhum recurso do tipo Equipamento na operação, não será enviado o código da máquina.
Quando o parâmetro "Utilizar o conceito de grade de produto?" localizado no LOG00087, Processo Manufatura, Engenharia, Grade, estiver igual a "Sim", a rotina MAN0515 permitirá incluir ordem de produção para grades que não tenham estrutura (considera somente os componentes genéricos). Quando isso ocorrer, além da mensagem ProductionOrder, serão enviadas as mensagens de Item, ItemStructure e ItemScript para o "Item MES" gerado.
A tag RequestType (Tipo da Requisição) identifica se a requisição pode ser feita separadamente do reporte da produção, conforme regra abaixo:
RequestType =1, Direta -> MovimentsInternal
RequestType =2, Indireta -> ProductionAppointment
As tags AuxiliarItemCode e OrderNeed somente serão enviadas com valor nas ordens de produção geradas a partir do processamento do MRP.
- A tag ActivitySequence não faz parte do escopo da integração com o TOTVS MES.
Mensagens de 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 Máquina | ||||
| 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 enviada 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 sequência 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.sequencia_operacao | DECIMAL(3,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 | |
OpTimeDec | Tempo Operação | man_tempo_producao.tempo_tot_producao | DECIMAL(12,2) | |||
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 enviada 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. OBS: Quando enviado apontamento de quantidade, a hora início da produção será zerada, pois, o tempo de produção é enviado através da tag OpTieDec em outro apontamento somente de tempo.
- 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. OBS: Quando enviado apontamento de quantidade, a hora fim da produção será zerada, pois, o tempo de produção é enviado através da tag OpTieDec em outro apontamento somente de tempo.
- A tag OpTimeDec será sempre o tempo LÍQUIDO da produção e, quando enviada, será gravada na tabela/campo man_tempo_producao.tempo_tot_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 sequência 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.
- Logix x TOTVS MES, trata os seguintes dimensionais: Lote, Endereço, Nr. de Série e Data de Validade. Outros dimensionais não são integrados, gerando mensagem de erro.
- Relatório MAN10542 (Apontamento da Produção) para apresentar as informações dos apontamentos efetuados para um determinado período. Neste relatório pode-se identificar os apontamentos realizados pelo TOTVS MES, principalmente quando estiver parametrizado "Consumo Real".
Nota:
- 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.
Nota:
- 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.
Transação Transferências: TransferWarehouse_1_003.xsd
Identificador da Mensagem: TransferWarehouse
Versão: 1_003
Módulo Logix: Estoque
Tipo de Envio: Síncrona
Nota:
BusinessContentType | CompanyId | Empresa | ||||
---|---|---|---|---|---|---|
BranchId | Filial | |||||
CompanyInternalId | InternalId da chave completa da empresa | |||||
InternalId | InternalId da transferência | |||||
Number | Número da Movimentação | |||||
RegisterDateTime | Data de Emissão da solicitação | |||||
TransferWarehouseType | ||||||
InternalId | InternalId da transferência | |||||
EmissionDate | Data de Emissão | ESTOUE_TRANS.DAT_MOVTO | DATE | TBLOutInteg.DtTimeStamp | DATETIME | |
ItemCodeFrom | Item/Produto Origem | ESTOUE_TRANS.COD_ITEM | CHAR(15) | TBLOutInteg.ProductCode | CHAR(20) | |
ItemCodeTo | Item/Produto Destino | ESTOUE_TRANS.COD_ITEM | CHAR(15) | TBLMovEv.ProductCode | CHAR(20) | |
UnitOfMeasureFrom | Unidade de Medida Origem | |||||
UnitOfMeasureTo | Unidade de Medida Destino | |||||
Quantity | Quantidade | ESTOUE_TRANS.QTD_MOVTO | DEC(12,2) | TBLOutInteg.Qty | DEC(19,4) | |
WarehouseCodeFrom | Código do Armazém de Origem | ESTOUE_TRANS.COD_LOCAL_EST_ORIG | CHAR(02) | TBLOutInteg.WarehouseCode | CHAR(15) | |
WarehouseCodeTo | Código do Armazém Destino | ESTOUE_TRANS.COD_LOCAL_EST_DEST | CHAR(02) | TBLMovEv.WarehouseCode | CHAR(15) | |
LotNumberFrom | Número do Lote de Origem | ESTOUE_TRANS.NUM_LOTE_ORIG | CHAR(10) | TBLOutInteg.LotCode | CHAR(41) | |
LotNumberTo | Número do Lote de Destino | ESTOUE_TRANS.NUM_LOTE_DEST | CHAR(10) | TBLMovEv.LotCode | CHAR(41) | |
SubLotNumber | Número do SubLote | |||||
LotExpirationDateFrom | Data de validade do Lote Origem | TBLLot.DtDue | DATETIME | |||
LotExpirationDateTo | Data de validade do Lote Destino | TBLLot.DtDue | DATETIME | |||
AddressFrom | Endereço Origem | TBLOutInteg.Address1Code | CHAR(15) | |||
AddressTo | Endereço Destino | TBLOutInteg.Address2Code | CHAR(15) | |||
NumberSeries | Número de série | TBLOutInteg.LotCode | CHAR(41) |
Nota:
- Esta mensagem será gerada pelo PC-Factory e enviada ao Logix.
- As informações cadastradas no MAN10538 serão utilizadas para o processo de transferência, Operação de estoque entrada, Operação estoque saída, Conta contábil entrada, Conta contábil saída e Operação estoque transferência.
- Caso se tratar de um movimento de transferência entre código de itens, serão gerados dois movimentos de estoque, um de entrada e outro de saída, com as operações de estoque e contas contábeis cadastradas. Deverá ser gravado o relacionamento do movimento de saída e entrada na tabela est_trans_relac. Caso se tratar de um movimento de transferência entre locais de estoque, será gerado um único movimento de estoque, com a operação de estoque diversos.
- Será registrado que a transferência teve origem via integração com PC-Factory. Na tabela ESTOQUE_OBS será gravado um registro com o conteúdo "TOTVS MES".
- Transferências entre locais sem grade irá executar o mesmo processo que o SUP8790 e com grade o SUP0737.
- Transferências entre itens sem grade irá executar o mesmo processo que o SUP5620, e com grade o SUP0638.
Transação Movimentações de Estoque: MovementsInternal_1_001.xsd
Identificador da Mensagem: MovementsInternal
Versão: 1_001
Módulo Logix: Estoque
Tipo de Envio: Síncrona
Nota:
BusinessContentType | CompanyId | Código da empresa | ||||
BranchId | Filial | |||||
CompanyInternalId | InternalId da chave completa da empresa | |||||
InternalId | InternalId da movimentação. | |||||
TypeMovementCode | Código do Tipo de Movimento interno | |||||
EmissionDate | Data de Emissão | ESTOQUE_TRANS.DAT_MOVTO | DATE | TBLOutInteg. DtTimeStamp | DATETIME | |
ItemCode | Código do Produto | ESTOQUE_TRANS.COD_ITEM | CHAR(15) | TBLOutInteg.ProductCode | CHAR(20) | |
UnitOfMeasureCode | Unidade de Medida | |||||
Quantity | Quantidade | ESTOQUE_TRANS.QTD_MOVTO | DEC(12,2) | TBLOutInteg.Qty | DEC(19,4) | |
WarehouseCode | Código do Armazém | ESTOQUE_TRANS.COD_LOCAL_EST_DEST ESTOQUE_TRANS.COD_LOCAL_EST_ORIG | CHAR(02) | TBLOutInteg.WarehouseCode | CHAR(15) | |
LotNumber | Lote | ESTOQUE_TRANS.NUM_LOTE_DEST ESTOQUE_TRANS.NUM_LOTE_ORIG | CHAR(10) | TBLOutInteg.LotCode | CHAR(41) | |
SubLotNumber | SubLote | CHAR(06) | ||||
LotExpirationDate | Data Validade do Lote | ESTOQUE_TRANS_END.DAT_HOR_VALIDADE | DATE | TBLLot.DTDUE | DATETIME | |
Address | Endereço | ESTOQUE_TRANS_END.ENDERECO | CHAR(15) | TBLOutInteg.Address1Code | CHAR(15) | |
NumberSeries | NumberSeries | ESTOQUE_TRANS_END.NUM_SERIE | CHAR(20) | TBLOutInteg.LotCode | CHAR(41) | |
InputOrOutput | Movimento de Entrada ou Saída | E=Entrada / S = Saída | CHAR(01) | TBLOutInteg.MovTypeCode | CHAR(05) | |
ReferenceCode | Referência | -- | ||||
ScriptCode | Roteiro | CHAR(02) | ||||
ActivityCode | Operação | CHAR(02) | TBLOutInteg.WODetCode | CHAR(15) | ||
ProductionOrderNumber | Ordem de Produção/Documento | CHAR(13) | TBLOutInteg.WOCode | CHAR(41) | ||
FatherItemCode | Item Pai | -- |
Nota:
- Movimentações internas irão executar o mesmo processo que o SUP0710.
- A tag WarehouseCode será utilizada de acordo com o tipo de movimento, tag InputOrOutput. Se for entrada irá atualizar ESTOQUE_TRANS.COD_LOCAL_EST_DEST, caso seja saída irá atualizar ESTOQUE_TRANS.COD_LOCAL_EST_ORIG.
- A tag LotNumber será utilizada de acordo com o tipo de movimento, tag InputOrOutput. Se for entrada irá atualizar ESTOQUE_TRANS.NUM_LOTE_DEST, caso seja saída irá atualizar ESTOQUE_TRANS.NUM_LOTE_ORIG.
- Será registrado que a movimentação teve origem via integração com PC-Factory. Na tabela ESTOQUE_OBS será gravado um registro com o conteúdo "TOTVS MES".
- A tag InputOrOutput indica se é entrada ou saída. Com base nessa informação deverá considerar as operações de estoque e contas contábeis do cadastro MAN10538, folder "Movimentos e Transferência".
- Não terá a opção de estorno. Para realizar um processo de estorno deverá enviar a movimentação contrária, ou seja, para estornar uma entrada deverá enviar um movimento de saída.
Transação Saldo: ItemStockLevel_1_000.xsd
Identificador da Mensagem: ItemStockLevel
Versão: 1_000
Módulo Logix: Estoque
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo: Logix | Tipo | Tabela/Campo: PC-Factory | Tipo |
---|---|---|---|---|---|---|
BusinessContentType | ItemCode | Código do produto | ESTOQUE_TRANS_END.COD_ITEM | CHAR(15) | TBLInMovMat.ProductCode | CHAR(20) |
ItemDescription | Descrição do item | ITEM.DEN_ITEM_REDUZ | CHAR(30) | |||
ListOfStock | ||||||
ReferenceCode | Referência | -- | ||||
WarehouseCode | Depósito/Local de estoqe/Armazem | ESTOQUE_TRANS.COD_LOCAL_EST_DEST ESTOQUE_TRANS.COD_LOCAL_EST_ORIG | CHAR(02) | TBLInMovMat.WarehouseCode | CHAR(15) | |
LotCode | Número do Lote | ESTOQUE_TRANS.NUM_LOTE_DEST ESTOQUE_TRANS.NUM_LOTE_ORIG | CHAR(10) | TBLInMovMat.LotCode | CHAR(41) | |
SubLotCode | Sub-Lote | CHAR(06) | ||||
NumberSeries | Número de Série | ESTOQUE_TRANS_END.NUM_SERIE | CHAR(20) | |||
AddressCode | Endereço/Localização | ESTOQUE_TRANS_END.ENDERECO | CHAR(15) | TBLInMovMat.AddressCode | CHAR(15) | |
LotDueDate | Data de Validade | ESTOQUE_TRANS_END.DAT_HOR_VALIDADE | DATE | TBLInMovMat.LotDtValidity | DATETIME | |
CurrentStockAmount | Saldo de estoque | DEC(12,2) | ||||
BookedStockAmount | Quantidade Reservada | DEC(12,2) | ||||
AvailableStockAmount | Saldo disponível | DEC(12,2) | ||||
QuantityUpdated | Quantidade Atualizada | ESTOQUE_TRASN_END.QTD_MOVTO | DEC(12,2) | TBLInMovMat.Qty | DEC(18,2) | |
InputOutput | Entrada ou Saída | 1 = Entrada ou 2 = Saída | CHAR(01) | TBLInMovMat.Classification | CHAR(15) |
Nota:
- Quando atualizar um saldo no ERP, deverá enviar a mensagem ao PC-Factory. As movimentações de estoque (de entrada e saída) que são realizadas no ERP Logix serão enviadas para o PC-Factory. Estas movimentações podem ser parametrizadas no MAN10538, folder "Saldos" painel "Operações de estoque integradas".
- No MAN10538, folder "Saldos" deverá ser cadastrada a "Data de corte das movimentações", para informar a partir de qual data em que as movimentações serão consideradas.
- Quando o saldo for atualizado por uma atualização do PC-Factory não deverá gerar mensagem de atualização de saldo. Quando a origem da alteração do saldo for TOTVS MES não será gerada a mensagem.
- O campo QuantityUpdated corresponde a quantidade atualizada, ou seja, a quantidade que está sendo movimentada.
- O campo InputOutput indica se a movimentação é uma entrada ou saída.
- O controle das movimentações enviadas para o TOTVS MES será registrado na tabela sup_par_movta_est. Este controle poderá ser enviado para histórico por meio da rotina SUP2720.
- A tag WarehouseCode será utilizada de acordo com o tipo de movimento, tag InputOrOutput. Se for entrada irá atualizar ESTOQUE_TRANS.COD_LOCAL_EST_DEST, caso seja saída irá atualizar ESTOQUE_TRANS.COD_LOCAL_EST_ORIG.
- A tag LotCode será utilizada de acordo com o tipo de movimento, tag InputOrOutput. Se for entrada irá atualizar ESTOQUE_TRANS.NUM_LOTE_DEST, caso seja saída irá atualizar ESTOQUE_TRANS.NUM_LOTE_ORIG.
As movimentações de estoque serão enviadas via JOB - MAN10543. Este JOB irá selecionar as movimentações de estoque das tabelas estoque_trans/estoque_trans_end, cuja operação de estoque está parametrizada (MAN10538).
Para cadastrar o JOB deve-se utilizar o JOB0003.
Usar como parâmetros , empresa e usuário.
Transação Saldo em Estoque - Request: StockLevel_2_000.xsd
Identificador da Mensagem: StockLevel
Versão: 2_000
Módulo Logix: ESTOQUE
Tipo de Envio: Síncrona
Para este tipo de atualização o PC-Factory solicita o saldo ao Logix. A mensagem possui duas partes. O Request, nas quais são passados os parâmetros para a consulta do saldo, e o Return, que contém o retorno do saldo.
Request será gerado pelo PC-Factory e enviado ao Logix. O Return será gerado pelo Logix e enviado ao PC-Factory.
Request
ListOfRequest | ItemInternalId | Código do produto | CHAR(15) |
ReferenceCode | Referência | CHAR(20) | |
WarehouseInternalId | Código do depósito/local de estoque/Armazém | CHAR(10) | |
LotNumber | Lote | CHAR(10) | |
SubLotCode | SubLote | CHAR(10) | |
SerialNumber | Número de Série | CHAR(20) | |
Address | Localização | CHAR(15) | |
LotExpirationDate | Data de Validade | DATE |
Nota:
- A busca pode ocorrer das seguintes formas:
Por Produto: Retorna informação de todos os locais de estoque do produto.
Por Local de Estoque (Armazém): Retorna informação de todos os produtos no local de estoque.
Por Local de Estoque (Armazém) e Produto: Retorna informação sobre o Produto no Local de Estoque definido. - Para os demais campos, Lote, sub-Lote, número de série, localização e data de validade considerar somente se informar o código do produto. Se enviar esses campos sem o código do produto, deve retornar mensagem de erro.
- O Request poderá ser uma lista de solicitação.
Return
ReturnContentType | ClosingStockDate | Data fechamento estoque | -- | |
ListOfReturnItem | CompanyId | Empresa | ||
BranchId | Filial | |||
CompanyInternalId | Empresa + Filial | |||
ItemInternalId | Código do produto | ESTOQUE_LOTE_ENDER.COD_ITEM | CHAR(15) | |
ReferenceCode | Referência | -- | ||
ListOfStockBalance | ||||
WarehouseInternalId | Local de Estoque (Armazém/Depósito) | ESTOQUE_LOTE_ENDER.COD_LOCAL | CHAR(10) | |
LotNumber | Número do Lote | ESTOQUE_LOTE_ENDER.NUM_LOTE | CHAR(10) | |
SubLotCode | Sub Lote | CHAR(10) | ||
LotExpirationDate | Data de validade | ESTOQUE_LOTE_ENDER.DAT_HOR_VALIDADE | DATE | |
SerialNumber | Número de série | ESTOQUE_LOTE_ENDER.NUM_SERIE | CHAR(20) | |
Address | Localização | ESTOQUE_LOTE_ENDER.ENDERECO | CHAR(15) | |
CurrentStockAmount | Saldo do Produto em quantidade | DEC(17,4) | ||
BookedStockAmount | Quantidade reservada em Estoque | DEC(17,4) | ||
AvailableStockAmount | Saldo disponível do Produto em quantidade | DEC(17,4) | ||
UnitItemCost | Custo unitário do Produto | -- | ||
AverageUnitItemCost | Custo médio do Produto | -- | ||
ValueOfCurrentStockAmount | Saldo atual do estoque do produto em valor | -- |
Nota:
- A tag CurrentStockAmount é gerada com a quantidade liberada em estoque (supr9_saldos_get_qtd_tot_liberada + supr9_saldos_get_qtd_tot_excepcional).
- A tag BookedStockAmount é gerada com a quantidade reservada (supr9_saldos_get_qtd_tot_reservada).
- A tag AvailableStockAmount é gerada com o cálculo CurrentStockAmount - BookedStockAmount.
- Verificar a sessão General do appserver.ini o campo MaxStringSize.
- Request não gera LOG, porém pode-se verificar.
LOGIX x APS x TOTVS MES
Ordens geradas pelo APS serão enviadas via JOB - MAN10544.
A integração do APS x LOGIX x TOTVS MES deverá considerar SOMENTE as ordens de produção alteradas e/ou criadas pelo APS e enviadas ao LOGIX.
No MAN10538, folder Ordens de Produção, é possível parametrizar se existe a integração com o APS.
O JOB para o envio de ordens geradas irá executar somente se o parâmetro "APS" estiver assinalado. Serão enviadas as ordens com origem no APS (ordens.ies_origem = '9') OU que possuam dados na tabela man_equival_ordem_producao.
Para o envio deverá ter um controle do que já foi enviado (campo ordens_complement.reservado_6). Enviar somente ordens que tenham o reservado_6 nulo ou branco. Após o envio atualizar esse campo para "E" = Enviado. Quando o APS atualizar uma ordem, deverá setar novamente o reservado_6 para nulo para que o JOB possa reenviá-la.
Para cadastrar o JOB deve-se utilizar o JOB0003.
Usar como parâmetros, empresa e usuário.
Limitações / Restrições Gerais
A integração não contempla a geração cadastramentos via Fluig (WorkFlow) ou rotinas não descritas nesse documento.
Situações comuns
Possíveis situações problemáticas comuns que podem ocorrer durante o funcionamento da integração e como solucioná-los:
- 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. - 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. - Tempo de espera do WebService. Devido alguns processos serem 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 Integração Ativa? 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.