Páginas filhas
  • DI Integração PCP Protheus x Totvs Mes

Integração PCP Protheus x Totvs Mes

Contexto de negócio

  1. 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).

  2. 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.

  3. Chão de Fábrica
    Permite ao usuário planejar, "apontar" e monitorar as atividades executadas em cada centro de trabalho da fábrica e máquina, possibilitando uma visão integrada das operações realizadas, em execução e a serem processadas. Permite o Gerenciamento e Monitoramento dos resultados (produtividade, eficiência, atrasos, qualidade, utilização, níveis de parada, motivos de refugo, desvio de tempo real / padrão, etc) obtidos. Na utilização integrada ao MES, os apontamentos serão realizados pelo sistema MES.


Sistemas Envolvidos

  • PCP PROTHEUS

  • PCP - SIGASFC PROTHEUS
  • PC-FACTORY (PPI MULTITASK)


Objetivo da Integração

O objetivo da Integração PC Factory (software MES da empresa PPI Multitask) X PROTHEUS é disponibilizar aos clientes TOTVS uma nova opção para controle da produção por meio da automação dos processos, permitindo a atualização e extração de informações de forma on-line de modo a simplificar o fluxo dos clientes.

Escopo


Permite a integração entre o módulo PCP e SIGASFC do Protheus com o MES PC-Factory da PPI-Multitask, que tem como objetivo controlar os apontamentos das ordens de produções. O Protheus tem como responsabilidade a criação das ordens de produção e o PC-Factory, os apontamentos.

Pré-requisitos instalação/implantação/utilização

Para a versão 12 do Protheus, deve-se aplicar o pacote de atualizações da expedição contínua.
A Build deve ser igual ou superior a 7.00.131227A e data 08/09/2014.
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.
Para configurar um WebService deve-se verificar o documento de configuração a seguir: https://tdn.totvs.com/display/PROT/Configurar+Portais+e+Webservices
Exemplo :

;CONFIGURACAO WEBSERVICE

[HTTP]
enable=1
port=8090

[10.80.62.219:8090]
ENABLE=1
Trace=1
PATH=C:\TOTVS 11\Microsiga\Protheus_Data\web\ws
ENVIRONMENT=mssqlserver
INSTANCENAME=WS
RESPONSEJOB=JOB_WS_9901
DEFAULTPAGE=wsindex.apw

[JOB_WS_9901]

SECURITY=1
TYPE=WEBEX
ENVIRONMENT=mssqlserver
INSTANCES=1,20
SIGAWEB=WS
INSTANCENAME=WS
ONSTART=__WSSTART
ONCONNECT=__WSCONNECT

PREPAREIN=99,01

;FIM CONFIGURACAO WEBSERVICE


Importante:

O nome do Webservice a ser utilizado no TOTVSMES é o WSPCP. Não é utilizado o EAI. Seguindo a configuração acima o endereço de configuração que o PC-Factory (TOTVS MES) utilizaria 10.80.62.219:8090/WSPCP.apw?WSDL

Também deve-se atualizar no arquivo APPSERVER.INI na sessão PROXY (caso exista proxy configurado)

[PROXY]

Enable=1
Server=proxy-jv.jv01.local
Port=8080
User=XXXXX
Password=*******

Nota:

Existe um wizard para facilitar a criação dos webservices Protheus. Verificar em: http://tdn.totvs.com/display/framework/Como+iniciar+um+servidor+de+Webservices+no+Protheus


Quadro de compatibilidade:


Versão ProtheusVersão PC-FactoryConteúdo

PCP PROTHEUS 12.1.33, 2210


4.0.2130.1000
  • Melhoria do sistema de envio multi thread.

PCP PROTHEUS 12.1.33, 2210

4.0.2131.1000
  • Correção no tratamento de caracteres especiais.
  • Correção na mensagem de reclassificação(TransferWarehouse): removida exigência da existência de apontamento positivo associado ao movimento de reclass.
PCP PROTHEUS 12.1.33, 22104.0.2136.1001
  • Criação de parâmetro que bloqueia avanço da integração em caso de erros de qualquer natureza. Parâmetro: StopAnyError (True ou False)j,  default= False. 
PCP PROTHEUS 12.1.33, 22104.0.2142.1001 
  • Criação de chave "DefaultCycleTimeOrigin" na interface de integração entre os ERPs TOTVS e PCF quando a informação vem vazia na mensagem.
PCP PROTHEUS 12.1.33, 22104.0.2202.1000
  • Corrigido para que, quando for enviado o registro REPP pelo diretório Pendentes, seja marcado o respectivo CODPROD como integrado com sucesso.
PCP PROTHEUS 12.1.33, 22104.0.2203.1000
  • Corrigido para respeitar regra de filtro na tela F0139 que retornava como resultado a mensagem "Existe movimentação pendente de exportação para essa ordem" mesmo quando não existia.
PCP PROTHEUS 12.1.33, 22104.0.2211.1000
  • Ajuste validação mensagem ItemScript: ajustada a validação para importação de XML ItemScript das tags <InitialDate /><FinalDate /> aonde permite valores nulos.
PCP PROTHEUS 12.1.33, 22104.0.2219.1000 
  • Implementação da funcionalidade de exportação para solicitação de serviços de manutenção.

Checklist de Aderência ao Ambiente do Cliente

O checklist abaixo tem por objetivo validar se o TOTVS MES é aderente ao ambiente atual do cliente, considerando que existem situações não contempladas na integração.

Situações não atendidas ou atendidas parcialmente pela Integração:

Situação no ERP

Situação Integração

Observação

Apontamentos realizados no ERP serem integrado ao PCFNão AtendeOs apontamentos realizados diretamente no ERP não são integrados com TOTVS MES, sejam eles de produção ou parada.
Finalização de ordens de forma automáticaNão AtendeQuando a ordem é finalizada diretamente no ERP, essa informação não é integrada com o TOTVS MES.
Informar apenas o apontamento de tempo, sem gerar quantidade no SFCAtendeO ERP com o SFC aceita apontamento de produção apenas de tempo sem quantidade, o contrário, não.
Possui código de localização "branca"Atende ParcialO PCF não suporta localização (endereço) branco (nulo).
Realizar apontamento apenas no PCP (módulo de Produção)AtendeO apontamento apenas no PCP ocorre no ERP quando o módulo de SFC esteja desabilitado. Do contrário, todos os apontamentos serão realizados no SFC.
Tem mais de uma filial que deseja integrar com uma única instalação do TOTVS MES Não AtendeA integração TOTVS MES, não está preparada para tratar mais de uma filial. No TOTVS MES, é necessário ter uma instância (banco) para cada novo estabelecimento.
Utiliza o conceito de reporte repetitivoNão AtendeOrdens de produção com reporte por item não serão integradas. Atualmente, o TOTVS MES possui a função de apontamento repetitivo, no entanto, ainda não foram avaliados os conceitos para integração entre os sistemas.
Utiliza o consumo back-flush dos componentes ao realizar o apontamento da produçãoAtende

Possível realizar o consumo via back-flush, baixando conforme engenharia ou consumo-real.

Alteração de ordens no TOTVS MESNão atendeAs ordens de produção alteradas no TOTVS MES não serão atualizadas no ERP.
Controle de EndereçoNão atendeEndereçamento no apontamento não é realizado de forma auttomática.
Apontamento sem operaçãoNão atendeApontamentos somente por operação.
Estorno parcialNão atendeNão é possível realizar estorno parcial de apontamentos.


Instalação/Atualização

A integração Protheus x PC-Factory PPI-Multitask é ativada por intermédio dos seguintes passos:

  1. Abrir o programa de Parâmetros da integração: PCPA109 (Atualizações -> Integração MES-> Parâmetros).
  2. Setar o campo Ativo para "1- Ativo".
  3. No campo caminho Informar a URL do WebService da PPI-Multitask.
  4. Verificar a conectividade do WebService por meio do botão Testar.
  5. Indicar se a integração irá gerar fisicamente os arquivos XML.
  6. Configurar os filtros para cada informação que será trafegada entre os sistemas.
  7. 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.

Para os clientes que desejam utilizar gerenciador de conexão WSDL no envio de mensagens na Integração TOTVSMES, deve alterar para TRUE os campos MV_COPPI

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 (produto, local de estoque, recurso, ferramenta, máquina, roteiro, estrutura, endereço, movimentos, saldos e ordem de produção) terá um folder. Para cada folder, será possível montar filtros e definir parametrizações. Os filtros serão utilizados nas rotinas que enviarão informações ao PC-Factory, permitindo selecionar o que deve ser enviado. Serão exibidos os campos da tabela selecionada (folder) e operadores para que sejam montados os filtros. Se não existir nenhum filtro cadastrado todo registro incluído, alterado ou excluído será enviado ao PC-Factory. Para montar os filtros o usuário requer conhecimento do dicionário de dados pois é utilizado diretamente o nome das tabelas e dos campos.
Exemplo:
Montar um filtro para que somente seja enviado os produtos que sejam classificados como Produto Acabado. O filtro será: B1_TIPO = "PA"

O envio de informações do Protheus para o PC-Factory PPI-Multitask ocorre nas seguintes transações:

  • Cadastro, alteração e exclusão de produto MATA010, local de estoque AGRA045 e recurso MATA610, SFCA006 e SFCA002;
  • Cadastro e alteração de ordens MATA650;
  • Processo para FIRMAR ordens MATA651;
  • Manutenção das operações MATA632 ou PCPA124;
  • Manutenção dos empenhos, MATA380 e MATA381;
  • Cadastro, alteração e exclusão de Operações x Componentes MATA637;
  • Carga máquina MATA690;
  • Cálculo do MRP MATA712, PCPA107 e PCPA712;
  • Cadastro, alteração e exclusão de estrutura, MATA200 e PCPA200;
  • Splits de produção gerados pelas rotinas que manipulam ordem e o SFCA310 Apontamento Modelo 1 do Chão de Fábrica;
  • Cadastro, alteração e exclusão do endereço MATA015;
  • Cadastro, alteração e exclusão de ferramentas MATA620;
  • Atualização de saldos.
    • NF de Entrada - Rotinas que executam a função B2ATUCOMD1;
    • NF de Venda - Rotinas que executam a função B2ATUCOMD2;
    • Mov. Internas - Rotinas que executam a função B2ATUCOMD3;
    • Inclusão de saldo MATA220 e MATA805.

O envio de informações do PC-Factory PPI-Multitask para o Protheus ocorre nas seguintes transações:

  • Cadastro de motivos de parada SFCA004;
  • Cadastro de motivos de refugo SFCA003;
  • Movimentações avulsas de estoque. Entrada MATA250. Saída MATA240;
  • Transferência de estoque MATA261;
  • Apontamento de produção MATA681 e SFCA310;
  • Apontamento de parada MATA682 e SFCA311;
  • Recusa/Apontamento de perda MATA685.


IMPORTANTE:

Os clientes que possuem contrato Cloud, devem solicitar que o IP e a Porta informados no campo caminho do PCPA109 sejam liberados na rede do Cloud para envio e recebimento das requisições SOAP.

Esta liberação deve ser solicitada diretamente para a equipe de Cloud.

Se essa liberação não for realizada, ao tentar efetuar o envio/retorno das mensagens, irá acarretar em erro.

Controle de Versão

O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância das marcas e alinhamento com as diretivas definidas pelo Comitê de Integração TOTVS.


Suporte

O suporte aos recursos da Integração será de responsabilidade de todas as linhas, sendo assim, as equipes de suporte dos produtos RM Conector e Backoffice Protheus estarão aptas a fazer a primeira análise e, quando necessário, repassar para a equipe mais adequada em cada caso.

Nota:

Esse 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:


Método

ID

Descrição

Origem

Destino

XSD (versões podem variar)

ProgramasTabela

Cadastros

01

Produto

Protheus

PC-Factory

Item_3_001.xsd

MATA010SB1

02

Local de Estoque

Protheus

PC-Factory

Warehouse_1_001.xsd

AGRA045NNR

03

Máquinas

Protheus

PC-Factory

Machine_1_000.xsd

MATA610

SFCA002

SH1

CYB

04RecursosProtheusPC-FactoryResource_1_000

MATA620

SFCA006

SH4

CYH

05EstruturaProtheusPC-FactoryItemStructure_1_000

MATA200

PCPA200

PCPA120

PCPA135

SG1
06RoteiroProtheusPC-Factory ItemScript_1_000

MATA632

MATA637

PCPA124

SG2

07

Ordem de Produção

Protheus

PC-Factory

ProductionOrder_2_004.xsd

MATA650

MATA651

MATA380

MATA381

MATA690

MATA712

PCPA712

PCPA107

SFCA310

SC2
08EndereçoProtheusPC-Factory AddressStock_1_000MATA015SBE
09EstoqueProtheusPC-FactoryItemStockLevel_1_000

B2ATUCOMD1

B2ATUCOMD2

B2ATUCOMD3

MATA220

MATA805

SB2

SB8

SBF

Processos

09

Motivo de Parada

PC-Factory

Protheus

StopReason_1_000

CFGX016

SFCA004

SX5

CYN

10Motivo de RefugoPC-FactoryProtheusWasteReason_1_000

CFGX016

SFCA003

SX5

CYO

11Apontamento de ProduçãoPC-FactoryProtheusProductionAppointment_2_000

MATA681

SFCA316

SH6

SD3

CYV

12

Apontamento de Parada

PC-Factory

Protheus

StopReport_1_001

MATA682

SFCA311

SH6

CYX

13Estoque - RequestPC-FactoryProtheusStockLevel_2_00

SB2

SB8

SBF

14MovimentaçõesPC-FactoryProtheus MovementsInternal_1_001

MATA240

MATA241

MATA250

SD3
15TransferênciaPC-FactoryProtheusTransferWarehouse_1_003MATA261SD3
16RecusaPC-FactoryProtheusRefusal_1_000MATA685SBC


Fluxo das Informações

Fluxo das informações das transações:

  • Produto, local de estoque e recurso: no momento da criação, alteração ou exclusão de um produto no programa MATA010, de um local de estoque no programa AGRA045 ou de um recurso nos programas MATA610 ou SFCA006 ou SFCA002 (máquina) e ferramentas no MATA620. 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 uma mensagem será exibida questionando se deseja criar uma pendência de envio no programa PCPA110. Se optar por gerar a pendência o processo, será comitado no Protheus e a atualização para o PC-Factory deverá ser realizada por meio do PCPA110.
    Na engenharia também são integrados os cadastros de estrutura (MATA200, PCPA200, PCPA120, PCPA135), roteiro (MATA632, MATA637 ou PCPA124), e endereços MATA015, sempre quando ocorrer a criação, alteração ou exclusão de um registro.
  • 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 (alocação/carga máquina, requisição, alteração de operações ou empenhos, MRP, criação de splits), 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, uma mensagem será exibida* e uma pendência de envio poderá ser criada no programa PCPA110. Ao final do processo das rotinas que processam múltiplas ordens, como por exemplo carga máquina, serão exibidas as quantidades de registros que foram enviados ao PPI-Multitask e também os que tiveram pendência de envio. Obs.: Algumas rotinas geram pendências sem realizar o questionamento devido ao número de ordens processadas.
    Rotinas que foram afetadas pela integração: Manutenção de Ordens (MATA650), Rotina para Firmar Ordens (MATA651), Manutenção das Operações (MATA632, MATA637 ou PCPA124), Manutenção dos Empenhos (MATA380 e MATA381), Carga Máquina (MATA690) e MRP (MATA712, PCPA107 e PCPA712), Splits de produção (SFCA310).
  • Programa de gerenciamento de pendências PCPA110 - 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.
  • Programa de Sincronização PCPA111 - permite o envio das informações do produto, local de estoque, recurso, ferramentas, roteiro, estrutura, endereço, saldo em estoque 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 PCPA109, também será possível adicionar novos filtros para cada tabela.
  • Apontamento de produção: Esta rotina consiste no WebService para receber os apontamentos de produção realizados no PC-Factory. Poderá processar apontamentos de produção e parada de recurso. Executará o mesmo processo que as rotinas MATA681 e MATA682. Quando o Chão de Fábrica estiver instalado, executará o mesmo processo que a rotina SFCA316 e SFCA311.
    O fluxo da integração será o seguinte:
    a. Operador efetua reporte normalmente conforme sua operação no PC-Factory.
    b. Em um processo batch ou disparado paralelamente no sistema, ocorre a montagem da mensagem (XML) conforme Schema de Mensagem Única TOTVS e o envio dessa mensagem(XML) para o Protheus; que validará a mensagem e encaminhará ao respectivo adapter de negócio (MATA681/MATA682 ou SFCA316/SFCA311) para processamento.
    c. Em caso de erros, esse reporte ficará com um status de pendente para envio dentro do software MES e o usuário poderá tomar ações no próprio PC Factory (o Protheus não manterá rastreabilidade das mensagens recebidas, mas registrará em LOG o processamento).
    d. Em caso de sucesso no reporte, será retornado ao PC-Factory o número do registro do reporte realizado no Protheus. Esse número poderá ser utilizado em caso de estorno.
  • Atualização de saldo no PC-Factory ocorrerá das seguintes formas:
    a. Request: o PC-Factory solicita um saldo gerando mensagem XML de request. Nesta mensagem pode solicitar o saldo por item, por local de estoque, entre outros.
    b. Atualização Protheus: Quando ocorrer uma atualização de saldo no Protheus deverá enviar uma mensagem XML ao PC-Factory. São consideradas as principais rotinas do ERP, como Nota fiscal de entrada e venda e algumas movimentações internas e a inclusão de saldo via MATA220 e MATA805.
  • Movimentações de estoque: Quando o PC-Factory realiza movimentações de estoque e transferências, estas movimentações serão atualizadas no Protheus.
    No caso das movimentações, se for E (entrada), deverá executar o MATA250. Se for S (saída), deverá executar MATA240. Nos casos de transferências executará o MATA261.
  • Recusa/Apontamento de perda. Esta rotina consiste no WebService para receber os registros de recusa realizados no PC-Factory. Executará o mesmo processo que as rotinas MATA685.
  • Consulta de Log de importação PCPA112: Essa rotina consiste na consulta dos registros dos apontamentos que foram processados pela integração Protheus x PC-Factory. Rotina deverá exibir os apontamentos efetuados e o status de cada processo.

Ponto de Entrada

Para facilitar o uso da integração e tornar o uso flexível em qualquer ambiente produtivo, foram criados alguns pontos de entrada para solucionar possíveis situações específicas não atendidas pelo padrão e também, permitir configurações mais precisas no uso da integração:

Apontamento: O ponto de entrada MATI681CRG permite adicionar informações que serão utilizadas no apontamento da produção e no apontamento de parada, tabela SH6. Exemplo: Caso exista algum campo específico ou tabela específica não tratada pela integração, poderá usar essa função para setar seu conteúdo. Detalhes em: MATI681CRG - Adicionar informações Adapter do apontamento.

Apontamento: O ponto de entrada MT680VAL permite validar se alguma informação deverá ser obrigatória como tempo, quantidade, entre outros. Essas validações ficarão a cargo dos clientes, pois cada um terá sua regra. Detalhes em: MT680VAL - Inclusão das Produções.

Apontamento: O ponto de entrada MATI680OPR permite alterar o código da operação recebida no apontamento da produção. Detalhes em: MATI681OPR - Alterar código operação mensagem apontamento produção.

Apontamento: O ponto de entrada MTI681QTAP permite alterar a quantidade recebida no apontamento da produção. Este ponto de entrada é indicado para aplicar o fator de conversão na quantidade do apontamento quando ERP e PC-Factory trabalham com unidade de medida diferente. Detalhes em: MTI681QTAP - Alterar quantidade do apontamento ProductionAppointment.

Apontamento: O ponto de entrada MATI681EXC permite verificar se o apontamento será executado ou não. Este ponto de entrada é indicado para validações que impeçam o apontamento de produção e parada. Também usado para casos em que é necessário atualizar alguma informação antes do apontamento (exemplo: estornar um endereçamento). Detalhes em: MATI681EXC - Processa mensagem Apontamento.

Apontamento: O ponto de entrada MATI681INT Permite processar o XML no PE para validação/gravação customizada, podendo optar  por executar a rotina padrão de apontamento de produção ou não. Se houver execução da rotina padrão e houver erro, será desfeito somente o que foi realizado na rotina padrão. O ponto de entrada  é chamado antes do inicio da transação  da rotina padrão de apontamento  de produção . Detalhes em: MATI681INT - Permite processa XML antes da mensagem de apontamento de produção

Apontamento: O ponto de entradMT681ALXML permite modificar qualquer informação da mensagem. Este ponto é indicado para empresas que possuem produtos com controles distintos entre o ERP e o PC-Factory. Por exemplo, controla Lote no PC-Factory e não controla no ERP. O Lote é gerado no XML e retirado via ponto de entrada. Detalhes em: MT681ALXML - Alterar informações XML ProductionAppointment.

Ordem de Produção: O ponto de entrada MTI650ADOP permite adicionar uma nova operação na mensagem de ordens de produção. Para cada operação que está sendo enviada, este ponto de entrada será executado uma vez. Detalhes em: MTI650ADOP - Adicionar nova operação Adapter ordem de produção.

Ordem de Produção: O ponto de entrada MTI650FCOP permite alterar fator de conversão da segunda unidade de medida da operação que será enviada na mensagem de ordens de produção. Detalhes em: MTI650FCOP - Alterar fator de conversão segunda unidade de medida da operação Adapter ordem de produção.

Ordem de Produção: O ponto de entrada MTI650QTOP permite alterar a quantidade da operação que será enviada na mensagem de ordens de produção. Detalhes em: MTI650QTOP - Alterar quantidade da operação adapter ordem de produção.

Ordem de Produção: O ponto de entrada MTI650UMOP permite alterar a segunda unidade de medida da operação que será enviada na mensagem de ordens de produção. Detalhes em: MTI650UMOP - Alterar segunda unidade de medida da operação Adapter ordem de produção.

Ordem de Produção: O ponto de entrada MTI650TMAC permite alterar o tempo de máquina (TimeMachine) na mensagem de ProductionOrder. Detalhes em: MTI650TMAC - Alterar quantidade do tempo de máquina no adapter ProductionOrder.

Ordem de Produção: O ponto de entrada MTI650LOTE permite gerar o Lote da ordem na tag LotCode na mensagem ProductionOrder. Detalhes em: MTI650LOTE - Adicionar lote na mensagem de Ordens de produção.

Ordem de Produção: O ponto de entrada MTI650UTTP permite alterar o valor enviado na tag UnitTimeType. Detalhes em: MTI650UTTP - Alterar o valor da tag UnitTimeType da mensagem ProductionOrder.

Cadastros: O ponto de entrada PCPXFUNPPI permite inibir a integração em determinada rotina. Exemplo: Caso não deseje que na criação de ordens MATA650 ocorra a integração, poderá utilizar essa função para inibir o uso. Detalhes em: PCPXFUNPPI - Rotinas que não realizam integração com o PC-Factory.

Cadastro de Item: o Ponto de entrada PCPADDTAGS permite incluir tags específicas nas mensagens padrões TOTVS. Está habilitado para o cadastro de item MATA010. Detalhes em: PCPADDTAGS - Adicionar informações XML Integração TOTVS MES.

Cadastro de Processos: o Ponto de entrada PCPADDTAGS permite incluir tags específicas nas mensagens padrões TOTVS. Está habilitado para o cadastro de roteiro MATA632 e PCPA124. Detalhes em: PCPADDTAGS - Adicionar informações XML Integração TOTVS MES.

Cadastro de Processos: O ponto de entrada MTI632UTTP permite alterar o valor enviado na tag UnitTimeType. Detalhes em: MTI632UTTP - Alterar o valor da tag UnitTimeType da mensagem ItemScript.

Cadastro de Máquina: O ponto de entrada MTI610UTTP permite alterar o valor enviado na tag UnitTimeType. Detalhes em: MTI610UTTP - Alterar o valor da tag UnitTimeType da mensagem Machine.

Movimentos internos. Os pontos de entrada MATI250CRG e MATI240CRG possibilitam alguma validação específica. Essas validações ficarão a cargo dos clientes, pois cada um terá sua regra. Não podem ser alterados os valores dos campos que foram gerados pela mensagem. Detalhes em: MATI240CRG - Adicionar informações Adapter de movimentações internas e MATI250CRG - Adicionar informações Adapter de movimentos de produção.

Transferências: O ponto de entrada MI261RCV possibilita a não execução da integração. Detalhes em: MI261RCV - Executar integração TransferWarehouse.

Recusa: O ponto de entrada MATI685EXC permite verificar se a recusa será executado ou não. Este ponto de entrada é indicado para validações que impeçam o apontamento de recusa ou atualizações de informações necessárias para realizar a recusa. Detalhes em: MATI685EXC - Processa mensagem recusa.



Executar em várias filiais

Em um ambiente com várias filiais é necessário apenas um WEBSERVICE sendo executado. O que indica a filial onde é processado o apontamento são as TAG´s:

<CompanyId>10</CompanyId>

<BranchId>CLSC0001</BranchId>

Quando essas tags estiverem em branco, o sistema considera o que estiver definido no APPSERVER.ini na sessão WEBSERVICE campo PrepareIn.

[WebServices]

PrepareIn=99,01


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
  • MovementsInternal
  • TransferWarehouse
  • StopReason
  • WasteReason

Nos XML´s será usada a TAG  Key name = "IDPCfactory"

<BusinessEvent>

      <Entity>Entity</Entity>

      <Event>upsert</Event>

      <Identification>

        <key name="IDPCFactory">29892829</key>

      </Identification>

</BusinessEvent>


O retorno com erro apresenta a mensagem com o seguinte padrão:


<ProcessedOn>2017-03-28T09:11:17</ProcessedOn>

   <Status>ERROR</Status>

   <ListOfMessages>

      <Message type="ERROR" code="N">MENSAGEM</Message>

   </ListOfMessages>

</ProcessingInformation>


O XML de retorno deverá respeitar a seguinte regra:

  • Quando ID já processado e contêm ERRO

              Retorna o ID PC-Factory na tag  <UUID>

              Na tag Message type="ERROR" code="2", utiliza o 2 para indicar erro.

              A mensagem será: ID xxxx já processado. Status: mensagem de erro”.

             Exemplo: <Message type="ERROR" code="2">ID productionappointment-0038 já processado. Status: ProductionOrderNumber não cadastrada no Protheus.</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 Protheus" ou  "ID xxxx já processado. Status: Reprocessado. ID do Protheus" 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 Protheus.

              Exemplo: <Message type="ERROR" code="4">ID apapapapeaaa está sendo processado pelo Protheus.</Message>


Nota:

O retorno, quando mensagem processada "de primeira", dentro do tempo de espera do webservice, será "1" - Processado de primeira vez com ERRO ou OK.

Exemplo:

Com Erro:

<ProcessingInformation>

   <ProcessedOn>2017-03-28T09:00:03</ProcessedOn>

   <Status>ERROR</Status>

   <ListOfMessages>

      <Message type="ERROR" code="1">ProductionOrderNumber não cadastrada no protheus.</Message>

   </ListOfMessages>

</ProcessingInformation>


Com Sucesso:

<ProcessingInformation>

         <ProcessedOn>2017-03-28T08:57:28</ProcessedOn>

         <Status>OK</Status>

</ProcessingInformation>

<ReturnContent>

         <ListOfInternalId>

            <InternalId>

               <Name>PRODUCTIONAPPOINTMENTINTERNALID</Name>

               <Destination>5090</Destination>

            </InternalId>

         </ListOfInternalId>

</ReturnContent>




Situações inesperadas que podem ocorrer: a parada do serviço do Protheus, 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 SOH.

Abaixo tabela dos códigos enviados:

CodeMessageTabela de controle - SOH.OH_STATUS
1Processado na primeira tentativa com ERRO ou OK1 ou 2
2Registro já processado com retorno de erro2
3Registro já processado com sucesso1
4Registro em processamento0

Importante:

  • Caso um registro fique preso com status de "registro em processamento", este poderá ser destravado pela rotina PCPA112, incluindo 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>

Nota:

No arquivo APPSERVER.ini, na sessão WEBSERVICE existe a chave INSTANCES que define as instâncias do servido do webservice que vão estar disponíveis para o processamento da integração. Em caso de estouro de threads de processamento deverá ser revisto o número de instances.

Autenticação

Quando o usuário e a senha estiverem cadastrados no PCPA109 (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 Protheus.

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 - PCPA109

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:

  • Ativo: Indica se a integração está ativa. Ao selecionar esse campo, os demais são habilitados. Se este campo estiver desmarcado, nenhuma outra ação poderá ser realizada na rotina.
  • Caminho: Indica o caminho do WebService do PC-Factory. Após o caminho, terá um botão testar para verificar se webservice está ativo.
  • Terá um painel XML.
    Neste painel poderá indicar:
    - 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
    - Pendência - 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:

  • Produto
  • Local de Estoque
  • Recurso
  • Máquina
    O folder máquina somente será exibido quando o chão de fábrica estiver em uso.
  • Ferramenta
  • 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.
    "3" - Consumo Real/Atu Empe: Irá consumir conforme lista de componentes e se não existir saldo suficiente da quantidade empenhada irá ajustar automaticamente a quantidade empenhada.

   Painel "Operações": Define se o filtro criado no folder "Roteiros" deve ser utilizado para filtrar as operações da ordem de produção.

   Painel "Refugo": Define o local de estoque/depósito para o item refugado quando o refugo for o mesmo produto da ordem de produção. Quando o depósito - "WharehouseCodeTo" vier em branco na mensagem               ProductionAppointment, usar o que foi definido no parâmetro.

   Painel "APS": Define se a integração considera ordens geradas pelo APS.  

  • Roteiros
  • Estrutura
  • Endereço
  • Movimentos e transferência
    Os movimentos de estoque, entrada ou saída e também as transferências são arquivos recebidos pelo Protheus. Não necessita de filtros, porém deverão ser criados alguns parâmetros para o processamento. São eles:
    Tipo de Movimento de Entrada Produção: Usar campo SOE.OE_VAR1
    Tipo de Movimento de Saída: Usar campo SOE.OE_VAR2
    Tipo de Movimento Co-produto: Usar campo SOE.OE_VAR3
    Tipo de Movimento de Entrada Estoque: Usar campo SOE.OE_VAR4
    Estes tipos de movimentos são cadastrados no MATA230
  • Saldo estoque
    Para o folder Saldo de estoque terá a opções de três filtros. Tabela SB2, SB8 e SBF. 
    Também poderá indicar em qual processo de movimentação deverá enviar o saldo ao PC-Factory
    Em que: 
    Nota Fiscal de Entrada   : SOE.OE_VAR1 (Marcado = 1; Desmarcado = 0 )
    Nota Fiscal de Venda     : SOE.OE_VAR2 (Marcado = 1; Desmarcado = 0 )
    Movimentações Internas: SOE.PARINTG (Marcado = 1; Desmarcado = 0 )
    Implantação de Saldo: SOE_OE_VAR3(Marcado = 1; Desmarcado = 0 )
    Estas opções são válidas somente para o envio do Protheus para o PC-Factory. Para o request (solicitação do PC-Factory) não terá filtros.
  • 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 - PCPA111

A sincronização é o processo que será utilizado para popular ou atualizar a base do PC-Factory com os dados do Protheus. 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 PCPA109. 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.


Pendências - PCPA110

Rotina para reenviar as mensagens não enviadas ao sistema PC-Factory, sejam elas pendências ou erro. A rotina também possibilita consultar as mensagens enviadas (LOG de envio).

Poderá verificar as pendências e log das mensagens trafegadas entre os sistemas:

  • Cadastro de Estruturas
  • Produto/Item
  • Local de Estoque (depósitos)
  • Recurso PCP
  • Ordens de produção (Operações, Roteiros, Componentes, Splits) 
  • Recursos do chão de fábrica - Ferramentas, Equipe e Operador
  • Ferramentas
  • Máquinas do Chão de Fábrica
  • Roteiro - Operações
  • Endereços
  • Saldo 

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


Log de Importação - PCPA112

Ao receber dados do PC-Factory, o WebService Protheus grava as informações para que possam ser consultadas (tabela SOG). Abaixo a lista das movimentações que geram LOG:

  • Apontamento de produção
  • Apontamento de parada
  • Motivo de Refugo
  • Motivo de Parada
  • Movimentações de Estoque
  • Transferência



Importante:

Esta rotina usa as tabelas SOG, SOF e SOH para gerenciar o log de importação.

Mensagens


Cadastros


Transação Item: Item_3_001.xsd

Identificador da Mensagem: Item

Versão: 3_001
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


Mensagem

Tag

Descrição

Tabela/Campo: Protheus

Tipo

Tabela/Campo: PC-Factory

Tipo

BusinessContentType

CompanyId 

Código da Empresa Logada



CHAR(02)




BranchId 

Código Filial

 SB1.B1_FILIAL

CHAR(02)

TBLInProduct.PlantCode

CHAR(15)


CompanyInternalId

Empresa+Filial

 EMPRESA + SB1.B1_FILIAL





Code 

Código do Produto

SB1.B1_COD

CHAR(15)

 TBLInProduct.Code

CHAR(20)


Name 

Descrição do produto

SB1.B1_DESC

CHAR(30)

TBLInProduct.Name

CHAR(70)


InternalId

Empresa+filial+código do produto

EMPRESA + SB1.B1_FILIAL + SB1.B1_COD





ShortName 

Nome curto

SB1.B1_DESC

CHAR(30)

TBLInProduct.SecondName

CHAR(30)


Active 

Item ativo?

SB1.B1_ATIVO

CHAR(01)

TBLInProduct.FlgEnable

SMALLINT


UnitOfMeasureCode 

Unidade de Medida

SB1.B1_UM

CHAR(02)

TBLInProduct.Unit1code

CHAR(05)


UnitOfMeasureInternalId

Empresa+filial+unidade de medida

EMPRESA + SB1.B1_FILIAL + SB1.B1_UM





StockGroupCode

Grupo de Estoque

SB1.B1_GRUPO

CHAR(04)




StockGroupInternalId

Empresa+filial+grupo de estoque

EMPRESA + SB1.B1_FILIAL + SB1.B1_GRUPO





StockGroupDescription

Descrição do grupo estoque

SBM.BM_DESC

CHAR(30)




StandardWarehouseCode

Local de Estoque

SB1.B1_LOCPAD

CHAR(02)




StandardWarehouseInternalId

Empresa+filial+local de estoque

EMPRESA + SB1.B1_FILIAL + SB1.B1_LOCPAD





StandardWarehouseDescription

Descrição Local de Estoque

NNR.NNR_DESCRI

CHAR(40)




EconomicLot 

Lote econômico

SB1.B1_LE

DEC(12,2)




MinimumLot 

Lote mínimo

SB1.B1_LM

DEC(12,2)




FamilyCode 

Família

SB1.B1_FPCOD

CHAR(10)

TBLInProduct.FamilyProductCode

CHAR(15)


FamilyInternalId

Empresa+filial+família

EMPRESA + SB1.B1_FILIAL + SB1.B1_FPCOD





FamilyDescription 

Descrição da família

SYC.YC_NOME

CHAR(40)

TBLInProduct.FamilyProductName

CHAR(30)


NetWeight

Peso do Item

SB1.B1_PESO

DEC(11,4)




GrossWeigh

Peso bruto

SB1.B1_PESBRU

DEC(11,4)




Trail

Rastro

SB1.B1_RASTRO

CHAR(01)




BinControl

Controla Endereço

SB1.B1_LOCALIZ

CHAR(01)




SecondUnitOfMeasureCode

Segunda Unidade de medida

SB1.B1_SEGUM

CHAR(02)

TBLInProduct.Unit2Code

CHAR(20)


SecondUnitOfMeasureInternalId

Empresa+filial+ seg. unidade de medida

EMPRESA + SB1.B1_FILIAL + SB1.B1_SEGUM





MultiplicationFactorValue 

Fator de conversão

SB1.B1_CONV

DEC(5,2)

TBLInProduct.Unit2Factor

DEC(8,4)


ProductType

Tipo do Item

SB1.B1_TIPO

CHAR(02)

TBLInProduct.ProductTypeCode

CHAR(15)


PackingQuantity 

Quantidade Embalagem

SB1.B1_QE

NUM(09)

TBLInProduct.QtyPackage

DEC(19,4)


CostCenterCode

Centro de Custo

SB1.B1_CC

CHAR(09)

TBLInProduct.CostCenterCode

CHAR(20)


StockControlType

Controle do estoque do item


CHAR(01)



Nota:

  • Se for um tipo que não está definido, será gravado como GENÉRICO. Exemplo: Tipo = AMOSTRA.

  • A tag StockControlType pode ser, 1=Serial;2=Nr. de Série;3=Lote;4=Referência. Se o campo B1_RASTRO for S=SubLote ou L=Lote deve gravar como '3'. Se o campo B1_LOCALIZ for S=Sim, deve gravar como 2. O produto pode controlar lote e série ao mesmo tempo, sendo registrado nas tags TRIAL e BINCONTROL.


Transação Depósito: Warehouse_1_001.xsd

Identificador da Mensagem: Warehouse

Versão: 1_001
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


Mensagem

Tag

Descrição

Tabela/Campo: Protheus

Tipo

Tabela/Campo: PC-Factory

Tipo

BusinessContentType

CompanyId

Código da Empresa


CHAR(02)

TBLInWarehouse.Extcode

CHAR(20)


BranchId

Código da Filial

NNR.NNR_FILIAL

CHAR(02)

TBLInWarehouse.PlantCode

CHAR(15)


CompanyInternalId

Empresa+Filial

EMPRESA + NNR.NNR_FILIAL





Code

Código do Local de Estoque(armazém/almoxarifado/depósito)

NNR.NNR_CODIGO

CHAR(02)

TBLInWarehouse.Code

CHAR(15)


InternalId

Empresa+Filial+código local

EMPRESA + NNR.NNR_FILIAL +

NNR.NNR_CODIGO





Description

Descrição do Local de Estoque (armazém/almoxarifado/depósito)

NNR.NNR_DESCRI

CHAR(20)

TBLInWarehouse.Name

CHAR(15)


Active

Local de Estoque Ativo?

TRUE

CHAR(01)

TBLInWarehouse.FlgEnable

SMALLINT


Type

Tipo do Local de Estoque

NNR.NNR_TIPO

CHAR(01)




WarehouseClassification

Classificação

NNR.NNR_INTP

CHAR(01)




Transação Recurso PCP / Máquina SFC: Machine_1_000.xsd

Identificador da Mensagem: Machine

Versão: 1_000
Módulo Protheus: SIGAPCP, SIGASFC
Tipo de Envio: Síncrona

Mensagem

Tag

Descrição

Tabela/Campo:

Protheus PCP

Tabela Campo:

Protheus SFC

Tipo

Tabela/Campo: PC-Factory

Tipo

BusinessContentType









Code

Código Máquina

SH1.H1_CODIGO

CYB.CYB_CDMQ

CHAR(20)

TBLInResource.code

CHAR(15)


Description

Descrição Máquina

SH1.H1DESCRI

CYB.CYB_DSMQ

CHAR(40)

TBLInResource.Name

TBLInResource.Nickname

CHAR(20)


WorkCenterCode

Código Centro Trabalho

SH1.H1_CTRAB

CYB.CYB_CDCETR

CHAR(10)

TBLInResource.ManagerGrpCode

CHAR(15)


WorkCenterDescription

Descrição Centro Trabalho

SHB.HB_NOME

CYB.CYB_DSCETR

CHAR(40)

TBLInResource.WorkCenterDescription

CHAR(15)


CostCenterCode

Código Centro Custo

SH1.H1_CCUST

CYB.CYB_CDCECS

CHAR(20)




ProcessorType

Tipo de Processamento


CYB.CYB_TPPC

1=Monoprocesso;2=Por Batelada;

3=Multiplos Processos;4=Manual

CHAR(01)




LaborType

Tipo MOD


CYB.CYB_TPMOD

1=Nao Reporta;2=Operador;3=Equipe

CHAR(01)




VolumeMachineQuantity

Quantidade Volume Máquina


CYB.CYB_QTVMMQ

DEC(12,4)




EfficiencyMachineValue

Eficiência Máquina


CYB.CYB_VLEFMQ

DEC(05,2)




OperatorMachineQuantity

Quantidade Operador Máquina


CYB.CYB_QTOEMQ

NUM(02)




SimultaneousActivityQuantity

Quantidade Operações Simultâneas


CYB.CYB_QTATSM

NUM(03)




IsSetup

Possui Preparação


CYB.CYB_LGSU

BOOLEAN




IsOverlapReport

Sobrepõe Apontamento


CYB.CYB_LGOVRP

BOOLEAN




ProductionAreaCode

Área de Produção


CYB.CYB_CDARPO

CHAR(10)




InitialValidateDate

Data início validade


CYB.CYB_DTBGVD

DATE




FinalValidateDate

Data fim validade


CYB.CYB_DTEDVD

DATE



ListOfResources









 ResourceType

Tipo do Recurso


CYC.CYC_TPRC

1=Operador;2=Ferramenta;

3=Equipe;4=Equipamento

CHAR(01)




ResourceCode

Código Recurso


CYC.CYC_CDRC

CHAR(20)

TBLInUser.Code

CHAR(30)


ResourceName

Nome Recurso


CYC.CYC_NMRC

CHAR(40)

 TBLInUser.Name

 TBLInUser.Nickname

CHAR(60)


UnitTimeType

Tipo Medida Tempo


CYC.CYC_TPUNTE

1=Horas;2=Minutos;3=Segundos

CHAR(01)




StartExpirationDate

Data Início Validade


CYC.CYC_DTBGVD

DATE




EndExpirationDate

Data Fim Validade


CYC.CYC_DTEDVD

DATE




CycleQuantity

Número Ciclos


CYC.CYC_QTCI

DEC(11,4)




IsTimeActivity

Determina tempo


CYC.CYC_LGTEAT

BOOLEAN



ListOfProductionShifts









ProductionShiftCode

Código Modelo Turno


CYL.CYL_CDTN

CHAR(08)




ProductionShiftDescription

Descrição Modelo Turno


CYL.CYL_DSTN

CHAR(40)




BeginDate

Data Início Validade


CYL.CYL_DTVDBG

DATE




EndDate

Data Fim Validade


CYL.CYL_DTVDED

DATE




No PCP as máquinas são cadastradas na rotina de recursos MATA610 e no Chão de Fábrica a rotina é a SFCA002. A nomenclatura também é alterada. Quando utilizar Chão de Fábrica, será denominada MÁQUINA. Quando utilizar somente o PCP, será RECURSO. A rotina de parâmetros PCPA109 está preparada para apresentar o nome de acordo com o uso do sistema.


Transação Recurso SFC: Resource_1_000

Identificador da Mensagem: Resource

Versão: 1_000
Módulo Protheus: SIGASFC
Tipo de Envio: Síncrona

MensagemTagDescriçãoTabela/Campo:Protheus PCPTabela Campo: Protheus SFCTipoTabela/Campo: PC-FactoryTipo
BusinessContentType







CodeCódigo do RecursoSH4.H4_CODIGOCYH.CYH_CDRCCHAR(06)TBLTooling.CodeCHAR(15)

NameNome do RecursoSH4.H4_DESCRICYH.CYH_NMRCCHAR(40)TBLTooling.NameCHAR(50)

TypeTipo do Recurso1=Operador;2=Ferramenta;3=Equipe;4=Equipamento.CYH.CYH_TPRC 1=Operador;2=Ferramenta;3=Equipe;4=EquipamentCHAR(25)


ProductionAreaCodeÁrea de Produção
CYH.CYH_CDARPOCHAR(10)


ProductionAreaDescriptionDescrição área de produção
CYA.CYA_DSARPOCHAR(40)

 ItemComponentType







ProductionShiftNumberTurnoSH4.H4_TURNOCYH.CYH_NRTNCHAR(05)


LaborCodeMOBFixo '1'CYH.CYH_CDMODCHAR(08)


StartExpirationDateData validade inicialData AtualCYH.CYH_DTVDBGDATETBLTooling.PeriodINT

EndExpirationDateData validade final
CYH.CYH_DTVDEDDATETBLTooling.PeriodINT

UnitCycleQuantityUnidades Ciclos
CYH.CYH_QTUNCINUM(07)


ToolCodeFerramenta
CYH.CYH_CDMPRCCHAR(15)


ToolDescriptionDescrição Ferramenta
CYH.CYH_DSMPRCCHAR(40)

Nota:

  • O Recurso no PCP indica a máquina, no chão de fábrica indica ferramentas, operador, etc.;
  • Quando origem for do PCP a tag Type (Tipo Recurso) será gerada com o valor fixo '2';
  • Quando origem for do PCP a tag UnitCycleQuantity (Unidades Ciclos) será gerada com o valor fixo '1';
  • Quando origem for do PCP a tag UnitCycleQuantity (Unidades Ciclos) será gerada com o valor fixo '1';
  • Quando origem for do PCP a tag StartExpirationDate (Validade Inicial) será gerada com a data de geração da mensagem;
  • Quando origem for do PCP a tag EndExpirationDate (Validade Final) será gerada com o seguinte cálculo:
    Data atual (dDataBase) + vida útil da ferramenta (H4_VIDAUTI). Considerar o tipo de vida útil (H4_TIPOVID) - D=Dias;H=Horas;M=Mês;A=Ano.
 

Transação Estrutura: ItemStructure_1_000.xsd

Identificador da Mensagem: ItemStructure
Versão: 1_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


Mensagem TagDescriçãoTabela/Campo: ProtheusTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCompanyIdCódigo da Empresa
CHAR(02)


CompanyInternalIdEmpresa+FilialEMPRESA + SG1.G1_FILIAL



ItemInternalIdEmpresa+Filial+código item paiEMPRESA + SG1.G1_FILIAL +SG1.G1_COD



ItemCodeCódigo item paiSG1.G1_CODCHAR(15)TBLInWOHD.ProductCodeTBLInWOHD.WOCodeCHAR(30)

ItemAmountQuantidade base do item paiSB1.B1_QBNUM(07)TBLInWOHD.TotalQTYDEC(19,4)
ItemComponentType






ItemSequenceSequência do componenteSG1.G1_TRTNUM(05)TBLInBillMat.BillMatExtCodeCHAR(20)

ItemComponentCodeCódigo item componenteSG1.G1_COMPCHAR(15)TBLInBillMat.ProductCodeCHAR(20)

ItemComponentInternalIdInternal Id do Item ComponenteEMPRESA + SG1.G1_FILIAL + SG1.G1_COMP



InitialDateData validade inicialSG1.G1_INIDATETBLInWOHD.DtPlanStartDATETIME

FinalDateData validade finalSG1.G1_FIMDATETBLInWOHD.DtPlanEndDATETIME

IsGhostMaterialIndica se é fantasmaSB1.B1_FANTASMBOOLEAN ( FALSE ou TRUE)


ItemComponentAmountQuantidade do item componenteSG1.G1_QUANTDEC(12,6)


LossFactorFator de perdaSG1.G1_PERDADEC(05,2)

(mais) ListOfScript






ScriptcodeCódigo do RoteiroSGF.GF_ROTEIROCHAR(02)TBLInWOHD.ExtCodeCHAR(20)

ScriptAlternativeAlternativo do Roteiro--



ActivityIntenalIDID Operação--



ActivityCodeCódigo da OperaçãoSGF.GF_OPERACCHAR(02)TBLInWodet.CodeCHAR(10)

ActivityComponentSequenceSequência do componente na operaçãoSGF.GF_TRTNUM(03)

Nota:

A tag ItemSequence é obrigatória para o PC-Factory. Para que seja possível a integração da estrutura deverá ser obrigatório o uso do sequencial SG1.G1_TRT. caso contrário o PC-Factory irá retornar inconsistência.A integração da estrutura sempre ocorrerá para a revisão atual da estrutura do produto. A informação da revisão atual da estrutura do produto está disponível no cadastro do produto e/ou no cadastro de indicadores de produto, conforme a parametrização estabelecida.Será enviada a última revisão válida da estrutura. Verificar controles de revisão por filial ( MV_ARQPROD e  MV_REVFIL ) quando revisão manual(MV_REVAUT = F). Quando revisão automática (MV_REVAUT = T) sempre irá enviar a última.

Transação Roteiro - Operações do Item: ItemScript_1_000.xsd

Identificador da Mensagem: ItemScript
Versão: 1_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


MensagemTagDescriçãoTabela/Campo: ProtheusTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeItemCodeCódigo itemSG2.G2_PRODUTOCHAR(15)TBLInWOHD.ProductCodeTBLInWOHD.WOCodeCHAR(20)

ItemDescriptionDescrição do itemSB1.B1_DESCCHAR(40)


ItemInternalIdEmpresa|Filial|ItemEMPRESA + SG2.G2_FILIAL +SG2.G2_PRODUTO



ScriptCodeCódigo do RoteiroSG2.G2_CODIGOCHAR(02)


ScriptDescriptionDescrição Roteiro--CHAR(40)


ScriptAlternativeRoteiro Alternativo--CHAR(02)

ListOfActivity






ActivityInternalIDID OperaçãoSG2.R_E_C_N_O_NUM(05)


ActivityCodeCódigo da OperaçãoSG2.G2_OPERACCHAR(02)TBLInWodet.CodeCHAR(10)

ActivityDescriptionDescrição OperaçãoSG2.G2_DESCRICHAR(60)TBLInWodet.NameCHAR(40)

MachineCodeCódigo da MáquinaSG2.G2_RECURSOCHAR(06)TBLInWodet.ResourceCHAR(15)

ToolCodeCódigo FerramentaSG2.G2_FERRAMCHAR(06)


ActivityTypeTipo Operação1 = Executa operação; 2 = Não executa.CHAR(01)


WorkCenterCodeCódigo Centro TrabalhoSG2.G2_CTRABCHAR(06)TBLInWodet.ManagerGrpCodeCHAR(15)

WorkCenterInternalIdId Centro de TrabalhoEMPRESA + SG2.G2_FILIAL + SG2.G2_CTRAB



UnitItemNumberLote padrão SG2.G2_LOTEPADNUM(06)TBLInWodet. StdSpeedDEC(28,23)

TimeResourceTempo Recurso0
TBLInWodet. StdSpeedDEC(28,23)

TimeMachineTempo MáquinaSG2.G2_TEMPADDEC(05,2)TBLInWodet. StdSpeedDEC(28,23)

TimeSetupTempo PreparaçãoSG2.G2_SETUPDEC(05,2)TBLInWodet. SetUpTimeINT

UnitTimeTypeTipo Unidade Tempo1 = Horas;2=Minutos;3=Segundos;4=Dias
TBLInWodet. StdSpeedFormatTINYINT

ScriptAlternativeAlternativoSG2.G2_ROTALTCHAR(02)


InitialDateData InicialSG2.G2_DTINIDATETBLInWodet.DtPlanStartDATETIME

FinalDateData FinalSG2.G2_DTFIMDATETBLInWodet.DtPlanEndDATETIME

PercentageScrapValue% Refugo--



PercentageValueProporção--



ResourceQuantityQuantidade Recurso--


Nota:

  • A tag ActivityType (Tipo Operação) será gerada com o valor fixo '1';
  • A tag UnitTimeType (Tipo Unidade Tempo) será gerada com o valor fixo '1';
  • Obrigatório informar as tags InitialDate e FinalDate. Cadastrada no MATA632 ou PCPA124.
  • A tag ListOfPertOrders não será gerada para o Protheus;
  • Na exclusão de um roteiro, não deverá excluir se existir integridade com a rotina de OPERAÇÕES x COMPONENTES, MATA637. Neste caso não necessita enviar nenhuma mensagem ao PC-Factory;
  • Quando incluir, alterar ou excluir dados do MATA637, deverá reenviar a mensagem de estrutura, ItemStructure.



Transação Endereços: AdressStock_1_000.xsd
Identificador da Mensagem: AdressStock
Versão: 1_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


MensagemTagDescriçãoTabela/Campo: ProtheusTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeWarehouseCodeArmazém/DepósitoSBE.BE_LOCALCHAR(02)TBLInAddress.WarehouseCodeCHAR(15)

LocationCodeEndereço/LocalizaçãoSBE.BE_LOCALIZCHAR(15)TBLInAddress.CodeCHAR(15)

AdressInternalIdChave completa endereço EMPRESA + SBE.BE_FILIAL + SBE.BE_LOCAL + SBE.BE_LOCALIZ



AdressStockDescriptionDescrição do endereçoSBE.BE_DESCRICCHAR(30)TBLInAddress.ExtCodeCHAR(20)


Transação Saldo: ItemStockLevel_1_000.xsd

Identificador da Mensagem: ItemStockLevel
Versão: 1_000
Módulo Protheus: Vários
Tipo de Envio: Síncrona


MensagemTagDescriçãoTabela/Campo: ProtheusTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeItemCodeCódigo do produtoSB2.B2_CODCHAR(15)TBLInMovMat.ProductCodeCHAR(20)

ItemDescriptionDescrição do itemSB1.B1_DESCCHAR(30)

ListOfStock






ReferenceCodeReferência--



WarehouseCodeDepósito/Local de estoqe/ArmazemSB2.B2_LOCALCHAR(02)TBLInMovMat.WarehouseCodeCHAR(15)

LotCodeNúmero do LoteSB8.B8_LOTECTLCHAR(10)TBLInMovMat.LotCodeCHAR(41)

SubLotCodeSub-LoteSB8.B8_NUMLOTECHAR(06)


NumberSeriesNúmero de SérieSBF.BF_NUMSERICHAR(20)


AddressCodeEndereço/LocalizaçãoSBF.BF_LOCALIZCHAR(15)TBLInMovMat.AddressCodeCHAR(15)

LotDueDateData de ValidadeSB8.B8_DTVALIDDATETBLInMovMat.LotDtValidityDATETIME

CurrentStockAmountSaldo de estoqueSB2.B2_QATUSB8.B8_SALDOSBF.BF_QUANTDEC(12,2)


BookedStockAmountQuantidade ReservadaSB2.B2_RESERVASB8.B8_EMPENHOSBF.BF_EMPENHODEC(12,2)


AvailableStockAmountSaldo disponívelSB2.B2_QATU - SB2.B2_RESERVASB8.B8_SALDO - SB8.B8_EMPENHOSBF.BF_QUANT - SBF.BF_EMPENHODEC(12,2)


QuantityUpdated
Quantidade Atualizada
DEC(12,2)TBLInMovMat.QtyDEC(18,2)

InputOutputEntrada, Saída ou Alteração de lote/data de validade1 = Entrada, 2 = Saída ou 3 = Altera lote, data ou sincronizar saldos. CHAR(01)TBLInMovMat.ClassificationCHAR(15)

Nota:

  • Quando atualizar um saldo novo no ERP, deverá enviar a mensagem ao PC-Factory.
    Transações que geram movimentação de estoque e executam rotinas de atualização de saldo deverão acionar a integração:
    NF de Entrada  - Função B2ATUCOMD1
    NF de Venda - Função B2ATUCOMD2
    Mov. Internas - Função B2ATUCOMD3
  • 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 TOTVSMES não será gerada a mensagem.
    Na mensagem de apontamento de produção a tag "Product name"  indica quem está enviado o registro. No caso do TOTVS MES, essa informação é gravada na SH6.H6_OBSERVA = 'TOTVSMES'.
    Quando for movimentação interna é registrada na SD3.D3_OBSERVA = 'TOTVSMES'.
  • 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, saída ou alteração de lote/data de validade. 
  • Para a tag InputOutput igual a '3' a integração será realizada pelo MATA390 quando o item estiver configurado com controle de lote (B1_RASTRO). Não está contemplado na integração do MATA390 quando o item possuir controle de lote (B1_RASTRO) E endereço (B1_LOCALIZ) simultaneamente. E também para a sincronização de saldos (PCPA111).
  • Quando o item controla endereçamento (B1_LOCALIZ), a mensagem de saldo deve ser gerada somente na confirmação do MATA265, rotina que efetiva o endereçamento.
  • As rotinas de saldo inicial do PCP e Estoque, MATA220 e MATA805 também geram a mensagem de saldo.
  • Quando executada a rotina de Sincronização (PCPA111), a tag QuantityUpdated será enviada com o valor 0. A tag InputOutput com o valor 3 indica que a informação de Saldo deve ser substituída no PC-Factory, e a substituição da informação de saldo será realizada com a informação contida na tag CurrentStockAmount.

Transação Motivo de Refugo: WasteReason_1_000.xsd

Identificador da Mensagem: WasteReason
Versão: 1_000
Módulo Protheus: SIGAPCP/SIGASFC
Tipo de Envio: Síncrona


MensagemTagDescriçãoTabela/Campo:Protheus PCPTabela Campo: Protheus SFCTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCodeCódigo RefugoSX5.X5_CHAVECYO.CYO_CDRFCHAR(08)TBLOutScrap.CodeCHAR(15)

DescriptionDescrição do RefugoX5_DESCRIX5_DESCSPAX5_DESCENGCYO.CYO_DSRFCHAR(40)TBLOutScrap.NameCHAR(30)

IsReworkRetrabalho
CYO.CYO_LGRTBOOLEAN


IsScrapMaterialRefugo MaterialSBE.BE_DESCRICCYO.CYO_LGRFMPBOOLEAN

Nota:

  • Quando não estiver integrado com o Chão de Fábrica, MV_INTSFC igual a '0' o motivo de refugo é cadastrado na tabela genérica SX5. 
  • Deverá pesquisar na tabela SX5 conforme comando abaixo:
    select X5_CHAVE from sx5990 where X5_TABELA = '43'
    Em que:
    - O código do motivo é X5_CHAVE
    A tabela do motivo é '43'.
  • Quando estiver integrado com o Chão de Fábrica, MV_INTSFC igual a '1' será gerada somente a tabela do Chão de Fábrica - CYO. Rotina SFCA003. Se na mensagem não informar o indicador de refugo ou retrabalho, deve considerar refugo (CYO_LGRFMP = 'T').
  • O motivo de refugo possui tamanhos diferentes nas tabelas. Deverá validar se o código recebido não vai ultrapassar o tamanho das colunas no Protheus.
  • Quando usa o SIGAPCP deve validar contra o SX5.X5_CHAVE e SBC.BC_MOTIVO.
  • Quando usa o SIGASFC validar contra o CYO.CYO_CDRF, CY0.CY0_CDRF  e SBC.BC_MOTIVO.



Transação Motivo de Parada: StopReason_1_000.xsd

Identificador da Mensagem: StopReason

Versão: 1_000
Módulo Protheus: SIGAPCP/SIGASFC
Tipo de Envio: Síncrona


MensagemTagDescriçãoTabela/Campo:Protheus PCPTabela Campo: Protheus SFCTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCodeCódigo Motivo ParadaSX5.X5_CHAVECYN.CYN_CDSPCHAR(10) TBLOutResourceStatus.CodeCHAR(05)

DescriptionDescrição ParadaX5_DESCRIX5_DESCSPAX5_DESCENGCYN.CYN_DSSPCHAR(40)TBLOutResourceStatus.NameCHAR(30)

IsEfficiencyAltera Eficiência----



IsEmailEquipmentE-mail Planejador----



IsServiceRequestEmite Solicitação Serviço----



IsSetupParada Setup----
TBLOutResourceStatus.FlgSetupSMALLINT



Nota:

  • Quando não estiver integrado com o Chão de Fábrica, MV_INTSFC igual a '0', o motivo de parada é cadastrado a tabela genérica SX5. 
  • Deverá pesquisar na tabela SX5 conforme comando abaixo:
    select X5_CHAVE from sx5990 where X5_TABELA = '44'
    Em que:
    - O código do motivo é X5_CHAVE
    A tabela do motivo é '44'.
  • Quando estiver integrado com o Chão de Fábrica, MV_INTSFC igual a '1' será gerada somente a tabela do Chão de Fábrica - CYN. Rotina SFCA004. 
  • O motivo de parada tem tamanhos diferentes nas tabelas. Deverá validar se o código recebido não vai ultrapassar o tamanho das colunas no Protheus.
    Quando usa o SIGAPCP deve validar contra o SX5.X5_CHAVE e SH6.H6_MOTIVO
    Quando usa o SIGASFC validar contra o CYN.CYN_CDSP, CYX.CYX_CDSP e SH6.H6_MOTIVO



Transação Ordem de Produção: ProductionOrder_2_004.xsd




Identificador da Mensagem: ProductionOrder
Versão: 2_003
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona

Mesagem

Tag

Descrição

Tabela/Campo

Tipo

Tabela/Campo: PC-Factory

Tipo

BusinessContentType

Number

Número Ordem Produção

SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN

CHAR(20)

TBLInWOHD.Code

CHAR(41)


ProductionOrderUniqueID

Empresa+Filial+Ordem Produção

EMPRESA + SC2.C2_FILIAL + SC2.C2_NUM +

SC2.C2_ITEM + SC2.C2_SEQUEN

CHAR(30)




ItemCode

Código Item

SC2.C2_PRODUTO

CHAR(15)

TBLInWOHD.ProductCode

CHAR(20)


ItemDescription

Descrição Item

SB1.B1_DESC

CHAR(40)




Type

Tipo da Ordem

1= Interna; 2=Externa; 3=Interna/Externa; 4=Retrabalho;

5=Conserto; 6=Manutenção; 7=Ativo Fixo;

8=Ferramentaria; 9=Reaproveitamento


CHAR(01)

TBLInWOHD.WoTypeCode

CHAR(20)


Quantity

Quantidade

SC2.C2_QUANT

DEC(12,2)

TBLInWOHD.TotalQty

 DEC(19,4)


ReportQuantity

Quantidade Reportada

SC2.C2QUJE

DEC(12,2)




UnitOfMeasureCode

Unidade Medida

SC2.C2_UM

CHAR(02)

TBLInWoDet.Unit1Code

CHAR(05)


RequestOrderCode

Código Pedido Ordem Produção

SC2.C2_PEDIDO

CHAR(06)




StatusOrderType

Estado da ordem

Prevista/Aberta = 1

Iniciada = 6

Encerrada Parcial/Total = 7

Ociosa = 9

CHAR(01)

TBLInWOHD.Status

SMALLINT


WarehouseCode

Código Depósito

SC2.C2_LOCAL

CHAR(02)

TBLInWOHD.AuxCode1

CHAR(20)


EndOrderDateTime

Data Fim Ordem Produção CP

SC2.C2_DATPRF

DATE

TBLInWOHD.DtPlanEnd

DATETIME


StartOrderDateTime

Data Início Ordem Produção CP

SC2.C2_DATPRI

DATE

TBLInWOHD.DtPlanStart

DATETIME


AbbreviationProviderName

Nome Cliente

SC5.C5_CLIENTE ( SA1.A1_NOME)

CHAR(30)




ScriptCode

Código Roteiro

SC2.C2_ROTEIRO

CHAR(02)




ReportOrderType

Tipo de Reporte

1 = Ordem; 2 = Operações; 3 = Ponto Controle; 4 = Item


CHAR(01)



ListOfActivityOrders








ProductionOrderNumber

Ordem de Produção

SC2.C2_NUM + SC2.C2_ITEM +

SC2.C2_SEQUEN

CHAR(20)

TBLInWoDet.Wocode

CHAR(10)


ActivityID

ID do Registro

RECNO (SG2,SHY ou SH8)

CHAR(10)




ActivityCode

Código Operação

SG2.G2_OPERAC

SHY.HY_OPERAC

SH8.H8_OPER

CHAR(02)

TBLInWoDet.WODetCode+Split

 CHAR(10)


ActivityDescription

Descrição Operação

SG2.G2_DESCRI

CHAR(40)

TBLInWoDet.WODetName

CHAR(30)


Split

Desdobramento da operação

SH8.H8_DESDOBR

CHAR(04)




ActivitySequencePrioridade da execução das operaçõesNÃO UTILIZADO



ItemCode

Código do item

SC2.C2_PRODUTO

CHAR(15)




ItemDescription

Descrição do item

SB1.B1_DESC

CHAR(40)




ActivityType

Tipo Operação

1 - Aponta ; 2-Não Aponta

CHAR(01)




WorkCenterCode

Código Centro de Trabalho

SG2.G2_CTRAB

SHY.HY_CTRAB

SH8.H8_CTRAB

CHAR(06)

TLBInWODet.ManagerGrpCode

 CHAR(15)


WorkCenterDescription

Descrição Centro de Trabalho

SHB.HB_NOME

CHAR(30)




UnitTimeType

Tipo Unidade Tempo

1 - Horas; 2 - Minutos; 3- Segundos; 4 - Dias

CHAR(01)

TLBInWODet.StdSpeedFormat

 TINYINT


TimeResource

Tempo Recurso (Tempo padrão para um lote)

SG2.G2_TEMPAD

DEC(05,2)

TLBInWODet.StdSpeed

 DEC(28,23)


TimeMachine

Tempo Máquina (Tempo para fazer toda a ordem)

SG2.G2_TEMPAD * SC2.C2_QUANT

SHY.HY_TEMPO 

SH8.H8_HRINI - SH8.H8_HRFIM

DEC(14,4)

TLBInWODet.StdSpeed

DEC(28,23)


TimeSetup

Tempo Preparação

SG2.G2_SETUP

SHY.HY_TEMPOS

SH8.H8_SETUP

DEC(15,4)

TLBInWODet.SetUpTime

INT


TimeMOD

Tempo Homen

--





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

SG2.G2_CODIGO

SHY.HY_ROTEIRO

SH8.H8_ROTEIRO

CHAR(02)




LaborCode

Código Mão de Obra Direta

MOD+CC

CHAR(08)




UnitItemNumber

Lote Padrão

SG2.G2_LOTEPAD

NUM(05)

TLBInWODet.StdSpeed

DEC(28,23)


IsActivityEnd

Última Operação

Na última operação passar TRUE.

Nas demais FALSE.

BOOLEAN

TLBInWODet.ReportTrigger

TINYINT


MachineCode

Código Máquina

SG2_RECURSO

SHY_RECURSO

H8_RECURSO

CHAR(06)




StartPlanDateTime

Data/Hora Início Programação

SHY.HY_HORAINI

SC2.C2_DATPRI

SH8.H8_DTINI

DATE

TLBInWODet.StartPlanDateTime

DATETIME


EndPlanDateTime

Data/Hora Fim Programação

SHY.HY_HORAFIM

SC2.C2_DATPRF

SH8.H8_DTFIM

DATE

TLBInWODet.EndPlanDateTime

DATETIME


ProductionQuantity

Quantidade a produzir na operação

SHY.HY_QUANT 

SH8.H8_QUANT 

SC2.C2_QUANT

DEC(12,2)

TLBInWODet.Qty

 DEC(19,4)


ActivityQuantity

Quantidade da operação

SHY.HY_QUANT 

SH8.H8_QUANT 

SC2.C2_QUANT

DEC(12,2)




UnitActivityCode

Unidade de medida

SB1.B1_UM

CHAR(02)

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

SG2.G2_MAOOBRA

SHY.HY_MAOOBRA

NUM(03)



ListOfMaterialOrders








ProductionOrderNumber

Ordem de produção

SC2.C2_NUM + SC2.C2_ITEM +

SC2.C2_SEQUEN

CHAR(20)

TBLInBillMat.Wocode

CHAR(41)


MaterialID

ID do registro da reserva

SD4.R_E_C_N_O_

CHAR(10)




MaterialCode

Código Item Reserva

SD4.D4_COD

CHAR(15)

TBLInBillMat.ProductCode

CHAR(20)


MaterialDescription

Descrição do Item

SB1.B1_DESC

CHAR(40)




ScriptCode

Código Roteiro

SD4.D4_ROTEIRO

CHAR(02)




ActivityCode

Código Operação

SD4.D4_OPERAC

CHAR(02)

TBLInBillMat.WODetCode

CHAR(10)


WarehouseCode

Código Depósito

SD4.D4_LOCAL

CHAR(02)

TBLInBillMat.ExtCode

CHAR(20)


MaterialDate

Data Reserva

SD4.D4_DATA

DATE




MaterialQuantity

Quantidade Reserva

SD4.D4_QUANT

DEC(12,2)

TBLInBillMat.TotalQty

DEC(19,4)


LotCode

Lote

SD4.D4_LOTECTL

CHAR(10)




PertMaterialNumber

Sequência do item

SD4.D4_TRT

CHAR(03)




RequestType

Tipo da Requisição

SB1.B1_APROPRI

CHAR(01)

TBLInBillMat.Comments

CHAR(500)

(mais)ListOfAllocatedMaterial









WarehouseCode

Código Depósito

SD4.D4_LOCAL

CHAR(02)

TBLInMovMat.WarehouseCode

CHAR(15)


LotCode

Código Lote

SD4.D4_LOTECTL

SDC.DC_LOTECTL

CHAR(10)

TBLInMovMat.LotCode

CHAR(41)


LocationCode

Localização/Endereço

SDC.DC_LOCALIZ

CHAR(15)

TBLInMovMat.AddressCode

CHAR(15)


ActivityCode

Código Operação

SD4.D4_OPERAC

CHAR(02)

TBLInMovMat.WoDetCode

CHAR(10)


ScriptCode

Código Roteiro

SD4.D4_ROTEIRO

CHAR(02)




AllocationQuantity

Quantidade Alocada

SD4.D4_QUANT 

SDC.DC_QUANT

DEC(12,2)

TBLInMovMat.Qty

 DEC(19,4)


AllocationType

Tipo Alocação

1 = Soma;2=Diminui;3=Valor Absoluto

CHAR(01)

TBLInMovMat.AllocationType

INT


SubLoteCode

Sub Lote

SD4.D4_NUMLOTE

SDC.DC_NUMLOTE

CHAR(06)




NumberSeries

Número de Serie

SDC.DC_NUMSERI

CHAR(20)




LotDueDate

Data de Validade

SD4.D4_DTVALID

DATE

TBLInMovMat.LotDtValidity

DATETIME

ListOfQuotaActivity








ProductionOrderNumber

Número Ordem Produção

CY9.CY9_NRORPO

CHAR(20)




ControlType

Seleção Split

--





ActivityID

ID Operação

CY9.CY9_CDAT

CHAR(10)




ItemCode

Código do iten

CYY.CYY_CDAC

CHAR(15)




ItemDescription

Descrição do item

CYY.CYY_DSAC

CHAR(40)




StartActivityDateTime

Data/Hora Início Atividade

CYY.CYY_DTBGAT / CYY.CYY_HRBGAT

DATETIME

TBLInWODet.StartPlanDateTime

DATETIME


EndActivityDateTime

Data/Hora Fim Atividade

CYY.CYY_DTEDAT / CYY.CYY_HREDAT

DATETIME

 TBLInWODet.EndPlanDateTime

DATETIME


ApprovedQuantity

Quantidade Aprovada

CYY.CYY_QTATAP

DEC(13,4)




ScrapQuantity

Quantidade Refugada

CYY.CYY_QTATRF

DEC(13,4)




MachineCode

Código Máquina

CYY.CYY_CDMQ

CHAR(20)

TBLInWODet.ResourceCode

CHAR(15)


MachineDescription

Descrição da Máquina

CYY.CYY_DSMQ

CHAR(40)




ActivityQuantity

Quantidade Prevista

CYY.CYY_QTAT

DEC(12,4)

TBLInWODet.QTY

DEC(19,4)


StandardSetup

Tempo Padrão Preparação

CYY.CYY_QTPASU

NUM(10)




StandardActivity

Tempo Padrão Operação

CYY.CYY_QTPAAT

NUM(10)




StandardPostprocessing

Tempo Padrão Pós_processo

CYY.CYY_QTPAPP

NUM(10)




StandardMachine

Tempo Padrão Máquina

CYY.CYY_QTPAMQ

NUM(10)




StandardOperator

Tempo Padrão MOD

CYY.CYY_QTPAOE

NUM(10)




UsedCapacity

Capacidade Utilizada

CYY.CYY_QTVMAT

DEC(12,4)




ActivityTimeQuantity

Hora Disponível Atividade

CYY.CYY_HRDI

CHAR(08)




ReportQuantity

Quantidade Reportada

CYY.CYY_QTATRP

DEC(13,4)




ReworkQuantity

Quantidade Retrabalhada

CYY.CYY_QTATRT

DEC(12,4)




StartSetupDateTime

Data/Hora Início Preparação

CYY.CYY_DTBGSU / CYY.CYY_HRBGSU

DATETIME




EndSetupDateTime

Data/Hora Fim Preparação

CYY.CYY_DTEDSU / CYY.CYY_HREDSU

DATETIME




TimeSetup

Tempo Preparação

CY9.CY9_QTTESU

NUM(10)

TBLInWODet.SetUpTime

TINYINT


TimeMachine

Tempo Máquina

CY9.CY9_QTTEMQ

NUM(10)

TBLInWODet.StdSpeed

DEC(28,23)


TimeOperator

Tempo MOD

CY9.CY9_QTTERC

NUM(10)




TimePostprocessing

Tempo Pós Processo

CY9.CY9_QTTEPP

NUM(10)




QuotaActivityID

ID Split

CYY.CYY_IDATQO

CHAR(05)

ActivityCode+

TBLInWODet.WODetCode

CHAR(10)


WorkCenterCode

Centro de Trabalho

CY9.CY9_CDCETR

CHAR(10)

TBLInWODet.ManagerGrpCode

CHAR(15)


ReportedSplit

Split Reportado

CYY.CYY_LGQORP

BOOELAN




StatusActivityType

Estado Operação

CYY.CYY_TPSTAT

CHAR(01)



(mais) ListOfQuotaActivityTools








ToolCode

Ferramenta

CYY.CYY_CDFE

CHAR(20)




ToolQuantity

Quantidade Ferramenta

CYY.CYY_QTFE

NUM(03)





Nota:

  • As tags não utilizadas pela integração PCP Protheus x PC-Factory, mesmo constando nas mensagens descritas no Schema de Mensagem Única TOTVS, não serão mencionadas neste documento.

  • A tag Type (Tipo da ordem) será gerada com o valor "1" - Ordem interna.

  • A tag RequestType (Tipo da Requisição) identifica se a requisição pode ser feita separadamente do reporte da produção, conforme regra abaixo:

    Caso o parâmetro MV_REQAUT estiver como 'D' os materiais DIRETOS serão digitados e os INDIRETOS serão baixados automaticamente;

    Caso o parâmetro MV_REQAUT estiver como 'A' o consumo dos materiais será realizado para todos os componentes;

    Esta tag conterá os seguintes valores: 1-Direta, 2-Indireta.

    Conforme o valor desta tag o PC-factory identifica qual arquivo de retorno para o componente:

    RequestType =1, Direta  -> MovementsInternal

    RequestType =2, Indireta -> ProductionAppointment

  • A tag AllocationType (Tipo de Alocação) será gerada com o valor "3" - Valor Absoluto.

  • A tag ReportOrderType (Tipo do Reporte) será gerada com o valor "2" Operação.

  • A sessão ListOfAllocatedMaterial seguirá algumas regras para o alocação: 

    Se o item controlar endereço e não gerou a SBC não deve gerar os dados da lista ListOfAllocatedMaterial (verificar somente quando o parâmetro MV_LOCALIZ = S);

    Se o item controlar rastro e não gerou o lote na SD4, não deve gerar os dados da lista ListOfAllocatedMaterial;

    Se o item não controlar endereço nem lote, deve gerar os dados da lista ListOfAllocatedMaterial com base na SD4.

  • As tags das operações da ordem da sessão ListOfActivityOrders poderão ter origem diferente de acordo com a parametrização ou rotinas executas. Se executar o varga máquina MATA690, será usada a tabela SH8. Quando o parâmetro MV_PCPATOR estiver como 'S', será usada a tabela SHY. Se o parâmetro MV_PCPATOR estiver como 'N', será usada a tabela SG2. 

  • A tag Split da sessão ListOfActivityOrders será gerada quando ocorrer um desdobramento da operação em vários recursos. Gerado quando não usa o Chão de Fábrica.

  • A tag ActivityType (Tipo Operação) será gerada com o valor "1" - Aponta.

  • A tag UnitTimeType (Tipo unidade tempo) será gerada com o valor "1" - Hora.

  • A tag UnitItemNumber será utilizada para registrar o lote padrão de produção da operação.

  • Para o PC-Factory é necessário indicar em qual operação o componente é consumido. Quando não usa o conceito de componente x operação, deverá lincar os componentes na última operação.

  • A tag TimeMachine (Tempo Máquina) indica o tempo para fazer a ordem de produção.

    Utilizando o parâmetro MV_PCPATOR o tempo será SHY.HY_TEMPOM.

    Quando usa carga máquina, usar a diferença entre SH8.H8_HRINI e SH8.H8_HRFIM.

    O tempo pode ter variação conforme Tipo Operação (quando não existir na SHY):

    Tipo Operação 1 Normal: Aplica o tempo do lote a quantidade da ordem. Sendo: (SG2.G2_TEMPAD / SG2.G2_LOTEPAD) * SC2.C2_QUANT) / SH1.H1_MAOOBRA. Obs: Se tempo e lote for zero, considera 1.

    Tipo Operação 2 Fixo e 3 Ilimitada: Independente da quantidade, o tempo será o mesmo. Sendo: SG2.G2_TEMPAD. Obs: Se for zero envia 1.

    Tipo Operação 4 Tempo Mínimo: Considera a quantidade múltipla do lote. Exemplo: Lote = 10. Tempo = 5. Qtd Ordem = 7. Tem que considerar o tempo para fazer 10 peças. Sendo o mesmo cálculo do tipo 1 Normal.

    Outro ponto a considerar é que o PC-Factory espera o tempo em Centesimal. Quando o parâmetro MV_TPHR for diferente de 'C', o tempo será convertido para centesimal.

  • O PC-Factory calcula o tempo para fazer uma unidade da seguinte forma: ActivityQuantity  / Time Machine 

  • A tag TimeResource (Tempo Recurso) indica o tempo para fazer um lote padrão.

  • A tag LaborCode (Código mão de Obra) é indicado por 'MOD' + Centro de Custo.

  • A sessão ListOfQuotaActivity é gerada somente quando o Chão de Fábrica estiver ativo.

  • A tag StatusActivityType conterá os seguintes valores: 1=Não Iniciado;2=Programado;3=Liberado;4=Iniciado;5=Finalizado;6=Suspenso

  • O co-produto será enviado ao PC-Factory na ListOfMaterialOrders, tag MaterialQuantity, e na ListOfAllocatedMaterial, tag AllocationQuantity (quando existir) com quantidade negativa. O PC-Factory deverá enviar ao Protheus na mensagem de apontamento ProductionAppointment na SupplyOrder a tag UsedQuantity com quantidade negativa, com isso o ERP entenderá que se trata de uma entrada de co-produto no estoque. O tipo de movimento para co-produto, será cadastrado no PCPA109 e deverá ter um conteúdo menor que 500 por se tratar de uma entrada e também deve ser do tipo de DEVOLUÇÃO e o campo Atualiza Empenho deve estar como sim (rotina MATA230).

  •  A tag TimeIndMES deve ser gerada como '3'. 

  • A tag ActivitySequence não faz parte do escopo da integração com o TOTVS MES. 


Processos


Transação Apontamento de Produção: ProductionAppointment_2_000.xsd

Identificador da Mensagem: ProductionAppointment

Versão: 2_003
Módulo Protheus: SIGAPCP/SIGASFC
Tipo de Envio: Síncrona 

Nota:

Esta mensagem será gerada pelo PC-Factory e enviado ao Protheus.


MensagemTagDescrição

Tabela/Campo

Protheus PCP

Tabela Campo

Protheus SFC

TipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeMachineCodeMáquinaSH6.H6_RECURSOCYV.CYV_CDMQCHAR(06)TBLOutInteg.ResourceCodeCHAR(15)

ProductionOrderNumberOrdem de ProduçãoSH6.H6_OPCYV.CYV_NRORPOCHAR(20)TBLOutInteg.WOCodeCHAR(41)

ActivityCodeOperaçãoSH6.H6_OPERACCYV.CYV_CDATCHAR(02)TBLOutInteg.WODetCodeCHAR(10)

SplitSplitSH6.H6_DESDOBRCYV.CYV_IDATQOCHAR(04)TBLOutInteg.WODetCodeCHAR(10)

ActivityIDID Operação----



ItemCodeProdutoSH6.H6_PRODUTOCYV.CYV_CDACRPCHAR(15)TBLOutInteg.ProductCodeCHAR(20)

ApprovedQuantityQuantidade AprovadaSH6.H6_QTDPRODCYV.CYV_QTATAPDEC(11,2)TBLOutInteg.QtyDEC(19,4)

ScrapQuantityQuantidade RefugadaSH6.H6_QTDPERDCYV.CYV_QTATRFDEC(11,2)TBLOutInteg.QtyDEC(19,4)

ReworkQuantityQuantidade Retrabalhada----



StartSetupDateTimeData/Hora Início Preparação--

CYV_DTBGSU

CYV_HRBGSU

DATETIME


EndSetupDateTimeData/Hora Fim Preparação--

CYV_DTEDSU

CYV_HREDSU

DATETIME


SetupCodeCódigo Preparação--CYV_CDSUCHAR(10)


OpTimeIntTempo Operação--CYV.CYV_QTTERPNUM(10)


ProductionShiftCodeCódigo Modelo Turno--CYV.CYV_CDTNCHAR(08)


ProductionShiftNumberNúmero Turno--CYV.CYV_NRTNCHAR(05)TBLOutInteg.ShiftSMALLINT

DocumentCodeDocumento--CYV.CYV_NRDOCHAR(20)TBLOutInteg.DocNumberCHAR(20)

DocumentSeriesSérie Documento--CYV.CYV_NRSRCHAR(05)


StartReportDateTimeData/Hora Início Reporte

SH6.H6_DATAINI

SH6.H6_HORAINI

CYV.CYV_DTRPBG

CYV.CYV_HRRPBG

DATETIMETBLMSGERP.StartDATETIME

EndReportDateTimeData/Hora Fim Reporte

SH6.H6_DATAFIN

SH6.H6_HORAFIN

CYV.CYV_DTRPED

CYV.CYV_HRRPED

DATETIMETBLMSGERP.EndDATETIME

ReversedReportEstorno do ApontamentoTRUE ou FALSETRUE ou FALSEBOOLEAN


ReversalDateData do estorno--CYV.CYV_DTEODATETBLOutInteg.DTEvDATETIME

ReportDateTimeData/Hora ReporteSH6.H6_DTAPONT

CYV.CYV_DTRP

CYV.CYV_HRRP

DATETIMETBLOutInteg.DtEvDATETIME

WarehouseCodeCódigo DepósitoSH6.H6_LOCALCYV.CYV_CDDPCHAR(02)TBLOutInteg.WarehouseCodeCHAR(15)

LotCodeLote/SérieSH6.H6_LOTECTLCYV.CYV_CDLOSRCHAR(10)TBLOutInteg.LotCodeCHAR(41)

LotDueDateData Validade LoteSH6.H6_DTVALIDCYV.CYV_DTVDLODATE

TBLLot.DtValidity

DATETIME

CloseOperationEncerra OperaçãoSH6.H6_PTCYV.CYV_LGEDRPBOOLEAN


LocationCodeLocalização--CYV.CYV_CDLCCHAR(20)TBLOutInteg.Address1CodeCHAR(15)
ListOfReversalAppointments







IntegrationReportRegistro a ser estornado

CHAR(10)TBLOutInteg.TransacTypeTINYINT

ReversalTypeTipo do Estorno

CHAR(01)


ReversalQuantityQuantidade revertida--
DEC(18,4)

WasteAppointment







WasteCodeCódigo Refugo

SBC.BC_MOTIVO

CY0.CY0_CDRFCHAR(02)TBLOutInteg.ScrapCodeCHAR(15)

WasteDescriptionDescrição Refugo

SBC.BC_DESCRI

CY0.CY0_DSRFCHAR(40)


ScrapQuantityQuantidade Refugada

SBC.BC_QUANT

CY0.CY0_QTRFDEC(11,2)TBLOutInteg.QtyDEC(18,4)

ScrapProductProduto RefugadoSBC.BC_PRODUTO--CHAR(15)


WareHouseCodeDepósito Produto RefugadoSBC.BC_LOCORIG--CHAR(10)


ScrapQuantityToQuantidade Refugada geradaSBC.BC_QTDDEST--DEC(11,2)


ScrapProductToRefugo GeradoSBC.BC_CODDEST--CHAR(15)


WareHouseCodeToDepósito do Refugo geradoSBC.BC_LOCAL--CHAR(10)


AdressCodeEndereço OrigemSBC.BC_LOCALIZ
CHAR(15)


AdressCodeToEndereço DestinoSBC.BC_LOCDEST
CHAR(15)


NumberSeriesNúmero de SérieSBC.BC_NUMSERI
CHAR(20)


NumberSeriesToNúmero de Série DestinoSBC.BC_NSEDEST
CHAR(20)


LotCodeLoteSBC.BC_LOTECTL
CHAR(10)


SubLoteCodeSub LoteSBC.BC_NUMLOTE
CHAR(06)


LotDueDateData de ValidadeSBC.BC_DTVALID
DATE


CostCenterCodeCentro de CustoSBC.BC_CC
CHAR(09)

ResourceAppointment







OperatorCodeCódigo Operador--CYW.CYW_CDOECHAR(20)TBLOutInteg.UserCodeCHAR(30)

StartDateTimeData/Hora Início--

CYW.CYW_DTBGRP

CYW.CYW_HRBGRP

DATETIMETBLMSGERP.StartDATETIME

EndDateTimeData/Hora Fim--

CYW.CYW_DTEDRP

CYW.CYW_HREDRP

DATETIMETBLMSGERP.EndDATETIME

MOBTimeTempo Mão de Obra Direta--CYW.CYW_QTTEOENUM(10)


ExtraTimeTempo Extra--CYW.CYW_QTTEEXNUM(10)


UtilTimeTempo Útil--CYW.CYW_QTTEUTNUM(10)


ProductionShiftCodeCódigo Modelo Turno--CYW.CYW_CDTNCHAR(08)


ProductionShiftNumberNúmero Turno--CYW.CYW_NRTNCHAR(05)TBLOutInteg.ShiftSMALLINT
SupplyOrder







ProductionOrderNumberNúmero Ordem ProduçãoSD3.D3_OPCZP.CZP_NRORPOCHAR(20)

TBLOutInteg.WOCode

CHAR(41)

MaterialCodeCódigo Item ReservaSD3.D3_CODCZP.CZP_CDMTCHAR(15)TBLOutInteg.ProductCodeCHAR(20)

UsedQuantityQuantidade UtilizadaSD3.D3_QUANTCZP.CZP_QTRPPODEC(12,2)TBLOutInteg.Qty DEC(19,4)

WarehouseCodeCódigo DepósitoSD3.D3_LOCALCZP.CZP_CDDPCHAR(02)TBLOutInteg.WarehouseCodeCHAR(15)

LocationCodeLocalizaçãoSD3.D3_LOCALIZCZP.CZP_CDLCCHAR(15)TBLOutInteg.Address1CodeCHAR(15)

LotCodeLote/Série

SD3.D3_LOTECTL


CZP.CZP_CDLOCHAR(20)TBLOutInteg.LotCodeCHAR(41)

ActivityCodeCódigo Operação--CZP.CZP_CDATCHAR(02)TBLOutInteg.WODetCodeCHAR(10)

ScriptCodeRoteiro--CZP.CZP_CDRTCHAR(02)

ReportToolActivity







ToolCodeCódigo Ferramenta--CZ0.CZ0_IDFECHAR(20)

Nota:

  • O apontamento padrão para essa integração será o MATA681.
  • Os campos Máquina, Ordem de Produção, Operação, Produto e Data/Hora Reporte serão obrigatórios.
  • Caso Data/Hora do Reporte seja menor que a data atual, o sistema irá utilizar a Data/Hora atual, ou seja, data e hora em que a integração estiver sendo processada.
  • Caso o campo código do depósito vier sem preenchimento, deverá usar o local padrão do cadastro de item (SB1.B1_LOCPAD).
  • Por regra a última operação sempre será considera como operação final, independente do parâmetro MV_VLDOPER.
  • O campo CloseOperation vai indicar se o apontamento é TOTAL ou PARCIAL. Caso envie true deverá ser T=total. Caso false será considerado como P=Parcial. 
    Será usada a seguinte regra para finalizar a ordem/operação no Protheus:
    Encerrar a OPERAÇÃO: Obrigatoriamente deverão ser informadas as seguintes TAGS: ProductionOrderNumber, ActivityCode, CloseOperation (TRUE quando apontamento TOTAL ou operação encerrada/finalizada), ReportDateTime. Os demais campos de quantidade (ApprovedQuantity e ScrapQuantity) e data/hora início/fim (StartReportDateTime e EndReportDateTime) podem ser gerados sem valor (em branco), porém para encerrar a operação a soma das quantidades apontadas anteriormente deve ser maior ou igual a quantidade total da ordem.
    Encerrar a ORDEM: Apontamento de quantidade na última operação com a tag CloseOperation = TRUE.
    Encerrar a ORDEM: Realizar o encerramento da ordem sem necessidade de informações de apontamento no XML. Considera somente as tags ProductionOrderNumber e CloseOperation(TRUE). Sendo que, deverá verificar se tem apontamento na última operação. Deverá executar o mesmo procedimento da opção "Encerrar" do MATA681. Devendo fazer as movimentações e atualização do campo SC.C2_DATRF.
  • 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 e corresponde ao RECNO da SH6. 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. Pode estornar registros de apontamentos de produção e registros de recusa. Para isso a tag ReversalType indica qual o processo a ser executado, sendo, 1 = Produção; 2 = Recusa
  • 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.
  • Será registrado automaticamente o campo SH6.H6_OBSERVA = 'TOTVSMES' para indicar que o registro foi gerado via integração TOTVSMES.
  • O sistema PC-Factory usa o formato das horas com HH:MM:SS. Para o PCP Protheus será considerado apenas HH:MM. Apontamento com tempos menores que 1 minuto serão rejeitados.
  • A importação respeita os parâmetros definidos nas rotinas MATA681 por meio da função F12 para usuário "admin".
  • Como no PC-factory, a operação pode ser baixada num momento posterior ao apontamento e será usada a seguinte regra:
    Obrigatoriamente deverão ser informadas as seguintes TAGS:
    ProductionOrderNumber: Ordem de produção 
    ActivityCode: Operação 
    CloseOperation: True ou False. Sendo TRUE quando apontamento TOTAL ou operação encerrada/finalizada. False quando operação PARCIAL. 
    ReportDateTime: Data do apontamento.
  • Os demais campos de quantidade (ApprovedQuantity e ScrapQuantity) e data/hora início/fim (StartReportDateTime e EndReportDateTime) podem ser enviados sem valor (em branco).
  • A integração irá respeitar as regras e gatilhos definidas pelos clientes. Exemplo: A data/hora início e fim no padrão não são obrigatórias, porém o cliente pode definir a obrigatoriedade via dicionário fazendo com que as tags necessitem ser preenchidas.
  • Se estiver integrado com o Chão de Fábrica SIGASFC, deverá gravar as tabelas deste sistema. Será usado como base o processo do Apontamento Modelo 2, SFCA316.
  • O subproduto é tratado na ListOfWasteAppointments, tags ScrapProduct e ScrapProductTo. As movimentações dependem da parametrização(F12) do MATA685, que indica se consome o produto origem ou não. Não é obrigatório digitar os produtos refugados refugo gerado. Neste caso vai registrar somente os defeitos.
    Para que o subproduto seja gerado o parâmetro MV_DIGIPER, deve estar setado como 'S'.
  • Para o Reaproveitamento, o Refugo gerado deverá ser o mesmo produto da ordem. Nesse caso o que vai mudar será somente o depósito, onde existirá um local próprio para armazenar o refugo. Esta funcionalidade é para empresas que reaproveitam o produto acabado com defeito (sem gerar subproduto) na composição de outro produto.Para este caso o depósito do refugo poderá ser parametrizado no PCPA109. As movimentações dependem da parametrização (F12) do MATA685. Se esta parametrização estiver como 'S'  a rotina irá baixar o saldo do produto/local origem e acrescentar/gerar o saldo do produto/local destino. Se estiver como 'N' só irá atualizar o saldo do produto/local destino.

 

Notas Consumo dos componentes:

  • O consumo dos componentes deverá respeitar parametrização do PCPA109. 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.
  • 3 - Consumo Real/Atu Empe: Irá consumir conforme lista de componentes, SupplyOrder, enviada na mensagem. Nesta opção, se não não existir saldo suficiente da quantidade empenhada para o componente, será ajustada automaticamente a quantidade empenhada.
  • No consumo dos componentes o processo deverá seguir a seguinte regra, conforme parametrização:
  • Caso o parâmetro MV_REQAUT estiver como 'D' os materiais DIRETOS serão digitados e os INDIRETOS serão baixados automaticamente. Para baixar os Indiretos o tipo de movimento deve ter o campo "Aprop. Indir" como "S' na rotina MATA230.
    Caso o parâmetro MV_REQAUT estiver como 'A', o consumo dos materiais será realizado para todos os componentes.
  • Quando consumo real, deverá considerar o tipo de movimento do cadastro de parâmetros PCPA109, folder "Movimentos e Transferência". Para saídas usar o campo OE_VAR2. Quando usa o Chão de Fábrica, deverá usar as movimentações parametrizadas no SIGASFC (MV_SFRQMB).
  • Para o apontamento, o tipo de movimento será o que estiver no parâmetro MV_TMPAD, para o SIGAPCP e SIGASFC.
    Quando back-flush, usará os tipos de movimentos padrões da rotina.
  • No PC-Factory, não são utilizados lote e número de série ao mesmo tempo. O retorno desse conteúdo será via tag SupplyOrder - LotCode, que pode ser o Lote ou número de série, conforme o cadastro do item.


Notas Chão de Fábrica

  • Quantidade reportada CYV_QTATRP, será a soma das quantidades aprovadas e refugadas.
  • Data/Hora Início e Fim e código da Preparação apesar de serem virtuais, se a máquina exigir setup (CYB_LGUSU) deverá enviar as tags SetupCode, StartSetupDateTime e EndSetupDateTime.
  • Caso o documento, tag DocumentCode, esteja em branco será gravado o número da ordem de produção.
  • Os campos Data da Reserva 'CZP_DTMT' deve receber o conteúdo da tabela CYP.CYP_DTMT.
    A quantidade reserva 'CZP_QTMT' deve receber o conteúdo da tabela  CYP.CYP_QTMT.
    O estado 'CZP_TPST' deve receber o conteúdo da tabela CYP.CYP_TPST.
  • O tempo unidade operação, CZ0_QTTEUN, deverá ser gerado conforme regra do SFCA314.

Notas Refugo

  • Registrar o motivo de refugo (tags do ListOfWasteAppointments), atualizando dados da tabela SBC
  • Se o motivo de refugo não estiver cadastrado, será incluído no cadastro de motivos tabela SX5.
    Em que:  
    O código do motivo é X5_CHAVE  
    A tabela do motivo é '44'. 
    Para o Chão de Fábrica,  deverá gerar a tabela -CY0
  • O motivo de refugo tem tamanhos diferentes nas tabelas. Deverá validar se o código recebido não vai ultrapassar o tamanho das colunas no Protheus.
    Quando usa o PCP deve validar contra o SX5.X5_CHAVE e SBC.BC_MOTIVO.
    Quando usa o SIGASFC validar contra o CYO.CYO_CDRF, CY0.CY0_CDRF e SBC.BC_MOTIVO.



Transação Apontamento de Parada de Máquina: StopReport_1_001.xsd

Identificador da Mensagem: StopReport

Versão: 1_001
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona

Nota:

Esta mensagem será gerada pelo PC-Factory e enviado ao Protheus.
MensagemTagDescrição

Tabela/Campo

Protheus PCP

Tabela/Campo

Protheus SFC

TipoTabela/Campo: PC-FactoryTipo

MachineCodeCódigo MáquinaSH6.H6_RECURSOCYX.CYX_CDMQCHAR(06)TBLOutRSEv.ResourceCodeCHAR(15)

MachineDescriptionDescrição Maquina





StopReasonCodeCódigo Motivo ParadaSH6.H6_MOTIVOCYX.CYX_CDSPCHAR(02)TBLOutRSEv.ResourceStatusCodeCHAR(20)

StopReasonDescriptionDescrição Motivo ParadaSX5.X5_DESCRI *CYX.CYX_DSSPCHAR(40)


StartDateTimeData/Hora Início

SH6.H6_DATAINI

SH6.H6_HORAINI

CYX.CYX_DTBGSP

CYX_HRBGSP

DATETBLOutRSEv.ShiftDtStartDATETIME

EndDateTimeData/Hora Fim

SH6.H6_DATAFIN

SH6.H6_HORAFIN

CYX.CYX_DTEDSP

CYX.CYX_HREDSP

DATETBLOutRSEv.ShiftDtEndDATETIME

OperatorCodeCódigo OperadorSH6.H6_OPERADOCYX.CYX_CDOECHAR(20)TBLOutRSEv.UserCodeStartCHAR(30)

ReportDateTimeData/Hora ReporteSH6.H6_DTAPONTCYX.CYX_DTRPDATETBLOutRSEv.DtTimeStampDATETIME

ToolCodeCódigo Ferramenta-- CYX.CYX_CDFEPO



ProductionTeamCodeCódigo Equipe--CYX.CYX_CDGROE



StopTypeTipo Parada (1=Não Programada;2=Programada)--CYX.CYX_TPSP



ReportSequenceID PC-Factory----
TBLOutRSEv.IDOutRSEv

Nota:

  • O apontamento de parada padrão para essa integração será o MATA682 no PCP e no Chão de Fábrica a rotina é o SFCA311.
  • Os campos Máquina, Motivo de Parada, Data/Hora Início e Fim e Data/Hora Reporte serão obrigatórios.
  • Caso Data/Hora do Reporte seja menor que a data atual, o sistema irá utilizar a Data/Hora atual, ou seja, data e hora que a integração estiver sendo processada.
  • Apontamento de parada setará o SH6.H6_TIPO = 'I'.
  • O produto será a mão de obra. Gerado pelo sistema. Exemplo: SH6.H6_PRODUTO = MOD001.
  • A quantidade perda será gerada pelo sistema. SH6.H6_QTDPERD.
  • O campo SH6.H6_IDENT também é gerado pelo sistema.
  • O campo SH6.H6_TEMPO deve ser calculado pelo adapter. Deve ser o tempo total da parada.
  • Motivo de Parada:
    O motivo poderá ser cadastrado via integração. Deverá verificar se o motivo de parada está cadastrado. Caso não esteja, deverá ser incluído o motivo utilizado no apontamento na tabela SX5.
    Em que:
    O código do motivo é X5_CHAVE
    A tabela do motivo é '44'.
    Para o Chão de Fábrica, deverá gerar a tabela - CYN.
  • 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 StopReport e corresponde ao RECNO da SH6. 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.
    Se o campo ReversedReport possuir o conteúdo TRUE, apenas o campo IntegrationReport será considerado no processamento do XML. As demais informações serão ignoradas.
  • Será registrado automaticamente o campo SH6.H6_OBSERVA = 'TOTVSMES' para indicar que o registro foi gerado via integração PCP Protheus x PC-Factory.
  • O sistema PC-Factory usa o formato das horas com HH:MM:SS. Para o PCP Protheus será considerado apenas HH:MM. Apontamento com tempos menores que 1 minuto serão rejeitados.
  • O campo ReportSequence é utilizado para registrar o ID da tabela que registra as informações da parada. Pode ser usado no ponto de entrada MATI681CRG.
  • Modelo do turno e número do turno será gerado automaticamente pela rotina SFCA311. Somente quando usar o Chão de Fábrica.
  • Se a mensagem não enviar o StopType será considerado como 2= Não Programada. Somente quando usar o Chão de Fábrica.
  • O motivo de parada tem tamanhos diferentes nas tabelas. Deverá validar se o código recebido não vai ultrapassar o tamanho das colunas no Protheus.
    Quando usa o PCP deve validar contra o SX5.X5_CHAVE e SH6.H6_MOTIVO.
    Quando usa o SIGASFC validar contra o CYN.CYN_CDSP, CYX.CYX_CDSP e SH6.H6_MOTIVO.


Transação Saldo em Estoque - Request: StockLevel_2_000.xsd

Identificador da Mensagem: StockLevel
Versão: 2_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


Para este tipo de atualização o PC-Factory solicita o saldo ao Protheus. 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.

O Request será gerado pelo PC-Factory e enviado ao Protheus. O Return será gerado pelo Protheus e enviado ao PC-Factory.


Request

MensagemTagDescriçãoTipo
ListOfRequestItemInternalIdCódigo do produtoCHAR(15)

ReferenceCodeReferênciaCHAR(20)

WarehouseInternalIdCódigo do depósito/local de estoque/ArmazémCHAR(10)

LotNumberLoteCHAR(10)

SubLotCodeSubLoteCHAR(10)

SerialNumberNúmero de SérieCHAR(20)

AddressLocalizaçãoCHAR(15)

LotExpirationDateData de ValidadeDATE

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

MensagemTagDescriçãoTabela/CampoTipo
ReturnContentTypeClosingStockDateData fechamento estoque--
ListOfReturnItemCompanyIdEmpresa


BranchIdFilial


CompanyInternalIdEmpresa + Filial


ItemInternalIdCódigo do produtoSB2.B2_CODCHAR(15)

ReferenceCodeReferencia--
(mais) ListOfStockBalance




WarehouseInternalIdLocal de Estoque (Armazém/Depósito)SB2.B2_LOCALCHAR(10)

LotNumberNúmero do LoteSB8.B8_LOTECTL
CHAR(10)

SubLotCodeSub LoteSB8.B8_NUMLOTECHAR(10)

LotExpirationDateData de validadeSB8.B8_DTVALIDDATE

SerialNumberNúmero de sérieSBF.BF_NUMSERI
CHAR(20)

AddressLocalizaçãoSBF.BF_LOCALIZCHAR(15)

CurrentStockAmountSaldo do Produto em quantidade

SB2.B2_QATU

SB8.B8_SALDO

SBF.BF_QUANT

DEC(17,4)

BookedStockAmountQuantidade reservada em Estoque

SB2.B2_RESERVA

SB8.B8_EMPENHO

SBF.BF_EMPENHO

DEC(17,4)

AvailableStockAmountSaldo disponível do Produto em quantidade

SB2.B2_QATU - SB2.B2_RESERVA

SB8.B8_SALDO - SB8.B8_EMPENHO

SBF.BF_QUANT - SBF.BF_EMPENHO

DEC(17,4)

UnitItemCostCusto unitário do Produto--

AverageUnitItemCostCusto médio do Produto--

ValueOfCurrentStockAmountSaldo atual do estoque do produto em valor--


Transação Movimentações de Estoque: MovementsInternal_1_001.xsd

Identificador da Mensagem: MovementsInternal
Versão: 1_001
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


Nota:

Esta mensagem será gerada pelo PC-Factory e enviada ao Protheus.
MensagemTagDescriçãoTabela/CampoTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCompanyIdCódigo da empresa




BranchIdFilial




CompanyInternalIdInternalId da chave completa da empresa




InternalIdInternalId da movimentação.




TypeMovementCodeCódigo do Tipo de Movimento internoSD3.D3_TMCHAR(03)


EmissionDateData de EmissãoSD3.D3_EMISSAODATETBLOutInteg. DtTimeStampDATETIME

ItemCodeCódigo do ProdutoSD3.D3_CODCHAR(15)

TBLOutInteg.ProductCode

CHAR(20)

UnitOfMeasureCodeUnidade de MedidaSD3.D3_UMCHAR(02)


QuantityQuantidadeSD3.D3_QUANTDEC(12,2)

TBLOutInteg.Qty

DEC(19,4)

WarehouseCodeCódigo do ArmazémSD3.D3_LOCALCHAR(02)

TBLOutInteg.WarehouseCode

CHAR(15)

LotNumberLoteSD3.D3_LOTECTLCHAR(10)

TBLOutInteg.LotCode

CHAR(41)

SubLotNumberSubLoteSD3.D3_NUMLOTECHAR(06)


LotExpirationDateData Validade do LoteSD3.D3_DTVALIDDATE

TBLLot.DTDUE

DATETIME

AddressEndereçoSD3.D3_LOCALIZCHAR(15)

TBLOutInteg.Address1Code

CHAR(15)

NumberSeriesNumberSeriesSD3.D3_NUMSERICHAR(20)

TBLOutInteg.LotCode

CHAR(41)

InputOrOutputMovimento de Entrada ou Saída E=Entrada / S = SaídaCHAR(01)

TBLOutInteg.MovTypeCode

CHAR(05)

ReferenceCodeReferência--



ScriptCodeRoteiroSD4.D4_ROTEIROCHAR(02)


ActivityCodeOperaçãoSD4.D4_OPERACCHAR(02)

TBLOutInteg.WODetCode

CHAR(15)

ProductionOrderNumberOrdem de Produção/DocumentoSD3.D3_OP e SD3.D3_DOCCHAR(13)

TBLOutInteg.WOCode

CHAR(41)

FatherItemCodeItem Pai--


Nota:

  • Será registrado que a movimentação teve origem via integração com PC-Factory. O campo SD3.D3_OBSERVA será gravado com o conteúdo "TOTVSMES".
  • Se a tag InputOrOutput for E (entrada) e tag ProductionOrderNumber estiver preenchida deverá executar o processo da rotina MATA250. Será considerado o tipo de movimento de entrada Produção cadastrado no PCPA109, folder "Movimentos e Transferência".
  • Se a tag InputOrOutput for E (entrada) e tag ProductionOrderNumber não estiver preenchida deverá executar o processo da rotina MATA240. Será considerado o tipo de movimento de entrada Estoque cadastrado no PCPA109, folder "Movimentos e Transferência".
  • Se for S (saída) executar o processo da rotina MATA240. Será considerado o tipo de movimento de Saída cadastrado no PCPA109, folder "Movimentos e Transferência".
  • Para realizar um processo de estorno deverá enviar a mensagem com o seguinte formato:

Event: delete
Na seção Identification, deve existir uma chave com o nome “Estorno”. O valor da chave, composto pela concatenação dos campos: D3_FILIAL+D3_COD+D3_LOCAL+D3_NUMSEQ.

As demais informações do XML, devem estar iguais as informações que foram enviadas na mensagem que originou o movimento. Exemplo do XML:

<BusinessEvent>
<Entity>movementsinternal</Entity>
<Event>delete</Event>
<Identification>
<key name="IDPCFactory">movementsinternal-0077</key>
<key name="Estorno">01MES-PA-ENDER 01 003002</key>
</Identification>
</BusinessEvent>

  • Durante o processo do estorno, as mensagens de integração de saldo não serão enviadas para o Totvs MES, pois as movimentações já estão sendo originadas pelo MES.
  • Caso o estorno seja referente à uma produção simples (MATA250) e no XML possuir informado a tag Address, também será efetuado o estorno do endereçamento.
  • Para a tag ProductionOrderNumber será validado se o conteúdo é uma ordem de produção (SC2), Se for OP gravar no campo SD3.D3_OP, caso contrário gravar no campo SD3.D3_DOC.
  • Quando o Chão de Fábrica está em uso a rotina não permitirá realizar o movimento de entrada manual. Somente apontamento via Chão de Fábrica.


Transação Transferências:  TransferWarehouse_1_003.xsd

Identificador da Mensagem: TransferWarehouse
Versão: 1_003
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


Nota:

Esta mensagem será gerada pelo PC-Factory e enviada ao Protheus.



MensagemTagDescriçãoTabela/CampoTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCompanyIdEmpresa




BranchIdFilial




CompanyInternalIdInternalId da chave completa da empresa




InternalIdInternalId da transferência




NumberNúmero da MovimentaçãoSD3.D3_NUMSEQCHAR(06)


RegisterDateTimeData de Emissão da solicitaçãoSD3.D3_EMISSAODATETBLOutInteg.DTEV
TransferWarehouseType






InternalIdInternalId da transferência




EmissionDateData de Emissão

TBLOutInteg.DTEV

DATETIME

ItemCodeFromItem/Produto OrigemSD3.D3_CODCHAR(15)

TBLOutInteg.ProductCode

CHAR(20)

ItemCodeToItem/Produto DestinoSD3.D3_CODCHAR(15)

TBLMovEv.ProductCode

CHAR(20)

UnitOfMeasureFromUnidade de Medida OrigemSD3.D3_UMCHAR(02)


UnitOfMeasureToUnidade de Medida DestinoSD3.D3_UMCHAR(02)


QuantityQuantidadeSD3.D3_QUANTDEC(12,2)

TBLOutInteg.Qty

DEC(19,4)

WarehouseCodeFromCódigo do Armazém de OrigemSD3.D3_LOCALCHAR(02)

TBLOutInteg.WarehouseCode

CHAR(15)

WarehouseCodeToCódigo do Armazém DestinoSD3.D3_LOCALCHAR(02)

TBLMovEv.WarehouseCode

CHAR(15)

LotNumberFromNúmero do Lote de OrigemSD3.D3_LOTECTLCHAR(10)

TBLOutInteg.LotCode

CHAR(41)

LotNumberToNúmero do Lote de DestinoSD3.D3_LOTECTLCHAR(10)

TBLMovEv.LotCode

CHAR(41)

SubLotNumberNúmero do SubLoteSD3.D3_NUMLOTECHAR(06)


LotExpirationDateFromData de validade do Lote OrigemSD3.D3_DTVALIDDATE

TBLLot.DtDue

DATETIME

LotExpirationDateToData de validade do Lote DestinoSD3.D3_DTVALIDDATE

TBLLot.DtDue

DATETIME

AddressFromEndereço OrigemSD3.D3_LOCALIZCHAR(15)

TBLOutInteg.Address1Code

CHAR(15)

AddressToEndereço DestinoSD3.D3_LOCALIZCHAR(15)

TBLOutInteg.Address2Code

CHAR(15)

NumberSeriesNúmero de sérieSD3.D3_NUMSERICHAR(20)

TBLOutInteg.LotCode

CHAR(41)



Nota:

  • Será registrado que a transferência teve origem via integração com PC-Factory. O campo SD3.D3_OBSERVA será gravado com o conteúdo "TOTVSMES".
  • Para as transferências será executada a rotina MATA261
  • 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 transferência de X para Y deverá enviar um movimento de transferência de Y para X.


Transação Recusa:  Refusal_1_000.xsd


Identificador da Mensagem: Refusal
Versão: 1_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona


Esta mensagem será utilizada para registrar as perdas da produção quando são registradas peças boas e posteriormente verificado que houve algum defeito. Também pode ser utilizada para registrar as perdas da matéria-prima.


Nota:

Esta mensagem será gerada pelo PC-Factory e enviada ao Protheus.



MensagemTagDescriçãoTabela/CampoTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeProductionOrderNumberOrdem de ProduçãoSBC.BC_OPCHAR(20)


IdReportID Apontamento
CHAR(10)


ItemCodeProduto RecusadoSBC.BC_PRODUTOCHAR(20)


WarehouseCodeCódigo do depósitoSBC.BC_LOCORIGCHAR(02)


AddressCodeEndereçoSBC.BC_LOCALIZCHAR(15)


NumberSeries Número de SérieSBC.BC_NUMSERICHAR(20)




TypeTipo PerdaSBC.BC_TIPOCHAR(01)




WasteCodeMotivo de PerdaSBC.BC_MOTIVOCHAR(02)




WasteDescriptionDescrição da PerdaSBC.BC_DESCRICHAR(40)


LossQuantityQuantidade de PerdaSBC.BC_QUANTDEC(11,2)


CostCenterCodeCentro de CustoSBC.BC_CCCHAR(09)




ItemCodeToProduto GeradoSBC.BC_CODDESTCHAR(20)




WarehouseCodeToCódigo do depósito DestinoSBC.BC_LOCALCHAR(02)




AdressCodeToEndereço DestinoSBC.BC_LOCDESTCHAR(15)




NumberSeriesToNr. de Série DestinoSBC.BC_NSEDESTCHAR(20)




QuantityToQuantidade destinoSBC.BC_QTDDESTDEC(11,2)


ActivityCodeOperaçãoSBC.BC_OPERACCHAR(10)




ResourceCodeMáquina/RecursoSBC.BC_RECURSOCHAR(20)




LossDateData da PerdaSBC.BC_DATADATE




LotCodeLoteSBC.BC_LOTECTLCHAR(10)




SubLotCodeSubLoteSBC.BC_NUMLOTECHAR(06)




LotDueDateData de ValidadeSBC.BC_DTVALIDDATE

Esta mensagem terá as seguintes finalidades: 

Perda do Produto Acabado informando produto destino: 

Permite que seja alterado uma determinada quantidade que já foi apontada e está no estoque como boa. Denomina-se recusa do produto acabado, pois não será necessário realizar os estornos e depois o ajuste do apontamento.
Exemplo: OP de 50 unidades, 5 apontamentos de 10, Necessidade de acerto de 45 peças com defeitos e 5 boas.

Ao invés de estornar os 5 apontamentos e "reapontar" 5 boas e 45 refugos na ProductionAppointment poderá ser enviada uma mensagem de Recusa de 45 para a OP, informando o motivo da recusa/defeito e código do produto destino.

Perda de Matéria Prima:

A mensagem de recusa também será utilizada para registrar perda de matéria prima durante o processo produtivo. A matéria prima pode gerar um subproduto ou não.

Perda do Produto Acabado sem informar produto destino:

Poderá ser utilizado para informar a perda do produto acabado sem que seja necessário gerar as tags de destino.


Nota:

  • Será executada a rotina MATA685
  • A tag IdReport não será obrigatória. Indica o reporte de produção que deverá ser atualizado (Não usado para o Protheus)
  • A tag Type, indica se é Refugo ou Scrap. 1 = Refugo; 2= Scrap.

Limitações / Restrições Gerais

A integração não contempla cadastramentos via Fluig (WorkFlow) ou rotinas não descritas nesse documento.
A Build deve ser igual ou superior a 7.00.131227A e data 08/09/2014.


 

PROTHEUS x APS x TOTVS MES

Ordens geradas pelo APS serão enviadas via Schedule- PCPA114.

A integração do APS x PROTHEUS x TOTVS MES deverá considerar SOMENTE as ordens de produção alteradas e/ou criadas pelo APS e enviadas ao PROTHEUS.

No PCPA109, folder Ordens de Produção, é possível parametrizar se existe a integração com o APS. O Schedule para o envio de ordens geradas irá executar somente se o parâmetro "APS" estiver assinalado e a integração entre PROTHEUS x APS - MV_APS = 'TOTVS'.

Serão enviadas as ordens com origem no APS, tabela SC2, campos C2_OBS = TOTVSMES e C2_IDAPS preenchido. Também valida se existe dados na tabela SHY.

Para o envio deverá ter um controle do que já foi enviado, utilizando a tabela SOJ. Enviar somente ordens que possuam dados na SOJ com o parâmetro de envio para o MES como "N". Após o envio atualizar esse campo para "S" . Quando o APS atualizar uma ordem, deverá setar novamente o OJ_ENVMES para "N" para que o Schedule possa reenviá-la.

Para cadastrar o Schedule deve-se utilizar o SIGACFG - SCHEDULE. Configuração do Schedule em em: Schedule - Como agendar a execução de rotinas


Situações comuns 

Possíveis situações problemáticas comuns que podem ocorrer durante o funcionamento da integração e como solucioná-los.

1) Quando uma mensagem é enviada do PCP Protheus para o PC-Factory, podem ocorrer situações em que o WebService não estará totalmente funcional. Nesses casos, uma mensagem de erro genérica irá aparecer na tela:

Não foi possível realizar a conexão com o WebService do PCFactory. 

Para resolver este problema, verifique as configurações do sistema de destino, analisando o funcionamento do servidor utilizado para esta comunicação e a habilitação do endereço do WebService. 


2) Clientes com alterações no dicionário, que possuem regras específicas que afetam as rotinas listadas neste documento.

Para resolver este problema, deverá verificar o dicionário e ver caso a caso.


3) Tempo de espera do WebService. Devido alguns processos ser demorados, quando o ERP envia o retorno, o WebService pode não estar mais no aguardo.

Alterar o tempo de espera do WebService PC-Factory.


4) Se os itens acima estiverem correto, tente alterar para True o parâmetro MV_COPPI


Checklist de suporte da aplicação

Checklist de Verificações:

  • Na rotina de parâmetros, PCPA109 verificar se o campo ativo está como "1 - ATIVO"
  • Na rotina de parâmetros, PCPA109 testar conexão com o WebService da PPI informado por meio do botão Testar.
  • Configuração das sessões WEBSERVICE e PROXY do APPSERVER.INI;
  • Realizar possíveis ajustes na integração quanto à configuração ou negócio.

Controle de processamento

Ao processar requisições do WSPCP Web Service, ocorre a abertura de múltiplas threads simultaneamente. O processamento das threads é realizado pela função ManualJob, que é executada a partir do WSPCP.

O parâmetro MV_TWSPCP tem como objetivo armazenar quatro informações que serão utilizadas no momento do processamento do WSPCP, permitindo desta forma a parametrização do comportamento das threads de acordo com cada cenário.

As quatro informações que compõe o parâmetro são:

Tipo

Descrição

Default

NúmeroTempo (em segundos) de inatividade das threads do Job10
NúmeroNúmero máximo de threads do Job10
NúmeroNúmero mínimo de threads livres do Job10
NúmeroNúmero de threads incrementadas/acrescidas no Job quando o minimo livre for atingido1

Exemplos corretos de preenchimento do parâmetro:

1) 20,10,2,3

2) 10,10,10,1

3) 500,15,2,5

Exemplos incorretos de preenchimento do parâmetro:

1) 20, 10, 2, 3

2) 20 10 2 3 

3) "20","10","2","3"

4) "20,10,2,3"

Caso o parâmetro não exista ou não esteja informado, o processamento será efetuado com as informações default de acordo com o WSPCP (não será utilizado o default do ManualJob).

Caso seja preenchida uma das informações do parâmetro, as quatro informações devem ser preenchidas, na ordem indicada.

Ao preencher o parâmetro MV_TWSPCP com 20,10,2,3, o processamento terá o seguinte comportamento:


Descrição do parâmetro

Conteúdo

Comportamento do Job

Tempo (em segundos) de inatividade das threads20

Todas as threads abertas por envio de requisições permanecerão abertas por 20 segundos inativos. Após processar uma requisição, a thread voltará para a situação livre e poderá ser reutilizada. Caso não ocorra acionamento de uma thread aberta por 20 segundos, esta será fechada.

Número máximo de threads abertas simultaneamente10

Serão abertas no máximo 10 threads simultaneamente. 

Número mínimo de threads livres (sem uso)2

Serão abertas 2 threads para permanecerem livres.

Número de threads acrescidas quando a quantidade livre for atingida3

Para cada requisição, deverão estar abertas 3 threads.


Ao enviar 3 requisições

  • Ao enviar a requisição 01, serão abertas 3 threads (IDs 200, 205, 320). Como apenas a thread 200 será utilizada para atender a requisição 01, as threads 205 e 320 ficarão livres e atenderão a necessidade de manter no mínimo duas threads livres.
  • Ao concluir o atendimento da requisição 01, em 5 segundos, a thread 200 ficará livre e a quantidade será novamente 3 threads livres.
  • Ao enviar a requisição 02, como já existem 3 threads abertas e livres, não será necessário abrir novas threads, sendo utilizada apenas a thread 200 para atender.
  • Antes de concluir o atendimento da requisição 02, é enviada a requisição 03. Como a thread 200 está sendo utilizada para atender a requisição 02 e devem haver pelo menos duas threads livres, uma das delas será utililizada para atender a requisição 03. Serão abertas outras threads para atender a quantidade mínima de threads livres. 

Retorne ao Início