Histórico da Página
Integração PCP Protheus x PPI-Multitask
Contexto de negócio
- MES
Manufacturing Execution Systems, ou simplesmente MES, é o termo usado para designar os sistemas focados no gerenciamento das atividades de produção e que estabelecem uma ligação direta entre o planejamento e o chão de fábrica. Os sistemas MES geram informações precisas e em tempo real que promovem a otimização de todas as etapas da produção, desde a emissão de uma ordem até o embarque dos produtos acabados.
A importância destes sistemas vem da lacuna que normalmente existe entre o ERP (Entreprise Resource Planning) e os softwares específicos da linha de produção. O MES pode importar dados do ERP e integrá-los com o dia-a-dia da produção, gerenciando e sincronizando as tarefas produtivas com o fluxo de materiais.
Considerando que na cadeia de suprimento o maior valor agregado costuma estar na produção, faz todo sentido investir em sistemas que otimizem o fluxo, controle e qualidade do material (Fonte: PPI-Multitask). - Planejamento e Controle da produção
A reunião dos meios de produção (matéria-prima, mão-de-obra e equipamentos) possibilita a fabricação de produtos que surgem pela ação dos Sistemas produtivos. Os planos que servem de guia na execução e no controle da produção são comandados pelo órgão auxiliar denominado Planejamento e Controle da Produção (PCP), que dita normas a linha de produção, visando a um fluxo ordenado e contínuo do processo produtivo. - 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 integrado 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 ficará com a responsabilidade de criação das ordens de produção e o PC-Factory com os apontamentos.
A integração contempla as seguintes rotinas e processos na FASE 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.
- 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.
- 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.
- WebService: Permite processar os apontamentos de produção e parada enviados do PC-Factory para o Protheus.
- 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.
- 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 feitas pelo PC-Factory e saldos em estoque. Também considera o sistema SIGASFC - Chão de Fábrica.
- Parametrização: Permite parametrizar a utilização da integração, indicando se está ATIVA. Indica se ocorrerá a geração dos arquivos XMLs das informações que serão trafegadas entre os sistemas e também possibilita definir os filtros que serão aplicados nas informações.
- Integradores: Os "adapters" são as funções responsáveis por enviar ou receber as informações que são trafegadas entre os sistemas Protheus e PC-Factory. A integração contempla as seguintes informações: Produto, local de estoque, recurso, maquinas, ferramentas, roteiro, estrutura, endereço, ordens de produção, saldos em estoque, movimentos e transferências de estoque, apontamento de produção e apontamento de parada.
- 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.
- WebService: Permite processar os apontamentos de produção e parada enviados do PC-Factory para o Protheus.
- 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.
- 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.
Observação: 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:
- Abrir o programa de Parâmetros da integração: PCPA109 (Atualizações -> Integração MES-> Parâmetros).
- Setar o campo Ativo para "1- Ativo".
- No campo caminho Informar a URL do WebService da PPI-Multitask.
- Verificar a conectividade do WebService por meio do botão Testar.
- Indicar se a integração irá gerar fisicamente os arquivos XML.
- Configurar os filtros para cada informação que será trafegada entre os sistemas.
- Confirmar a ativação por meio do botão CONFIRMA.
O botão de Testar verifica se é possível realizar a conexão com o WebService informado no campo Caminho. Este botão tem dois retornos:
- Conexão com o WebService realizada com Sucesso.
- Não foi possível realizar a conexão com o WebService do PC-Factory.
Marcando o campo Gera XML será gerado os XML das mensagens trocadas. Se não estiver marcado 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 , numero 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;
- 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
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância das marcas e alinhamento com as diretivas definidas pelo Comitê de Integração TOTVS.
Suporte
O suporte aos recursos da Integração será de responsabilidade de todas as linhas, sendo assim as equipes de suporte dos produtos RM Conector e Backoffice Protheus estarão aptas a fazer a primeira análise e, quando necessário, repassar para a equipe mais adequada em cada caso.
Observação: Este modelo de suporte está sendo revisado pela TOTVS.
Transações/Entidades/Mensagens únicas
As seguintes transações serão trocadas entre a TOTVS e a PPI-Multitask:
Método | ID | Descrição | Origem | Destino | XSD (versões podem variar) |
Cadastros | 01 | Produto | Protheus | PC-Factory | Item_3_001.xsd |
02 | Local de Estoque | Protheus | PC-Factory | Warehouse_1_001.xsd | |
03 | Máquinas | Protheus | PC-Factory | Machine_1_000.xsd | |
04 | Recursos | Protheus | PC-Factory | Resource_1_000 | |
05 | Estrutura | Protheus | PC-Factory | ItemStructure_1_000 | |
06 | Roteiro | Protheus | PC-Factory | ItemScript_1_000 | |
07 | Ordem de Produção | Protheus | PC-Factory | ProductionOrder_2_001.xsd | |
08 | Endereço | Protheus | PC-Factory | AddressStock_1_000 | |
09 | Estoque | Protheus | PC-Factory | ItemStockLevel_1_000 | |
Processos | 09 | Motivo de Parada | PC-Factory | Protheus | StopReason_1_000 |
10 | Motivo de Refugo | PC-Factory | Protheus | WasteReason_1_000 | |
11 | Apontamento de Produção | PC-Factory | Protheus | ProductionAppointment_1_001 | |
12 | Apontamento de Parada | PC-Factory | Protheus | StopReport_1_001 | |
13 | Estoque - Request | PC-Factory | Protheus | StockLevel_2_00 | |
14 | Movimentações | PC-Factory | Protheus | MovementsInternal_1_001 | |
15 | Transferência | PC-Factory | Protheus | TransferWarehouse_1_001 |
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 programa MATA610 ou SFCA006 ou SFCA002(máquina) e ferramentas no MATA620. Os programas devem verificar se a integração está ativa e, se estiver ativa, irá efetuar 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 realizado 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-Facotry.
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. Este 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) executar MATA240. Nos casos de transferências executará o MATA261. - Consulta de Log de importação PCPA112: Esta 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 de 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 especifico ou tabela especifica não tratado 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. Estas validações ficarão a cargo dos clientes, pois cada um terá sua regra. Detalhes em: MT680VAL - Inclusão das Produções
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á enviado 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
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á usar essa função para inibir o uso. Detalhes em: PCPXFUNPPI_Rotinas_que_nao_realizam_integracao_com_o_PC_Factory
Movimentos internos. Os pontos de entrada MATI250CRG e MATI240CRG possibilitam alguma validação especifica. Estas validações ficarão a cargo dos clientes, pois cada um terá sua regra. Não pode alterar os valores dos campos que foram gerados pela mensagem. Detalhes em: http://tdn.totvs.com/display/PROT/MATI240CRG_Adicionar_informacoes_Adapter_de_movimentos_internos e http://tdn.totvs.com/pages/viewpage.action?pageId=236596803
Transferências: O ponto de entrada MI261RCV possibilita a não execução da integração. Detalhes em: http://tdn.totvs.com/pages/viewpage.action?pageId=244433266
Executar em várias filiais
Em um ambiente com várias filiais é necessário apenas um WEBSERVICE sendo executando. 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
Cadastros
Transação Item: Item_3_001.xsd
Identificador da Mensagem: Item
Versão: 3_001
Módulo Protheus: SiGAPCP
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|
BusinessContentType | CompanyId | Código da Empresa Logada
| CHAR(02) | |||
BranchId | CódigoFilial | SB1.B1_FILIAL | CHAR(02) | |||
CompanyInternalId | Empresa+Filial | EMPRESA + SB1.B1_FILIAL | ||||
Code | Código do Produto | SB1.B1_COD | CHAR(15) | |||
Name | Descrição do produto | SB1.B1_DESC | CHAR(30) | |||
InternalId | Empresa+filial+código do produto | EMPRESA + SB1.B1_FILIAL + SB1.B1_COD | ||||
ShortName | Nome curto | SB1.B1_DESC | CHAR(30) | |||
Active | Item ativo? | SB1.B1_ATIVO | CHAR(01) | |||
UnitOfMeasureCode | Unidade de Medida | SB1.B1_UM | CHAR(02) | |||
UnitOfMeasureInternalId | Empresa+filial+unidade de medida | EMPRESA + SB1.B1_FILIAL + SB1.B1_UM | ||||
StockGroupCode | Grupo de Estoque | SB1.B1_GRUPO | CHAR(04) | |||
StockGroupInternalId | Empresa+filial+grupo de estoque | EMPRESA + SB1.B1_FILIAL + SB1.B1_GRUPO | ||||
StockGroupDescription | Descrição do grupo estoque | SBM.BM_DESC | CHAR(30) | |||
StandardWarehouseCode | Local de Estoque | SB1.B1_LOCPAD | CHAR(02) | |||
StandardWarehouseInternalId | Empresa+filial+local de estoque | EMPRESA + SB1.B1_FILIAL + SB1.B1_LOCPAD | ||||
StandardWarehouseDescription | Descrição Local de Estoque | NNR.NNR_DESCRI | CHAR(40) | |||
EconomicLot | Lote econômico | SB1.B1_LE | DEC(12,2) | |||
MinimumLot | Lote mínimo | SB1.B1_LM | DEC(12,2) | |||
FamilyCode | Família | SB1.B1_FPCOD | CHAR(10) | |||
FamilyInternalId | Empresa+filial+família | EMPRESA + SB1.B1_FILIAL + SB1.B1_FPCOD | ||||
FamilyDescription | Descrição da família | SYC.YC_NOME | CHAR(40) | |||
NetWeight | Peso do Item | SB1.B1_PESO | DEC(11,4) | |||
GrossWeigh | Peso bruto | SB1.B1_PESBRU | DEC(11,4) | |||
Trail | Rastro | SB1.B1_RASTRO | CHAR(01) | |||
BinControl | Controla Endereço | SB1.B1_LOCALIZ | CHAR(01) | |||
SecondUnitOfMeasureCode | Segunda Unidade de medida | SB1.B1_SEGUM | CHAR(02) | |||
SecondUnitOfMeasureInternalId | Empresa+filial+ seg. unidade de medida | EMPRESA + SB1.B1_FILIAL + SB1.B1_SEGUM | ||||
MultiplicationFactorValue | Fator de conversão | SB1.B1_CONV | DEC(5,2) | |||
ProductType | Tipo do Item | SB1.B1_TIPO | CHAR(02) | |||
PackingQuantity | Quantidade Embalagem | SB1.B1_QE | NUM(09) | |||
CostCenterCode | Centro de Custo | SB1.B1_CC | CHAR(09) |
Notas:
- Se for um tipo que não está definido deverá gravar como GENÉRICO. Exemplo: Tipo = AMOSTRA.
Identificador da Mensagem: Warehouse
Versão: 1_001
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|
BusinessContentType | CompanyId | Código da Empresa | CHAR(02) | |||
BranchId | Código da Filial | NNR.NNR_FILIAL | CHAR(02) | |||
CompanyInternalId | Empresa+Filial | EMPRESA + NNR.NNR_FILIAL | ||||
Code | Código do Local de Estoque(armazém/almoxarifado/depósito) | NNR.NNR_CODIGO | CHAR(02) | |||
InternalId | Empresa+Filial+código local | EMPRESA + NNR.NNR_FILIAL + NNR.NNR_CODIGO | ||||
Description | Descrição do Local de Estoque(armazém/almoxarifado/depósito) | NNR.NNR_DESCRI | CHAR(20) | |||
Active | Local de Estoque Ativo? | TRUE | CHAR(01) | |||
Type | Tipo do Local de Estoque | NNR.NNR_TIPO | CHAR(01) | |||
WarehouseClassification | Classificação | NNR.NNR_INTP | CHAR(01) |
Transação Recurso PCP / Máquina SFC: Machine_1_000.xsd
Identificador da Mensagem: Machine
Versão: 1_000
Módulo Protheus: SIGAPCP, SIGASFC
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus PCP | Tabela Campo : Protheus SFC | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|---|
BusinessContentType | |||||||
Code | Código Máquina | SH1.H1_CODIGO | CYB.CYB_CDMQ | CHAR(20) | |||
Description | Descrição Máquina | SH1.H1DESCRI | CYB.CYB_DSMQ | CHAR(40) | |||
WorkCenterCode | Código Centro Trabalho | SH1.H1_CTRAB | CYB.CYB_CDCETR | CHAR(10) | |||
WorkCenterDescription | Descrição Centro Trabalho | SHB.HB_NOME | CYB.CYB_DSCETR | CHAR(40) | |||
CostCenterCode | Código Centro Custo | SH1.H1_CCUST | CYB.CYB_CDCECS | CHAR(20) | |||
ProcessorType | Tipo de Processamento | CYB.CYB_TPPC 1=Monoprocesso;2=Por Batelada; 3=Multiplos Processos;4=Manual | CHAR(01) | ||||
LaborType | Tipo MOD | CYB.CYB_TPMOD 1=Nao Reporta;2=Operador;3=Equipe | CHAR(01) | ||||
VolumeMachineQuantity | Quantidade Volume Máquina | CYB.CYB_QTVMMQ | DEC(12,4) | ||||
EfficiencyMachineValue | Eficiência Máquina | CYB.CYB_VLEFMQ | DEC(05,2) | ||||
OperatorMachineQuantity | Quantidade Operador Máquina | CYB.CYB_QTOEMQ | NUM(02) | ||||
SimultaneousActivityQuantity | Quantidade Operações Simultaneas | CYB.CYB_QTATSM | NUM(03) | ||||
IsSetup | Possui Preparação | CYB.CYB_LGSU | BOOLEAN | ||||
IsOverlapReport | Sobrepõe Apontamento | CYB.CYB_LGOVRP | BOOLEAN | ||||
ProductionAreaCode | Area de Produção | CYB.CYB_CDARPO | CHAR(10) | ||||
InitialValidateDate | Data início validade | CYB.CYB_DTBGVD | DATE | ||||
FinalValidateDate | Data fim validade | CYB.CYB_DTEDVD | DATE | ||||
ListOfResources | |||||||
ResourceType | Tipo do Recurso | CYC.CYC_TPRC 1=Operador;2=Ferramenta; 3=Equipe;4=Equipamento | CHAR(01) | ||||
ResourceCode | Código Recurso | CYC.CYC_CDRC | CHAR(20) | ||||
ResourceName | Nome Recurso | CYC.CYC_NMRC | CHAR(40) | ||||
UnitTimeType | Tipo Medida Tempo | CYC.CYC_TPUNTE 1=Horas;2=Minutos;3=Segundos | CHAR(01) | ||||
StartExpirationDate | Data Início Validade | CYC.CYC_DTBGVD | DATE | ||||
EndExpirationDate | Data Fim Validade | CYC.CYC_DTEDVD | DATE | ||||
CycleQuantity | Número Ciclos | CYC.CYC_QTCI | DEC(11,4) | ||||
IsTimeActivity | Determina tempo | CYC.CYC_LGTEAT | BOOLEAN | ||||
ListOfProductionShifts | |||||||
ProductionShiftCode | Código Modelo Turno | CYL.CYL_CDTN | CHAR(08) | ||||
ProductionShiftDescription | Descrição Modelo Turno | CYL.CYL_DSTN | CHAR(40) | ||||
BeginDate | Data Início Validade | CYL.CYL_DTVDBG | DATE | ||||
EndDate | Data Fim Validade | CYL.CYL_DTVDED | DATE |
Notas:
- No PCP as máquinas são cadastradas na rotina de recursos MATA610 e no chão de fábrica a rotina é SFCA002. A nomenclatura também muda. Quando o usa o chão de fábrica será denominada MÁQUINA. Quando usar somente o PCP será RECURSO. A rotina de parâmetros PCPA109 está preparada para mostrar 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
Mensagem | Tag | Descrição | Tabela/Campo : Protheus PCP | Tabela Campo : Protheus SFC | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|---|
BusinessContentType | |||||||
Code | Código do Recurso | SH4.H4_CODIGO | CYH.CYH_CDRC | CHAR(06) | |||
Name | Nome do Recurso | SH4.H4_DESCRI | CYH.CYH_NMRC | CHAR(40) | |||
Type | Tipo 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_CDARPO | CHAR(10) | ||||
ProductionAreaDescription | Descrição área de produção | CYA.CYA_DSARPO | CHAR(40) | ||||
ItemComponentType | |||||||
ProductionShiftNumber | Turno | SH4.H4_TURNO | CYH.CYH_NRTN | CHAR(05) | |||
LaborCode | MOB | Fixo '1' | CYH.CYH_CDMOD | CHAR(08) | |||
StartExpirationDate | Data validade inicial | Data Atual | CYH.CYH_DTVDBG | DATE | |||
EndExpirationDate | Data validade final | CYH.CYH_DTVDED | DATE | ||||
UnitCycleQuantity | Unidades Ciclos | CYH.CYH_QTUNCI | NUM(07) | ||||
ToolCode | Ferramenta | CYH.CYH_CDMPRC | CHAR(15) | ||||
ToolDescription | Descrição Ferramenta | CYH.CYH_DSMPRC | CHAR(40) |
Notas:
- 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=Mes;A=Ano
Identificador da Mensagem: ItemStructure
Versão: 1_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|
BusinessContentType | CompanyId | Código da Empresa | CHAR(02) | |||
CompanyInternalId | Empresa+Filial | EMPRESA + SG1.G1_FILIAL | ||||
ItemInternalId | Empresa+Filial+código item pai | EMPRESA + SG1.G1_FILIAL + SG1.G1_COD | ||||
ItemCode | Código item pai | SG1.G1_COD | CHAR(15) | |||
ItemAmount | Quantidade base do item pai | SB1.B1_QB | NUM(07) | |||
ItemComponentType | ||||||
ItemSequence | Sequencia do componente | SG1.G1_TRT | NUM(05) | |||
ItemComponentCode | Código item componente | SG1.G1_COMP | CHAR(15) | |||
ItemComponentInternalId | Internal Id do Item Componente | EMPRESA + SG1.G1_FILIAL + SG1.G1_COMP | ||||
InitialDate | Data validade inicial | SG1.G1_INI | DATE | |||
FinalDate | Data validade final | SG1.G1_FIM | DATE | |||
IsGhostMaterial | Indica se é fantasma | SB1.B1_FANTASM | CHAR(01) | |||
ItemComponentAmount | Quantidade do item componente | SG1.G1_QUANT | DEC(12,6) | |||
LossFactor | Fator de perda | SG1.G1_PERDA | DEC(05,2) | |||
ListOfScript | ||||||
Scriptcode | Código do Roteiro | SGF.GF_ROTEIRO | CHAR(02) | |||
ScriptAlternative | Alternativo do Roteiro | -- | ||||
ActivityIntenalID | ID Operação | -- | ||||
ActivityCode | Código da Operação | SGF.GF_OPERAC | CHAR(02) | |||
ActivityComponentSequence | Sequencia do componente na operação | SGF.GF_TRT | NUM(03) |
Identificador da Mensagem: ItemScript
Versão: 1_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|
BusinessContentType | ItemCode | Código item | SG2.G2_PRODUTO | CHAR(15) | ||
ItemDescription | Descrição do item | SB1.B1_DESC | CHAR(40) | |||
ItemInternalId | Empresa|Filial|Item | EMPRESA + SG2.G2_FILIAL + SG2.G2_PRODUTO | ||||
ScriptCode | Código do Roteiro | SG2.G2_CODIGO | CHAR(02) | |||
ScriptDescription | Descrição Roteiro | -- | CHAR(40) | |||
ScriptAlternative | Roteiro Alternativo | -- | CHAR(02) | |||
ListOfActivity | ||||||
ActivityInternalID | ID Operação | SG2.R_E_C_N_O_ | NUM(05) | |||
ActivityCode | Código da Operação | SG2.G2_OPERAC | CHAR(02) | |||
ActivityDescription | Descrição Operação | SG2.G2_DESCRI | CHAR(60) | |||
MachineCode | Código da Máquina | SG2.G2_RECURSO | CHAR(06) | |||
ToolCode | Código Ferramenta | SG2.G2_FERRAM | CHAR(06) | |||
ActivityType | Tipo Operação | 1 = Executa operação; 2 = Não executa. | CHAR(01) | |||
WorkCenterCode | Código Centro Trabalho | SG2.G2_CTRAB | CHAR(06) | |||
WorkCenterInternalId | Id Centro de Trabalho | EMPRESA + SG2.G2_FILIAL + SG2.G2_CTRAB | ||||
UnitItemNumber | Lote padrão | SG2.G2_LOTEPAD | NUM(06) | |||
TimeResource | Tempo Recurso | 0 | ||||
TimeMachine | Tempo Máquina | SG2.G2_TEMPAD | DEC(05,2) | |||
TimeSetup | Tempo Preparação | SG2.G2_SETUP | DEC(05,2) | |||
UnitTimeType | Tipo Unidade Tempo | 1 = Horas;2=Minutos;3=Segundos;4=Dias | ||||
ScriptAlternative | Alternativo | SG2.G2_ROTALT | CHAR(02) | |||
InitialDate | Data Inicial | SG2.G2_DTINI | DATE | |||
FinalDate | Data Final | SG2.G2_DTFIM | DATE | |||
PercentageScrapValue | % Refugo | -- | ||||
PercentageValue | Proporção | -- | ||||
ResourceQuantity | Quantidade Recurso | -- | ||||
Notas:
- 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á re-enviar a mensagem de estrutura, ItemStructure.
Identificador da Mensagem: AdressStock
Versão: 1_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|
BusinessContentType | WarehouseCode | Armazém/Depósito | SBE.BE_LOCAL | CHAR(02) | ||
LocationCode | Endereço/Localização | SBE.BE_LOCALIZ | CHAR(15) | |||
AdressInternalId | Chave completa endereço | EMPRESA + SBE.BE_FILIAL + SBE.BE_LOCAL + SBE.BE_LOCALIZ | ||||
AdressStockDescription | Descrição do endereço | SBE.BE_DESCRIC | CHAR(30) |
Identificador da Mensagem: ItemStockLevel
Versão: 1_000
Módulo Protheus: Vários
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|
BusinessContentType | ItemCode | Código do produto | SB2.B2_COD | CHAR(15) | ||
ItemDescription | Descrição do item | SB1.B1_DESC | CHAR(30) | |||
ListOfStock |
| |||||
ReferenceCode | Referência | -- | ||||
WarehouseCode | Depósito/Local de estoqe/Armazem | SB2.B2_LOCAL | CHAR(02) | |||
LotCode | Número do Lote | SB8.B8_LOTECTL | CHAR(10) | |||
SubLotCode | Sub-Lote | SB8.B8_NUMLOTE | CHAR(06) | |||
NumberSeries | Número de Série | SBF.BF_NUMSERI | CHAR(20) | |||
AddressCode | Endereço/Localização | SBF.BF_LOCALIZ | CHAR(15) | |||
LotDueDate | Data de Validade | SB8.B8_DTVALID | DATE | |||
CurrentStockAmount | Saldo de estoque | SB2.B2_QATU SB8.B8_SALDO SBF.BF_QUANT | DEC(12,2) | |||
BookedStockAmount | Quantidade Reservada | SB2.B2_RESERVA SB8.B8_EMPENHO SBF.BF_EMPENHO | DEC(12,2) | |||
AvailableStockAmount | Saldo 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) | ||||
InputOutput | Entrada ou Saída | 1 = Entrada ou 2 = Saída | CHAR(01) |
Notas:
- 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 é registrado na SD3.D3_OBSERVA = 'TOTVSMES'. - O campo QuantityUpdated corresponde a quantidade atualizada, ou seja, a quantidade que esta 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.
Identificador da Mensagem: WasteReason
Versão: 1_000
Módulo Protheus: SIGAPCP/SIGASFC
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus PCP | Tabela Campo : Protheus SFC | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|---|
BusinessContentType | Code | Código Refugo | SX5.X5_CHAVE | CYO.CYO_CDRF | CHAR(08) | ||
Description | Descrição do Refugo | X5_DESCRI X5_DESCSPA X5_DESCENG | CYO.CYO_DSRF | CHAR(40) | |||
IsRework | Retrabalho |
| CYO.CYO_LGRT | BOOLEAN | |||
IsScrapMaterial | Refugo Material | SBE.BE_DESCRIC | CYO.CYO_LGRFMP | BOOLEAN |
Notas:
- Quando não estiver integrado com o chão de fábrica, MV_INTSFC igual a '0' o motivo de refugo é cadastrado a 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 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 SBC.BC_MOTIVO.
Quando usa o SIGASFC validar contra o CYO.CYO_CDRF, CY0.CY0_CDRF e SBC.BC_MOTIVO
Identificador da Mensagem: StopReason
Versão: 1_000
Módulo Protheus: SIGAPCP/SIGASFC
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo : Protheus PCP | Tabela Campo : Protheus SFC | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|---|
BusinessContentType | Code | Código Motivo Parada | SX5.X5_CHAVE | CYN.CYN_CDSP | CHAR(10) | ||
Description | Descrição Parada | X5_DESCRI X5_DESCSPA X5_DESCENG | CYN.CYN_DSSP | CHAR(40) | |||
IsEfficiency | Altera Eficiência | -- | -- | ||||
IsEmailEquipment | E-mail Planejador | -- | -- | ||||
IsServiceRequest | Emite Solicitação Serviço | -- | -- | ||||
IsSetup | Parada Setup | -- | -- |
Notas:
- 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_003.xsd
Identificador da Mensagem: ProductionOrder
Versão: 2_003
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mesagem | Tag | Descrição | Tabela/Campo | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|
BusinessContentType | Number | Número Ordem Produção | SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN | CHAR(20) | ||
ProductionOrderUniqueID | Empresa+Filial+Ordem Produção | EMPRESA + SC2.C2_FILIAL + SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN | CHAR(30) | |||
ItemCode | Código Item | SC2.C2_PRODUTO | CHAR(15) | |||
ItemDescription | Descrição Item | SB1.B1_DESC | CHAR(40) | |||
Type | Tipo da Ordem | 1= Interna; 2=Externa; 3=Interna/Externa; 4=Retrabalho; 5=Conserto; 6=Manutenção; 7=Ativo Fixo; 8=Ferramentaria; 9=Reaproveitamento
| CHAR(01) | |||
Quantity | Quantidade | SC2.C2_QUANT | DEC(12,2) | |||
ReportQuantity | Quantidade Reportada | SC2.C2QUJE | DEC(12,2) | |||
UnitOfMeasureCode | Unidade Medida | SC2.C2_UM | CHAR(02) | |||
RequestOrderCode | Código Pedido Ordem Produção | SC2.C2_PEDIDO | CHAR(06) | |||
StatusOrderType | Estado da ordem | Prevista/Aberta = 1 Iniciada = 6 Encerrada Parcial/Total = 7 Ociosa = 9 | CHAR(01) | |||
WarehouseCode | Código Depósito | SC2.C2_LOCAL | CHAR(02) | |||
EndOrderDateTime | Data Fim Ordem Produção CP | SC2.C2_DATPRF | DATE | |||
StartOrderDateTime | Data Início Ordem Produção CP | SC2.C2_DATPRI | DATE | |||
AbbreviationProviderName | Nome Cliente | SC5.C5_CLIENTE ( SA1.A1_NOME) | CHAR(30) | |||
ScriptCode | Código Roteiro | SC2.C2_ROTEIRO | CHAR(02) | |||
ListOfActivityOrders | ||||||
ProductionOrderNumber | Ordem de Produção | SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN | CHAR(20) | |||
ActivityID | ID do Registro | RECNO (SG2,SHY ou SH8) | CHAR(10) | |||
ActivityCode | Código Operação | SG2.G2_OPERAC SHY.HY_OPERAC SH8.H8_OPER | CHAR(02) | |||
ActivityDescription | Descrição Operação | SG2.G2_DESCRI | CHAR(40) | |||
Split | Desdobramento da operação | SH8.H8_DESDOBR | CHAR(04) | |||
ItemCode | Código do item | SC2.C2_PRODUTO | CHAR(15) | |||
ItemDescription | Descrição do item | SB1.B1_DESC | CHAR(40) | |||
ActivityType | Tipo Operação | 1 - Aponta ; 2-Não Aponta | CHAR(01) | |||
WorkCenterCode | Código Centro de Trabalho | SG2.G2_CTRAB SHY.HY_CTRAB SH8.H8_CTRAB | CHAR(06) | |||
WorkCenterDescription | Descrição Centro de Trabalho | SHB.HB_NOME | CHAR(30) | |||
UnitTimeType | Tipo Unidade Tempo | 1 - Horas; 2 - Minutos; 3- Segundos; 4 - Dias | CHAR(01) | |||
TimeResource | Tempo Recurso (Tempo padrão para um lote) | SG2.G2_TEMPAD | DEC(05,2) | |||
TimeMachine | Tempo Máquina (Tempo para fazer toda a ordem) | SG2.G2_TEMPAD * SC2.C2_QUANT SHY.HY_TEMPO SH8.H8_HRINI - SH8.H8_HRFIM | DEC(14,4) | |||
TimeSetup | Tempo Preparação | SG2.G2_SETUP SHY.HY_TEMPOS SH8.H8_SETUP | DEC(15,4) | |||
ScriptCode | Código Roteiro | SG2.G2_CODIGO SHY.HY_ROTEIRO SH8.H8_ROTEIRO | CHAR(02) | |||
LaborCode | Código Mão de Obra Direta | MOD+CC | CHAR(08) | |||
UnitItemNumber | Lote Padrão | SG2.G2_LOTEPAD | NUM(05) | |||
IsActivityEnd | Última Operação | Na última operação passar TRUE. Nas demais FALSE. | BOOLEAN | |||
MachineCode | Código Máquina | SG2_RECURSO SHY_RECURSO H8_RECURSO | CHAR(06) | |||
StartPlanDateTime | Data/Hora Início Programação | SHY.HY_HORAINI SC2.C2_DATPRI SH8.H8_DTINI | DATE | |||
EndPlanDateTime | Data/Hora Fim Programação | SHY.HY_HORAFIM SC2.C2_DATPRF SH8.H8_DTFIM | DATE | |||
ProductionQuantity | Quantidade a produzir na operação | SHY.HY_QUANT SH8.H8_QUANT SC2.C2_QUANT | DEC(12,2) | |||
UnitActivityCode | Unidade de medida | SB1.B1_UM | CHAR(02) | |||
SecondUnitActivityCode | Segunda unidade de medida na operação | -- | ||||
SecondUnitActivityFactor | Fator de conversão para segunda un. na operação | -- | ||||
ListOfMaterialOrders | ||||||
ProductionOrderNumber | Ordem de produção | SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN | CHAR(20) | |||
MaterialID | ID do registro da reserva | SD4.R_E_C_N_O_ | CHAR(10) | |||
MaterialCode | Código Item Reserva | SD4.D4_COD | CHAR(15) | |||
MaterialDescription | Descrição do Item | SB1.B1_DESC | CHAR(40) | |||
ScriptCode | Código Roteiro | SD4.D4_ROTEIRO | CHAR(02) | |||
ActivityCode | Código Operação | SD4.D4_OPERAC | CHAR(02) | |||
WarehouseCode | Código Depósito | SD4.D4_LOCAL | CHAR(02) | |||
MaterialDate | Data Reserva | SD4.D4_DATA | DATE | |||
MaterialQuantity | Quantidade Reserva | SD4.D4_QUANT | DEC(12,2) | |||
LotCode | Lote | SD4.D4_LOTECTL | CHAR(10) | |||
PertMaterialNumber | Sequencia do item | SD4.D4_TRT | CHAR(03) | |||
RequestType | Tipo da Requisição | SB1.B1_APROPRI | CHAR(01) | |||
ListOfAllocatedMaterial
| ||||||
WarehouseCode | Código Depósito | SD4.D4_LOCAL | CHAR(02) | |||
LotCode | Código Lote | SD4.D4_LOTECTL SDC.DC_LOTECTL | CHAR(10) | |||
LocationCode | Localização/Endereço | SDC.DC_LOCALIZ | CHAR(15) | |||
ActivityCode | Código Operação | SD4.D4_OPERAC | CHAR(02) | |||
ScriptCode | Código Roteiro | SD4.D4_ROTEIRO | CHAR(02) | |||
AllocationQuantity | Quantidade Alocada | SD4.D4_QUANT SDC.DC_QUANT | DEC(12,2) | |||
AllocationType | Tipo Alocação | 1 = Soma;2=Diminui;3=Valor Absoluto | CHAR(01) | |||
SubLoteCode | Sub Lote | SD4.D4_NUMLOTE SDC.DC_NUMLOTE | CHAR(06) | |||
NumberSeries | Número de Serie | SDC.DC_NUMSERI | CHAR(20) | |||
LotDueDate | Data de Validade | SD4.D4_DTVALID | DATE | |||
ListOfQuotaActivity | ||||||
ProductionOrderNumber | Número Ordem Produção | CY9.CY9_NRORPO | CHAR(20) | |||
ControlType | Seleção Split | -- | ||||
ActivityID | ID Operação | CY9.CY9_CDAT | CHAR(10) | |||
ItemCode | Código do iten | CYY.CYY_CDAC | CHAR(15) | |||
ItemDescription | Descrição do item | CYY.CYY_DSAC | CHAR(40) | |||
StartActivityDateTime | Data/Hora Início Atividade | CYY.CYY_DTBGAT / CYY.CYY_HRBGAT | DATETIME | |||
EndActivityDateTime | Data/Hora Fim Atividade | CYY.CYY_DTEDAT / CYY.CYY_HREDAT | DATETIME | |||
ApprovedQuantity | Quantidade Aprovada | CYY.CYY_QTATAP | DEC(13,4) | |||
ScrapQuantity | Quantidade Refugada | CYY.CYY_QTATRF | DEC(13,4) | |||
MachineCode | Código Máquina | CYY.CYY_CDMQ | CHAR(20) | |||
MachineDescription | Descrição da Máquina | CYY.CYY_DSMQ | CHAR(40) | |||
ActivityQuantity | Quantidade Prevista | CYY.CYY_QTAT | DEC(12,4) | |||
StandardSetup | Tempo Padrão Preparação | CYY.CYY_QTPASU | NUM(10) | |||
StandardActivity | Tempo Padrão Operação | CYY.CYY_QTPAAT | NUM(10) | |||
StandardPostprocessing | Tempo Padrão Pós_processo | CYY.CYY_QTPAPP | NUM(10) | |||
StandardMachine | Tempo Padrão Máquina | CYY.CYY_QTPAMQ | NUM(10) | |||
StandardOperator | Tempo Padrão MOD | CYY.CYY_QTPAOE | NUM(10) | |||
UsedCapacity | Capacidade Utilizada | CYY.CYY_QTVMAT | DEC(12,4) | |||
ActivityTimeQuantity | Hora Disponível Atividade | CYY.CYY_HRDI | CHAR(08) | |||
ReportQuantity | Quantidade Reportada | CYY.CYY_QTATRP | DEC(13,4) | |||
ReworkQuantity | Quantidade Retrabalhada | CYY.CYY_QTATRT | DEC(12,4) | |||
StartSetupDateTime | Data/Hora Início Preparação | CYY.CYY_DTBGSU / CYY.CYY_HRBGSU | DATETIME | |||
EndSetupDateTime | Data/Hora Fim Preparação | CYY.CYY_DTEDSU / CYY.CYY_HREDSU | DATETIME | |||
TimeSetup | Tempo Preparação | CY9.CY9_QTTESU | NUM(10) | |||
TimeMachine | Tempo Máquina | CY9.CY9_QTTEMQ | NUM(10) | |||
TimeOperator | Tempo MOD | CY9.CY9_QTTERC | NUM(10) | |||
TimePostprocessing | Tempo Pós Processo | CY9.CY9_QTTEPP | NUM(10) | |||
QuotaActivityID | ID Split | CYY.CYY_IDATQO | CHAR(05) | |||
WorkCenterCode | Centro de Trabalho | CY9.CY9_CDCETR | CHAR(10) | |||
ReportedSplit | Split Reportado | CYY.CYY_LGQORP | BOOELAN | |||
StatusActivityType | Estado Operação | CYY.CYY_TPSTAT | CHAR(01) | |||
ListOfQuotaActivityTools | ||||||
ToolCode | Ferramenta | CYY.CYY_CDFE | CHAR(20) | |||
ToolQuantity | Quantidade Ferramenta | CYY.CYY_QTFE | NUM(03) |
Notas:
- 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 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 se 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á linkar 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 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. - 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
Processos
Transação Apontamento de Produção: ProductionAppointment_1_001.xsd
Identificador da Mensagem: ProductionAppointment
Versão: 1_001
Módulo Protheus: SIGAPCP/SIGASFC
Tipo de Envio: Síncrona
Obs.: Esta mensagem será gerada pelo PC-Factory e enviado ao Protheus.
Mensagem | Tag | Descrição | Tabela/Campo Protheus PCP | Tabela Campo Protheus SFC | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|---|
BusinessContentType | MachineCode | Máquina | SH6.H6_RECURSO | CYV.CYV_CDMQ | CHAR(06) | ||
ProductionOrderNumber | Ordem de Produção | SH6.H6_OP | CYV.CYV_NRORPO | CHAR(20) | |||
ActivityCode | Operação | SH6.H6_OPERAC | CYV.CYV_CDAT | CHAR(02) | |||
Split | Split | SH6.H6_DESDOBR | CYV.CYV_IDATQO | CHAR(04) | |||
ActivityID | ID Operação | -- | -- | ||||
ItemCode | Produto | SH6.H6_PRODUTO | CYV.CYV_CDACRP | CHAR(15) | |||
ApprovedQuantity | Quantidade Aprovada | SH6.H6_QTDPROD | CYV.CYV_QTATAP | DEC(11,2) | |||
ScrapQuantity | Quantidade Refugada | SH6.H6_QTDPERD | CYV.CYV_QTATRF | DEC(11,2) | |||
ReworkQuantity | Quantidade Retrabalhada | -- | -- | ||||
StartSetupDateTime | Data/Hora Início Preparação | -- | CYV_DTBGSU CYV_HRBGSU | DATETIME | |||
EndSetupDateTime | Data/Hora Fim Preparação | -- | CYV_DTEDSU CYV_HREDSU | DATETIME | |||
SetupCode | Código Preparação | -- | CYV_CDSU | CHAR(10) | |||
OpTimeInt | Tempo Operação | -- | CYV.CYV_QTTERP | NUM(10) | |||
ProductionShiftCode | Código Modelo Turno | -- | CYV.CYV_CDTN | CHAR(08) | |||
ProductionShiftNumber | Número Turno | -- | CYV.CYV_NRTN | CHAR(05) | |||
DocumentCode | Documento | -- | CYV.CYV_NRDO | CHAR(20) | |||
DocumentSeries | Série Documento | -- | CYV.CYV_NRSR | CHAR(05) | |||
StartReportDateTime | Data/Hora Início Reporte | SH6.H6_DATAINI SH6.H6_HORAINI | CYV.CYV_DTRPBG CYV.CYV_HRRPBG | DATETIME | |||
EndReportDateTime | Data/Hora Fim Reporte | SH6.H6_DATAFIN SH6.H6_HORAFIN | CYV.CYV_DTRPED CYV.CYV_HRRPED | DATETIME | |||
ReversedReport | Estorno do Apontamento | TRUE ou FALSE | TRUE ou FALSE | BOOLEAN | |||
ReversalDate | Data do estorno | -- | CYV.CYV_DTEO | DATE | |||
ReportDateTime | Data/Hora Reporte | SH6.H6_DTAPONT | CYV.CYV_DTRP CYV.CYV_HRRP | DATETIME | |||
WarehouseCode | Código Depósito | SH6.H6_LOCAL | CYV.CYV_CDDP | CHAR(02) | |||
LotCode | Lote/Série | SH6.H6_LOTECTL | CYV.CYV_CDLOSR | CHAR(10) | |||
LotDueDate | Data Validade Lote | SH6.H6_DTVALID | CYV.CYV_DTVDLO | DATE | |||
IntegrationReport | Registro a ser estornado | CHAR(10) | |||||
CloseOperation | Encerra Operação | SH6.H6_PT | CYV.CYV_LGEDRP | BOOLEAN | |||
LocationCode | Localização | -- | CYV.CYV_CDLC | CHAR(20) | |||
WasteAppointment | |||||||
WasteCode | Código Refugo | SBC.BC_MOTIVO | CY0.CY0_CDRF | CHAR(02) | |||
WasteDescription | Descrição Refugo | SBC.BC_DESCRI | CY0.CY0_DSRF | CHAR(40) | |||
ScrapQuantity | Quantidade Refugada | SBC.BC_QUANT | CY0.CY0_QTRF | DEC(11,2) | |||
ResourceAppointment | |||||||
OperatorCode | Código Operador | -- | CYW.CYW_CDOE | CHAR(20) | |||
StartDateTime | Data/Hora Início | -- | CYW.CYW_DTBGRP CYW.CYW_HRBGRP | DATETIME | |||
EndDateTime | Data/Hora Fim | -- | CYW.CYW_DTEDRP CYW.CYW_HREDRP | DATETIME | |||
MOBTime | Tempo Mão de Obra Direta | -- | CYW.CYW_QTTEOE | NUM(10) | |||
ExtraTime | Tempo Extra | -- | CYW.CYW_QTTEEX | NUM(10) | |||
UtilTime | Tempo Útil | -- | CYW.CYW_QTTEUT | NUM(10) | |||
ProductionShiftCode | Código Modelo Turno | -- | CYW.CYW_CDTN | CHAR(08) | |||
ProductionShiftNumber | Número Turno | -- | CYW.CYW_NRTN | CHAR(05) | |||
SupplyOrder | |||||||
ProductionOrderNumber | Número Ordem Produção | SD3.D3_OP | CZP.CZP_NRORPO | CHAR(20) | |||
MaterialCode | Código Item Reserva | SD3.D3_COD | CZP.CZP_CDMT | CHAR(15) | |||
UsedQuantity | Quantidade Utilizada | SD3.D3_QUANT | CZP.CZP_QTRPPO | DEC(12,2) | |||
WarehouseCode | Código Depósito | SD3.D3_LOCAL | CZP.CZP_CDDP | CHAR(02) | |||
LocationCode | Localização | SD3.D3_LOCALIZ | CZP.CZP_CDLC | CHAR(15) | |||
LotCode | Lote/Série | SD3.D3_LOTECTL ou SD3.D3_NUMSERI | CZP.CZP_CDLO | CHAR(20) | |||
ActivityCode | Código Operação | -- | CZP.CZP_CDAT | CHAR(02) | |||
ScriptCode | Roteiro | -- | CZP.CZP_CDRT | CHAR(02) | |||
ReportToolActivity | |||||||
ToolCode | Código Ferramenta | -- | CZ0.CZ0_IDFE | CHAR(20) |
Notas:
- 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 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 inicio/fim (StartReportDateTime e EndReportDateTime) podem se gerados sem valor (em branco)
Encerrar a ORDEM: Apontamento de quantidade na última operação com a tag CloseOperation = TRUE. 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. 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 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 peços 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.
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. - Deverá considerar o tipo de movimento do cadastro de parâmetros PCPA109, folder MOVIMENTAÇÕES. Se for Entrada usar o campo OE_VAR1. Se for Saída usar o campo OE_VAR2. Quando usa o chão de fábrica, deverá usar as movimentações parametrizadas no SIGASFC (MV_SFRQMB e MV_TMPAD)
- No PC-Factory, não é utilizado 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 ono 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
Obs.: Esta mensagem será gerada pelo PC-Factory e enviado ao Protheus.
Mensagem | Tag | Descrição | Tabela/Campo Protheus PCP | Tabela/Campo Protheus SFC | Tipo | Tabela/Campo : PC-Factory | Tipo |
---|---|---|---|---|---|---|---|
MachineCode | Código Máquina | SH6.H6_RECURSO | CYX.CYX_CDMQ | ||||
MachineDescription | Descrição Maquina | ||||||
StopReasonCode | Código Motivo Parada | SH6.H6_MOTIVO | CYX.CYX_CDSP | ||||
StopReasonDescription | Descrição Motivo Parada | SX5.X5_DESCRI * | CYX.CYX_DSSP | ||||
StartDateTime | Data/Hora Início | SH6.H6_DATAINI SH6.H6_HORAINI | CYX.CYX_DTBGSP CYX_HRBGSP | ||||
EndDateTime | Data/Hora Fim | SH6.H6_DATAFIN SH6.H6_HORAFIN | CYX.CYX_DTEDSP CYX.CYX_HREDSP | ||||
OperatorCode | Código Operador | SH6.H6_OPERADO | CYX.CYX_CDOE | ||||
ReportDateTime | Data/Hora Reporte | SH6.H6_DTAPONT | CYX.CYX_DTRP | ||||
ToolCode | Código Ferramenta | -- | CYX.CYX_CDFEPO | ||||
ProductionTeamCode | Código Equipe | -- | CYX.CYX_CDGROE | ||||
StopType | Tipo Parada(1=Não Programada;2=Programada) | -- | CYX.CYX_TPSP | ||||
ReportSequence | ID PC-Factory | -- | -- |
Notas:
- 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 Inicio 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 o 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 Inicio 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 , onde são passados os parâmetros para o consulta do saldo, e o Return, que contem 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
Mensagem | Tag | Descrição | Tipo |
---|---|---|---|
ListOfRequest | ItemInternalId | Código do produto | CHAR(15) |
ReferenceCode | Referência | CHAR(20) | |
WarehouseInternalId | Código do depósito/local de estoque/Armazém | CHAR(10) | |
LotNumber | Lote | CHAR(10) | |
SubLotCode | SubLote | CHAR(10) | |
SerialNumber | Número de Série | CHAR(20) | |
Address | Localização | CHAR(15) | |
LotExpirationDate | Data de Validade | DATE |
Notas
- 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 estes campos sem o código do produto deve retornar mensagem de erro. - O Request poderá ser uma lista de solicitação.
Return
Mensagem | Tag | Descrição | Tabela/Campo | Tipo |
---|---|---|---|---|
ReturnContentType | ClosingStockDate | Data fechamento estoque | -- | |
ListOfReturnItem | CompanyId | Empresa | ||
BranchId | Filial | |||
CompanyInternalId | Empresa + Filial | |||
ItemInternalId | Código do produto | SB2.B2_COD | CHAR(15) | |
ReferenceCode | Referencia | -- | ||
ListOfStockBalance | ||||
WarehouseInternalId | Local de Estoque(Armazém/Depósito) | SB2.B2_LOCAL | CHAR(10) | |
LotNumber | Número do Lote | SB8.B8_LOTECTL | CHAR(10) | |
SubLotCode | Sub Lote | SB8.B8_NUMLOTE | CHAR(10) | |
LotExpirationDate | Data de validade | SB8.B8_DTVALID | DATE | |
SerialNumber | Número de série | SBF.BF_NUMSERI | CHAR(20) | |
Address | Localização | SBF.BF_LOCALIZ | CHAR(15) | |
CurrentStockAmount | Saldo do Produto em quantidade | SB2.B2_QATU SB8.B8_SALDO SBF.BF_QUANT | DEC(17,4) | |
BookedStockAmount | Quantidade reservada em Estoque | SB2.B2_RESERVA SB8.B8_EMPENHO SBF.BF_EMPENHO | DEC(17,4) | |
AvailableStockAmount | Saldo 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) | |
UnitItemCost | Custo unitário do Produto | -- | ||
AverageUnitItemCost | Custo médio do Produto | -- | ||
ValueOfCurrentStockAmount | Saldo atual do estoque do produto em valor | -- |
Identificador da Mensagem: MovementsInternal
Versão: 1_001
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo | Tipo |
---|---|---|---|---|
BusinessContentType | CompanyId | Código da empresa | ||
BranchId | Filial | |||
CompanyInternalId | InternalId da chave completa da empresa | |||
InternalId | InternalId da movimentação. | |||
TypeMovementCode | Código do Tipo de Movimento interno | SD3.D3_TM | CHAR(03) | |
EmissionDate | Data de Emissão | SD3.D3_EMISSAO | DATE | |
ItemCode | Código do Produto | SD3.D3_COD | CHAR(15) | |
UnitOfMeasureCode | Unidade de Medida | SD3.D3_UM | CHAR(02) | |
Quantity | Quantidade | SD3.D3_QUANT | DEC(12,2) | |
WarehouseCode | Código do Armazém | SD3.D3_LOCAL | CHAR(02) | |
LotNumber | Lote | SD3.D3_LOTECTL | CHAR(10) | |
SubLotNumber | SubLote | SD3.D3_NUMLOTE | CHAR(06) | |
LotExpirationDate | Data Validade do Lote | SD3.D3_DTVALID | DATE | |
Address | Endereço | SD3.D3_LOCALIZ | CHAR(15) | |
NumberSeries | NumberSeries | SD3.D3_NUMSERI | CHAR(20) | |
InputOrOutput | Movimento de Entrada ou Saida | E=Entrada / S = Saída | CHAR(01) | |
ReferenceCode | Referência | -- | ||
ScriptCode | Roteiro | SD4.D4_ROTEIRO | CHAR(02) | |
ActivityCode | Operação | SD4.D4_OPERAC | CHAR(02) | |
ProductionOrderNumber | Ordem de Produção/Documento | SD3.D3_OP e SD3.D3_DOC | CHAR(13) | |
FatherItemCode | Item Pai | -- |
Notas
- 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ções deverá buscar o tipo do movimento do cadastro PCPA109, folder MOVIMENTACOES. 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.
Identificador da Mensagem: TransferWarehouse
Versão: 1_003
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem | Tag | Descrição | Tabela/Campo | Tipo |
---|---|---|---|---|
BusinessContentType | CompanyId | Empresa | ||
BranchId | Filial | |||
CompanyInternalId | InternalId da chave completa da empresa | |||
InternalId | InternalId da transferência | |||
Number | Numero da Movimentação | SD3.D3_NUMSEQ | CHAR(06) | |
RegisterDateTime | Data de Emissão da solicitação | SD3.D3_EMISSAO | DATE | |
TransferWarehouseType | ||||
InternalId | InternalId da transferência | |||
EmissionDate | Data de Emissão | SD3.D3_EMISSAO | DATE | |
ItemCodeFrom | Item/Produto Origem | SD3.D3_COD | CHAR(15) | |
ItemCodeTo | Item/Produto Destino | SD3.D3_COD | CHAR(15) | |
UnitOfMeasureFrom | Unidade de Medida Origem | SD3.D3_UM | CHAR(02) | |
UnitOfMeasureTo | Unidade de Medida Destino | SD3.D3_UM | CHAR(02) | |
Quantity | Quantidade | SD3.D3_QUANT | DEC(12,2) | |
WarehouseCodeFrom | Código do Armazém de Origem | SD3.D3_LOCAL | CHAR(02) | |
WarehouseCodeTo | Código do Armazém Destino | SD3.D3_LOCAL | CHAR(02) | |
LotNumberFrom | Número do Lote de Origem | SD3.D3_LOTECTL | CHAR(10) | |
LotNumberTo | Número do Lote de Destino | SD3.D3_LOTECTL | CHAR(10) | |
SubLotNumber | Número do SubLote | SD3.D3_NUMLOTE | CHAR(06) | |
LotExpirationDateFrom | Data de validade do Lote Origem | SD3.D3_DTVALID | DATE | |
LotExpirationDateTo | Data de validade do Lote Destino | SD3.D3_DTVALID | DATE | |
AddressFrom | Endereço Origem | SD3.D3_LOCALIZ | CHAR(15) | |
AddressTo | Endereço Destino | SD3.D3_LOCALIZ | CHAR(15) | |
NumberSeries | Número de série | SD3.D3_NUMSERI | CHAR(20) |
Notas
- 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
EmissionDate
Limitações / Restrições Gerais
A integração contempla apenas o sistemas PCP Protheus. O módulo Chão de Fábrica SIGASCF e geração de ordens pelo APS não estão integrados. Cadastramentos via Fluig ( WorkFlow) ou rotinas não descritas nesse documento também não estão contemplados nessa versão.
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. Nestes 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.
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 , tstar 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.