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

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

Integração PCP Protheus x PPI-Multitask

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 11.80.14, 12.1.10 (Fase I)

  • PCP - SIGASFC PROTHEUS 11.80.17 (Fase II)
  • PC-FACTORY (PPI MULTITASK)

 

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.

A integração contempla as seguintes rotinas e processos na FASE 1:

  1. Parametrização: Permite parametrizar a utilização da integração, indicando se está ATIVA. Indica se ocorrerá a geração dos arquivos XMLs das informações que serão trafegadas entre os sistemas e, também possibilita definir os filtros que serão aplicados nas informações.
  2. Integradores: Os "adapters" são as funções responsáveis por enviar ou receber as informações que são trafegadas entre os sistemas PCP Protheus e PC-Factory. A integração contempla as seguintes informações: Produto, local de estoque, recurso, ordens de produção, apontamento de produção e apontamento de parada.
  3. Pendências: Permite gerenciar as pendências de envio do PCP Protheus para o PC-Factory bem como verificar o histórico e erros do processo da integração.
  4. WebService: Permite processar os apontamentos de produção e parada enviados do PC-Factory para o Protheus.
  5. Sincronização: Permite realizar a sincronização dos dados entre o PCP Protheus e o PC-Factory. Poderá enviar os dados dos Produtos, Local de Estoque, Recurso e Ordem de Produção.
  6. Log de Importação: Permite consultar o processo de integração dos apontamentos de produção e paradas enviados do PC-Factory para o Protheus.


A integração contempla as seguintes rotinas e processos na FASE 2:

A fase 2 contempla o consumo dos componentes, movimentações efetuadas pelo PC-Factory e saldos em estoque. Também considera o sistema SIGASFC - Chão de Fábrica.

  1. Parametrização: Permite parametrizar a utilização da integração, indicando se está ATIVA. Indica se ocorrerá a geração dos arquivos XMLs das informações que serão trafegadas entre os sistemas e também possibilita definir os filtros que serão aplicados nas informações.
  2. Integradores: Os "adapters" são as funções responsáveis por enviar ou receber as informações que são trafegadas entre os sistemas Protheus e PC-Factory. A integração contempla as seguintes informações: Produto, local de estoque, recurso, máquinas, ferramentas, roteiro, estrutura, endereço, ordens de produção, saldos em estoque, movimentos e transferências de estoque, apontamento de produção, apontamento de parada e recusa.
  3. Pendências: Permite gerenciar as pendências de envio do Protheus para o PC-Factory, bem como verificar o histórico e erros do processo da integração.
  4. WebService: Permite processar os apontamentos de produção e parada enviados do PC-Factory para o Protheus.
  5. Sincronização: Permite realizar a sincronização dos dados entre o Protheus e o PC-Factory. Poderá enviar os dados dos Produtos, Local de Estoque, Recurso, Máquina, Roteiro, Estrutura, Endereço, Saldo em Estoque e Ordem de Produção.
  6. Log de Importação: Permite consultar o processo de integração dos apontamentos de produção,  paradas e recusas enviados do PC-Factory para o Protheus.
Nota
titleNota:
A integração não contempla a geração de ordens pelo APS.

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

Para a versão 12 do Protheus, deve-se aplicar o pacote de atualizações a partir da versão 12.1.10 na Fase I.
Também é possível utilizar na versão 11.80.14 para Fase I e 11.80.17 para Fase II. Deve-se executar a atualização de dicionário com o programa U_UPDPCP34.
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: http://tdn.totvs.com/pages/viewpage.action?pageId=6064937
Exemplo :
;CONFIGURACAO WEBSERVICE


[WebServices]
Enable=1
Environment=mssqlserver
Conout=1
Trace=1
PrepareIn=99,01
NameSpace=http://10.80.62.219:8090
URLLocation=http://10.80.62.219

[HTTP]
enable=1
port=8090

[ONSTART]
JOBS=JOB_WS_9901

[10.80.62.219]
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]
TYPE=WEBEX
ENVIRONMENT=mssqlserver
INSTANCES=1,20
SIGAWEB=WS
INSTANCENAME=WS
ONSTART=__WSSTART
ONCONNECT=__WSCONNECT

;FIM CONFIGURACAO WEBSERVICE

 

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=*******

 

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.

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>
Onde: 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;
  • 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 (versão 11.8) ou PCPA107 (versão 12);
  • Cadastro, alteração e exclusão de estrutura, MATA200;
  • 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.

 

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
titleNota:
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_000MATA200SG1
06RoteiroProtheusPC-Factory ItemScript_1_000

MATA632

MATA637

SG2

07

Ordem de Produção

Protheus

PC-Factory

ProductionOrder_2_004.xsd

MATA650

MATA651

MATA380

MATA381

MATA690

MATA712

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

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 e roteiro MATA632 ou MATA637, 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 ou MATA637), Manutenção dos Empenhos (MATA380 e MATA381), Carga Máquina (MATA690) e MRP (MATA712), 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 processo 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_informacoes_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_codigo_operacao_mensagem_apontamento_producao.

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 onde é necessário atualizar alguma informação antes do apontamento ( exemplo: estornar um endereçamento). Detalhes em: MATI681EXC_Processa_Mensagem_Apontamento

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

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

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

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

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_máquina_production_order.

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_producao

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_nao_realizam_integracao_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_informacoes_XML_integracao_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. Detalhes em: PCPADDTAGS_Adicionar_informacoes_XML_integracao_TOTVS_MES

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_informacoes_Adapter_de_movimentos_internos e MATI250CRG_Adicionar_informacoes_Adapter_de_movimentos_de_producao.

Transferências: O ponto de entrada MI261RCV possibilita a não execução da integração. Detalhes em: MI261RCV_Executar_integracao_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>

Obs.: 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 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”

  • 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” .

  • 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 processo pelo Protheus.

Nota
titleNota:
O retorno quando processo de primeira, dentro do tempo de espera do webservice, será "1" - Processado de primeira vez com ERRO ou OK.

 

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
Informações
titleImportante:
  • 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>

Rotinas

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>
    Onde: 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 pela cálculo do MRP
    "Gera Pendência": As ordens geradas pelo MRP ficarão registradas nas pendências de envio
    "Integra": As ordens geradas pelo MRP serão enviadas ao PC-Factory pelo cálculo do MRP.

    Painel "Consumo de componentes". Determinar como será o consumo dos componentes. Esse campo pode conter os seguintes valores:
    "1" - BackFlush: Sempre irá realizar a baixa dos componentes conforme o definido na engenharia.
    "2" - Consumo Real: Irá consumir conforme lista de componentes 
     
    Painel "Operações": Define se o filtro criado no folder "Roteiros" deve ser utilizado para filtrar as operações da ordem de produção.     

              Painel "Refugo"  : Defino 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


  • 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: 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
    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
    Onde: 
    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.

 

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

 

 

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

 

MensagemTag

Descrição

Tabela/Campo: ProtheusTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCompanyId Código da Empresa Logada

 

 CHAR(02)  
 BranchId CódigoFilial SB1.B1_FILIALCHAR(02)

TBLInProduct.PlantCode

CHAR(15)
 CompanyInternalIdEmpresa+Filial EMPRESA + SB1.B1_FILIAL   
 Code Código do ProdutoSB1.B1_CODCHAR(15) TBLInProduct.CodeCHAR(20)
 Name Descrição do produtoSB1.B1_DESCCHAR(30)TBLInProduct.NameCHAR(70)
 InternalIdEmpresa+filial+código do produtoEMPRESA + SB1.B1_FILIAL + SB1.B1_COD   
 ShortName Nome curtoSB1.B1_DESCCHAR(30)TBLInProduct.SecondNameCHAR(30)
 Active Item ativo?SB1.B1_ATIVOCHAR(01)TBLInProduct.FlgEnableSMALLINT
 UnitOfMeasureCode Unidade de MedidaSB1.B1_UMCHAR(02)TBLInProduct.Unit1codeCHAR(05)
 UnitOfMeasureInternalIdEmpresa+filial+unidade de medidaEMPRESA + SB1.B1_FILIAL + SB1.B1_UM   
 StockGroupCodeGrupo de EstoqueSB1.B1_GRUPOCHAR(04)  
 StockGroupInternalIdEmpresa+filial+grupo de estoqueEMPRESA + SB1.B1_FILIAL + SB1.B1_GRUPO   
 StockGroupDescriptionDescrição do grupo estoqueSBM.BM_DESCCHAR(30)  
 StandardWarehouseCodeLocal de EstoqueSB1.B1_LOCPADCHAR(02)  
 StandardWarehouseInternalIdEmpresa+filial+local de estoqueEMPRESA + SB1.B1_FILIAL + SB1.B1_LOCPAD   
 StandardWarehouseDescriptionDescrição Local de EstoqueNNR.NNR_DESCRICHAR(40)  
 EconomicLot Lote econômicoSB1.B1_LEDEC(12,2)  
 MinimumLot Lote mínimoSB1.B1_LMDEC(12,2)  
 FamilyCode FamíliaSB1.B1_FPCODCHAR(10)TBLInProduct.FamilyProductCodeCHAR(15)
 FamilyInternalIdEmpresa+filial+famíliaEMPRESA + SB1.B1_FILIAL + SB1.B1_FPCOD   
 FamilyDescription Descrição da famíliaSYC.YC_NOMECHAR(40)TBLInProduct.FamilyProductNameCHAR(30)
 NetWeightPeso do ItemSB1.B1_PESODEC(11,4)  
 GrossWeighPeso brutoSB1.B1_PESBRUDEC(11,4)  
 TrailRastroSB1.B1_RASTROCHAR(01)  
 BinControlControla EndereçoSB1.B1_LOCALIZCHAR(01)  
 SecondUnitOfMeasureCodeSegunda Unidade de medidaSB1.B1_SEGUMCHAR(02)TBLInProduct.Unit2CodeCHAR(20)
 SecondUnitOfMeasureInternalIdEmpresa+filial+ seg. unidade de medidaEMPRESA + SB1.B1_FILIAL + SB1.B1_SEGUM   
 MultiplicationFactorValue Fator de conversãoSB1.B1_CONVDEC(5,2)TBLInProduct.Unit2FactorDEC(8,4)
 ProductTypeTipo do ItemSB1.B1_TIPOCHAR(02)TBLInProduct.ProductTypeCodeCHAR(15)
 PackingQuantity Quantidade EmbalagemSB1.B1_QENUM(09)TBLInProduct.QtyPackageDEC(19,4)
 CostCenterCodeCentro de CustoSB1.B1_CCCHAR(09)TBLInProduct.CostCenterCodeCHAR(20)
 StockControlTypeControle do estoque do item CHAR(01)  
Nota
titleNota:
  • 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 TagDescriçãoTabela/Campo: ProtheusTipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCompanyIdCódigo da Empresa CHAR(02)TBLInWarehouse.ExtcodeCHAR(20)
 BranchIdCódigo da FilialNNR.NNR_FILIALCHAR(02)TBLInWarehouse.PlantCodeCHAR(15)
 CompanyInternalIdEmpresa+FilialEMPRESA + NNR.NNR_FILIAL   
 CodeCódigo do Local de Estoque(armazém/almoxarifado/depósito)NNR.NNR_CODIGOCHAR(02)TBLInWarehouse.CodeCHAR(15)
 InternalIdEmpresa+Filial+código local

EMPRESA + NNR.NNR_FILIAL +

NNR.NNR_CODIGO

   
 DescriptionDescrição do Local de Estoque (armazém/almoxarifado/depósito)NNR.NNR_DESCRICHAR(20)TBLInWarehouse.NameCHAR(15)
 ActiveLocal de Estoque Ativo?TRUECHAR(01)TBLInWarehouse.FlgEnableSMALLINT
 TypeTipo do Local de EstoqueNNR.NNR_TIPOCHAR(01)  
 WarehouseClassificationClassificaçãoNNR.NNR_INTPCHAR(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

MensagemTagDescrição

Tabela/Campo:

Protheus PCP

Tabela Campo:

Protheus SFC

TipoTabela/Campo: PC-FactoryTipo
BusinessContentType
      
 CodeCódigo MáquinaSH1.H1_CODIGOCYB.CYB_CDMQCHAR(20)TBLInResource.codeCHAR(15)
 DescriptionDescrição MáquinaSH1.H1DESCRICYB.CYB_DSMQCHAR(40)

TBLInResource.Name

TBLInResource.Nickname

CHAR(20)
 WorkCenterCodeCódigo Centro TrabalhoSH1.H1_CTRABCYB.CYB_CDCETRCHAR(10)

TBLInResource.ManagerGrpCode

CHAR(15)
 WorkCenterDescriptionDescrição Centro TrabalhoSHB.HB_NOMECYB.CYB_DSCETRCHAR(40)

TBLInResource.WorkCenterDescription

CHAR(15)
 CostCenterCodeCódigo Centro CustoSH1.H1_CCUSTCYB.CYB_CDCECSCHAR(20)  
 ProcessorTypeTipo de Processamento 

CYB.CYB_TPPC

1=Monoprocesso;2=Por Batelada;

3=Multiplos Processos;4=Manual

CHAR(01)  
 LaborTypeTipo MOD 

CYB.CYB_TPMOD

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

CHAR(01)  
 VolumeMachineQuantityQuantidade Volume Máquina CYB.CYB_QTVMMQDEC(12,4)  
 EfficiencyMachineValueEficiência Máquina CYB.CYB_VLEFMQDEC(05,2)  
 OperatorMachineQuantityQuantidade Operador Máquina CYB.CYB_QTOEMQNUM(02)  
 SimultaneousActivityQuantityQuantidade Operações Simultâneas CYB.CYB_QTATSMNUM(03)  
 IsSetupPossui Preparação CYB.CYB_LGSUBOOLEAN  
 IsOverlapReportSobrepõe Apontamento CYB.CYB_LGOVRPBOOLEAN  
 ProductionAreaCodeÁrea de Produção CYB.CYB_CDARPOCHAR(10)  
 InitialValidateDateData início validade CYB.CYB_DTBGVDDATE  
 FinalValidateDateData fim validade CYB.CYB_DTEDVDDATE  
ListOfResources
      
  ResourceTypeTipo do Recurso 

CYC.CYC_TPRC

1=Operador;2=Ferramenta;

3=Equipe;4=Equipamento

CHAR(01)  
 ResourceCodeCódigo Recurso CYC.CYC_CDRCCHAR(20)TBLInUser.CodeCHAR(30)
 ResourceNameNome Recurso CYC.CYC_NMRCCHAR(40)

 TBLInUser.Name

 TBLInUser.Nickname
CHAR(60)
 UnitTimeTypeTipo Medida Tempo 

CYC.CYC_TPUNTE

1=Horas;2=Minutos;3=Segundos

CHAR(01)  
 StartExpirationDateData Início Validade CYC.CYC_DTBGVDDATE  
 EndExpirationDateData Fim Validade CYC.CYC_DTEDVDDATE  
 CycleQuantityNúmero Ciclos CYC.CYC_QTCIDEC(11,4)  
 IsTimeActivityDetermina tempo CYC.CYC_LGTEATBOOLEAN  
ListOfProductionShifts       
 ProductionShiftCodeCódigo Modelo Turno CYL.CYL_CDTNCHAR(08)  
 ProductionShiftDescriptionDescrição Modelo Turno CYL.CYL_DSTNCHAR(40)  
 BeginDateData Início Validade CYL.CYL_DTVDBGDATE  
 EndDateData Fim Validade CYL.CYL_DTVDEDDATE  


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ção

Tabela/Campo:

Protheus PCP

Tabela Campo:

Protheus SFC

TipoTabela/Campo: PC-FactoryTipo
BusinessContentType
      
 CodeCódigo do RecursoSH4.H4_CODIGOCYH.CYH_CDRCCHAR(06)

TBLTooling.Code

CHAR(15)
 NameNome do Recurso

SH4.H4_DESCRI

CYH.CYH_NMRCCHAR(40)TBLTooling.NameCHAR(50)
 TypeTipo do Recurso

1=Operador;2=Ferramenta;

3=Equipe;4=Equipamento.

 

CYH.CYH_TPRC

 1=Operador;2=Ferramenta;

3=Equipe;4=Equipament

CHAR(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
titleNota:
  • 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 pai

EMPRESA + SG1.G1_FILIAL +

SG1.G1_COD

   
 ItemCodeCódigo item paiSG1.G1_CODCHAR(15)

TBLInWOHD.ProductCode

TBLInWOHD.WOCode

CHAR(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)  

 

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

TBLInWOHD.WOCode

CHAR(20)
 ItemDescriptionDescrição do itemSB1.B1_DESCCHAR(40)  
 ItemInternalIdEmpresa|Filial|Item

EMPRESA + 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ção

1 = 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
titleNota:
  • 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';
  • 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 estoque

SB2.B2_QATU

SB8.B8_SALDO

SBF.BF_QUANT

DEC(12,2)  
 BookedStockAmountQuantidade Reservada

SB2.B2_RESERVA

SB8.B8_EMPENHO

SBF.BF_EMPENHO

DEC(12,2)  
 AvailableStockAmountSaldo disponível

SB2.B2_QATU - SB2.B2_RESERVA

SB8.B8_SALDO - SB8.B8_EMPENHO

SBF.BF_QUANT - SBF.BF_EMPENHO

DEC(12,2)  
 
QuantityUpdated
Quantidade Atualizada DEC(12,2)TBLInMovMat.QtyDEC(18,2)
 
InputOutputEntrada ou Saída1 = Entrada ou 2 = SaídaCHAR(01)TBLInMovMat.ClassificationCHAR(15)
Nota
titleNota:
  • 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 ou saída. 
  • 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.

 

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ção

Tabela/Campo:

Protheus PCP

Tabela Campo:

Protheus SFC

TipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCodeCódigo RefugoSX5.X5_CHAVECYO.CYO_CDRFCHAR(08)TBLOutScrap.CodeCHAR(15)
 DescriptionDescrição do Refugo

X5_DESCRI

X5_DESCSPA

X5_DESCENG

CYO.CYO_DSRFCHAR(40)TBLOutScrap.NameCHAR(30)
 IsReworkRetrabalho

 

CYO.CYO_LGRTBOOLEAN  
 IsScrapMaterialRefugo MaterialSBE.BE_DESCRICCYO.CYO_LGRFMPBOOLEAN  
Nota
titleNota:
  • 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'
    Onde:
    - 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ção

Tabela/Campo:

Protheus PCP

Tabela Campo:

Protheus SFC

TipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeCodeCódigo Motivo ParadaSX5.X5_CHAVECYN.CYN_CDSPCHAR(10) TBLOutResourceStatus.CodeCHAR(05)
 DescriptionDescrição Parada

X5_DESCRI

X5_DESCSPA

X5_DESCENG

CYN.CYN_DSSPCHAR(40)

TBLOutResourceStatus.Name

CHAR(30)
 IsEfficiencyAltera Eficiência

--

--   
 IsEmailEquipmentE-mail Planejador----   
 IsServiceRequestEmite Solicitação Serviço----   
 IsSetupParada Setup---- TBLOutResourceStatus.FlgSetupSMALLINT

 

 

Nota
titleNota:
  • 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'
    Onde:
    - 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

MesagemTagDescrição

Tabela/Campo

TipoTabela/Campo: PC-FactoryTipo
BusinessContentTypeNumberNúmero Ordem ProduçãoSC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUENCHAR(20)TBLInWOHD.CodeCHAR(41)
 ProductionOrderUniqueIDEmpresa+Filial+Ordem Produção

EMPRESA + SC2.C2_FILIAL + SC2.C2_NUM +

SC2.C2_ITEM + SC2.C2_SEQUEN

CHAR(30)  
 ItemCodeCódigo ItemSC2.C2_PRODUTOCHAR(15)TBLInWOHD.ProductCodeCHAR(20)
 ItemDescriptionDescrição ItemSB1.B1_DESCCHAR(40)  
 TypeTipo 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.WoTypeCodeCHAR(20)
 QuantityQuantidadeSC2.C2_QUANTDEC(12,2)TBLInWOHD.TotalQty

 DEC(19,4)

 ReportQuantityQuantidade ReportadaSC2.C2QUJEDEC(12,2)  
 UnitOfMeasureCodeUnidade MedidaSC2.C2_UMCHAR(02)TBLInWoDet.Unit1CodeCHAR(05)
 RequestOrderCodeCódigo Pedido Ordem ProduçãoSC2.C2_PEDIDOCHAR(06)  
 StatusOrderTypeEstado da ordem

Prevista/Aberta = 1

Iniciada = 6

Encerrada Parcial/Total = 7

Ociosa = 9

CHAR(01)TBLInWOHD.StatusSMALLINT
 WarehouseCodeCódigo DepósitoSC2.C2_LOCALCHAR(02)TBLInWOHD.AuxCode1CHAR(20)
 EndOrderDateTimeData Fim Ordem Produção CPSC2.C2_DATPRFDATETBLInWOHD.DtPlanEndDATETIME
 StartOrderDateTimeData Início Ordem Produção CPSC2.C2_DATPRIDATETBLInWOHD.DtPlanStartDATETIME
 AbbreviationProviderNameNome ClienteSC5.C5_CLIENTE ( SA1.A1_NOME)CHAR(30)  
 ScriptCodeCódigo RoteiroSC2.C2_ROTEIROCHAR(02)  
 ReportOrderTypeTipo de Reporte

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

 

CHAR(01)  
ListOfActivityOrders      
 ProductionOrderNumberOrdem de Produção

SC2.C2_NUM + SC2.C2_ITEM +

SC2.C2_SEQUEN

CHAR(20)TBLInWoDet.Wocode

CHAR(10)

 ActivityIDID do RegistroRECNO (SG2,SHY ou SH8)CHAR(10)  
 ActivityCodeCódigo Operação

SG2.G2_OPERAC

SHY.HY_OPERAC

SH8.H8_OPER

CHAR(02)TBLInWoDet.WODetCode+Split

 CHAR(10)

 ActivityDescriptionDescrição OperaçãoSG2.G2_DESCRICHAR(40)TBLInWoDet.WODetName

CHAR(30)

 SplitDesdobramento da operaçãoSH8.H8_DESDOBRCHAR(04)  
 ItemCodeCódigo do item

SC2.C2_PRODUTO

CHAR(15)  
 ItemDescriptionDescrição do itemSB1.B1_DESCCHAR(40)  
 ActivityTypeTipo Operação1 - Aponta ; 2-Não ApontaCHAR(01)  
 WorkCenterCodeCódigo Centro de Trabalho

SG2.G2_CTRAB

SHY.HY_CTRAB

SH8.H8_CTRAB

CHAR(06)TLBInWODet.ManagerGrpCode CHAR(15)
 WorkCenterDescriptionDescrição Centro de TrabalhoSHB.HB_NOMECHAR(30)  
 UnitTimeTypeTipo Unidade Tempo1 - Horas; 2 - Minutos; 3- Segundos; 4 - DiasCHAR(01)TLBInWODet.StdSpeedFormat TINYINT
 TimeResourceTempo Recurso (Tempo padrão para um lote)SG2.G2_TEMPADDEC(05,2)TLBInWODet.StdSpeed DEC(28,23)
 TimeMachineTempo 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)
 TimeSetupTempo Preparação

SG2.G2_SETUP

SHY.HY_TEMPOS

SH8.H8_SETUP

DEC(15,4)TLBInWODet.SetUpTimeINT
 TimeMODTempo Homen--   
 TimeIndMESIindicador de tempo no MES1 = Tempo Máquina; 2 = Tempo mão-de-obra; 3 = Escolha pelo MES.CHAR(01)  
 ScriptCodeCódigo Roteiro

SG2.G2_CODIGO

SHY.HY_ROTEIRO

SH8.H8_ROTEIRO

CHAR(02)  
 LaborCodeCódigo Mão de Obra DiretaMOD+CCCHAR(08)  
 UnitItemNumberLote PadrãoSG2.G2_LOTEPADNUM(05)TLBInWODet.StdSpeedDEC(28,23)
 IsActivityEndÚltima Operação

Na última operação passar TRUE.

Nas demais FALSE.

BOOLEANTLBInWODet.ReportTrigger

TINYINT

 MachineCodeCódigo Máquina

SG2_RECURSO

SHY_RECURSO

H8_RECURSO

CHAR(06)  
 StartPlanDateTimeData/Hora Início Programação

SHY.HY_HORAINI

SC2.C2_DATPRI

SH8.H8_DTINI

DATETLBInWODet.StartPlanDateTimeDATETIME
 EndPlanDateTimeData/Hora Fim Programação

SHY.HY_HORAFIM

SC2.C2_DATPRF

SH8.H8_DTFIM

DATETLBInWODet.EndPlanDateTimeDATETIME
 ProductionQuantityQuantidade a produzir na operação

SHY.HY_QUANT 

SH8.H8_QUANT 

SC2.C2_QUANT

DEC(12,2)TLBInWODet.Qty DEC(19,4)
 ActivityQuantityQuantidade da operação

SHY.HY_QUANT 

SH8.H8_QUANT 

SC2.C2_QUANT

DEC(12,2)  
 UnitActivityCodeUnidade de medidaSB1.B1_UMCHAR(02)TLBInWODet.Unit1CodeCHAR(5)
 SecondUnitActivityCodeSegunda unidade de medida na operação-- TLBInWODet.Unit2CodeCHAR(5)
 SecondUnitActivityFactorFator 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      
 ProductionOrderNumberOrdem de produção

SC2.C2_NUM + SC2.C2_ITEM +

SC2.C2_SEQUEN

CHAR(20)TBLInBillMat.WocodeCHAR(41)
 MaterialIDID do registro da reservaSD4.R_E_C_N_O_CHAR(10)  
 MaterialCodeCódigo Item ReservaSD4.D4_CODCHAR(15)TBLInBillMat.ProductCodeCHAR(20)
 MaterialDescriptionDescrição do ItemSB1.B1_DESCCHAR(40)  
 ScriptCodeCódigo RoteiroSD4.D4_ROTEIROCHAR(02)  
 ActivityCodeCódigo OperaçãoSD4.D4_OPERACCHAR(02)TBLInBillMat.WODetCodeCHAR(10)
 WarehouseCodeCódigo DepósitoSD4.D4_LOCALCHAR(02)TBLInBillMat.ExtCodeCHAR(20)
 MaterialDateData ReservaSD4.D4_DATADATE  
 MaterialQuantityQuantidade ReservaSD4.D4_QUANTDEC(12,2)TBLInBillMat.TotalQtyDEC(19,4)
 LotCodeLoteSD4.D4_LOTECTLCHAR(10)  
 PertMaterialNumberSequência do itemSD4.D4_TRTCHAR(03)  
 RequestTypeTipo da RequisiçãoSB1.B1_APROPRICHAR(01)TBLInBillMat.CommentsCHAR(500)
(mais)ListOfAllocatedMaterial

 

      
 WarehouseCodeCódigo DepósitoSD4.D4_LOCALCHAR(02)TBLInMovMat.WarehouseCodeCHAR(15)
 LotCodeCódigo Lote

SD4.D4_LOTECTL

SDC.DC_LOTECTL

CHAR(10)TBLInMovMat.LotCodeCHAR(41)
 LocationCodeLocalização/EndereçoSDC.DC_LOCALIZCHAR(15)TBLInMovMat.AddressCodeCHAR(15)
 ActivityCodeCódigo OperaçãoSD4.D4_OPERAC CHAR(02)TBLInMovMat.WoDetCodeCHAR(10)
 ScriptCodeCódigo RoteiroSD4.D4_ROTEIROCHAR(02)  
 AllocationQuantityQuantidade Alocada

SD4.D4_QUANT 

SDC.DC_QUANT

DEC(12,2)TBLInMovMat.Qty DEC(19,4)
 AllocationTypeTipo Alocação

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

CHAR(01)TBLInMovMat.AllocationTypeINT
 SubLoteCodeSub Lote

SD4.D4_NUMLOTE

SDC.DC_NUMLOTE

CHAR(06)  
 NumberSeriesNúmero de SerieSDC.DC_NUMSERICHAR(20)  
 LotDueDateData de ValidadeSD4.D4_DTVALIDDATETBLInMovMat.LotDtValidityDATETIME
ListOfQuotaActivity      
 ProductionOrderNumberNúmero Ordem ProduçãoCY9.CY9_NRORPOCHAR(20)  
 ControlTypeSeleção Split--   
 ActivityIDID OperaçãoCY9.CY9_CDATCHAR(10)  
 ItemCodeCódigo do itenCYY.CYY_CDACCHAR(15)  
 ItemDescriptionDescrição do itemCYY.CYY_DSACCHAR(40)  
 StartActivityDateTimeData/Hora Início AtividadeCYY.CYY_DTBGAT / CYY.CYY_HRBGATDATETIMETBLInWODet.StartPlanDateTimeDATETIME
 EndActivityDateTimeData/Hora Fim AtividadeCYY.CYY_DTEDAT / CYY.CYY_HREDATDATETIME TBLInWODet.EndPlanDateTimeDATETIME
 ApprovedQuantityQuantidade AprovadaCYY.CYY_QTATAPDEC(13,4)  
 ScrapQuantityQuantidade RefugadaCYY.CYY_QTATRFDEC(13,4)  
 MachineCodeCódigo MáquinaCYY.CYY_CDMQCHAR(20)TBLInWODet.ResourceCodeCHAR(15)
 MachineDescriptionDescrição da MáquinaCYY.CYY_DSMQCHAR(40)  
 ActivityQuantityQuantidade PrevistaCYY.CYY_QTATDEC(12,4)TBLInWODet.QTYDEC(19,4)
 StandardSetupTempo Padrão PreparaçãoCYY.CYY_QTPASUNUM(10)  
 StandardActivityTempo Padrão OperaçãoCYY.CYY_QTPAATNUM(10)  
 StandardPostprocessingTempo Padrão Pós_processoCYY.CYY_QTPAPPNUM(10)  
 StandardMachineTempo Padrão MáquinaCYY.CYY_QTPAMQNUM(10)  
 StandardOperatorTempo Padrão MODCYY.CYY_QTPAOENUM(10)  
 UsedCapacityCapacidade UtilizadaCYY.CYY_QTVMATDEC(12,4)  
 ActivityTimeQuantityHora Disponível AtividadeCYY.CYY_HRDICHAR(08)  
 ReportQuantityQuantidade ReportadaCYY.CYY_QTATRPDEC(13,4)  
 ReworkQuantityQuantidade RetrabalhadaCYY.CYY_QTATRTDEC(12,4)  
 StartSetupDateTimeData/Hora Início PreparaçãoCYY.CYY_DTBGSU / CYY.CYY_HRBGSUDATETIME  
 EndSetupDateTimeData/Hora Fim PreparaçãoCYY.CYY_DTEDSU / CYY.CYY_HREDSUDATETIME  
 TimeSetupTempo PreparaçãoCY9.CY9_QTTESUNUM(10)TBLInWODet.SetUpTimeTINYINT
 TimeMachineTempo MáquinaCY9.CY9_QTTEMQNUM(10)TBLInWODet.StdSpeedDEC(28,23)
 TimeOperatorTempo MODCY9.CY9_QTTERCNUM(10)  
 TimePostprocessingTempo Pós ProcessoCY9.CY9_QTTEPPNUM(10)  
 QuotaActivityIDID SplitCYY.CYY_IDATQOCHAR(05)

ActivityCode+

TBLInWODet.WODetCode
CHAR(10)
 WorkCenterCodeCentro de TrabalhoCY9.CY9_CDCETRCHAR(10)TBLInWODet.ManagerGrpCodeCHAR(15)
 ReportedSplitSplit ReportadoCYY.CYY_LGQORPBOOELAN  
 StatusActivityTypeEstado OperaçãoCYY.CYY_TPSTATCHAR(01)  
(mais) ListOfQuotaActivityTools      
 ToolCodeFerramentaCYY.CYY_CDFECHAR(20)  
 ToolQuantityQuantidade FerramentaCYY.CYY_QTFENUM(03)  

 

 

Nota
titleNota:
  • 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.
  • 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 gerado como '3'
     

 

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
titleNota:
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)  
 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

ou

SD3.D3_NUMSERI

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
titleNota:
  • 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 o 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).
  • 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).
    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 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.
  • 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.
    Onde :  
    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
titleNota:
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
titleNota:
  • 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.
    Onde:
    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.
  • O estorno pode ser gerado de duas formas no arquivo: somente o estorno ou estorno + apontamento. Quando a mensagem possuir o estorno e o apontamento só pode commitar as movimentações quando ambas forem concluídas.
    Para identificar se a mensagem possui somente estorno ou estorno + apontamento deverá verificar as seguintes situações:
    Somente estorno: possui somente as informações do ReversedReport e IntegrationReport com a demais tags sem dados. 
    Estorno + apontamento: possui ReversedReport e IntegrationReport  informados e os demais dados obrigatórios (Máquina, Motivo de Parada, Data/Hora Início e Fim e Data/Hora Reporte) preenchidos.
  • Será registrado automaticamente o campo SH6.H6_OBSERVA = 'PPI' 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 o 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
titleNota:
  • 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
titleNota:
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
titleNota:
  • 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) deverá executar o processo da rotina MATA250. Se for S (saída) executar o processo da rotina MATA240. Diferente de E ou S, rejeitar a mensagem.
  • A tag InputOrOutput indica se é entrada ou saída. Com base nessa informação deverá considerar o tipo do movimento do cadastro PCPA109, folder "Movimentos e Transferência". Se for Entrada usar o campo OE_VAR1. Se for Saída usar o campo OE_VAR2.
  • Não terá a opção de estorno. Para realizar um processo de estorno deverá enviar a movimentação contrária, ou seja, para estornar uma entrada deverá enviar um movimento de saída.
  • 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
titleNota:
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_EMISSAODATE  
TransferWarehouseType      
 InternalIdInternalId da transferência    
 EmissionDateData de EmissãoSD3.D3_EMISSAODATE

TBLOutInteg.DtTimeStamp

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
titleNota:
  • 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
titleNota:
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
titleNota:

  • 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 a geração de ordens pelo APS, cadastramentos via Fluig (WorkFlow) ou rotinas não descritas nesse documento.
A Build deve ser igual ou superior a 7.00.131227A e data 08/09/2014.

 

Situações comuns 

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

1) Quando uma mensagem é enviada do 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.

 

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.