PCP PROTHEUS 11.8, 12.1.9
PC-FACTORY (PPI MULTITASK)
O objetivo da Integração PC Factory (software MES da empresa PPI Multitask) X PCP 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.
Permite a integração entre o módulo PCP do Protheus com o MES PC-Factory da PPI-Multitask, que tem como objetivo controlar os apontamentos das ordens de produções. O PCP 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:
Observação: A integração contempla apenas o sistemas PCP Protheus. O módulo Chão de Fábrica SIGASCF, a rotina do cálculo MRP e geração de ordens pelo APS não estão integrados.
Para a versão 12 do Protheus deve-se aplicar o pacote de atualizações a partir da versão 12.1.9.
Também é possível utilizar na versão 11.8. 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=*******
A integração PCP Protheus x PC-Factory PPI-Multitask é ativada por intermédio dos seguintes passos:
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:
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 e ordem de produção) terá um folder. Para cada folder será possível montar filtros. Estes 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 PCP Protheus para o PC-Factory PPI-Multitask ocorre nas seguintes transações:
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.
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.
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 | PPI-Multitask | Item_3_001.xsd |
02 | Local de Estoque | Protheus | PPI-Multitask | Warehouse_1_001.xsd | |
03 | Recurso | Protheus | PPI-Multitask | Machine_1_000.xsd | |
04 | Ordem de Produção | Protheus | PPI-Multitask | ProductionOrder_2_001.xsd | |
Processos | 05 | Apontamento de Produção | PPI-Multitask | Protheus | ProductionAppointment_1_001.xsd |
06 | Apontamento de Parada | PPI-Multitask | Protheus | StopReport_1_001.xsd |
A integração ocorrerá no momento de cadastro,alteração ou exclusão de cada transação.
Fluxo das informações das transações:
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
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
Executar em várias filiais
Em um ambiente com várias filiais necessita apenas de um WEBSERVICE executando. O que vai indicar a filial onde será 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
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 Padrão | Descrição | Tabela/Campo |
---|---|---|
CompanyId | Código da Empresa Logada
| |
BranchId | Código Filial | SB1.B1_FILIAL |
CompanyInternalId | Empresa+Filial | Empresa | SB1.B1_FILIAL |
Code | Código do Produto | SB1.B1_COD |
Name | Descrição do produto | SB1.B1_DESC |
InternalId | Empresa+filial+código do produto | Empresa | SB1.B1_FILIAL | SB1.B1_COD |
ShortName | Nome curto | SB1.B1_DESC |
Active | Item ativo? | SB1.B1_ATIVO |
UnitOfMeasureCode | Unidade de Medida | SB1.B1_UM |
UnitOfMeasureInternalId | Empresa+filial+unidade de medida | Empresa | SB1.B1_FILIAL | SB1.B1_UM |
StockGroupCode | Grupo de Estoque | SB1.B1_GRUPO |
StockGroupInternalId | Empresa+filial+grupo de estoque | Empresa | SB1.B1_FILIAL | SB1.B1_GRUPO |
StockGroupDescription | Descrição do grupo estoque | SBM.BM_DESC |
StandardWarehouseCode | Local de Estoque | SB1.B1_LOCPAD |
StandardWarehouseInternalId | Empresa+filial+local de estoque | Empresa | SB1.B1_FILIAL | SB1.B1_LOCPAD |
StandardWarehouseDescription | Descrição Local de Estoque | NNR.NNR_DESCRI |
EconomicLot | Lote econômico | SB1.B1_LE |
MinimumLot | Lote mínimo | SB1.B1_LM |
FamilyCode | Família | SB1.B1_FPCOD |
FamilyInternalId | Empresa+filial+família | Empresa | SB1.B1_FILIAL | SB1.B1_FPCOD |
FamilyDescription | Descrição da família | SYC.YC_NOME |
NetWeight | Peso do Item | SB1.B1_PESO |
GrossWeigh | Peso bruto | SB1.B1_PESBRU |
Trail | Rastro | SB1.B1_RASTRO |
BinControl | Controla Endereço | SB1.B1_LOCALIZ |
SecondUnitOfMeasureCode | Segunda Unidade de medida | SB1.B1_SEGUM |
SecondUnitOfMeasureInternalId | Empresa+filial+ seg. unidade de medida | Empresa | SB1.B1_FILIAL | SB1.B1_SEGUM |
MultiplicationFactorValue | Fator de conversão | SB1.B1_CONV |
ProductType | Tipo do Item | SB1.B1_TIPO |
PackingQuantity | Quantidade Embalagem | SB1.B1_QE |
CostCenterCode | Centro de Custo | SB1.B1_CC |
Notas:
Se for um tipo que não está definido deverá gravar como GENÉRICO. Exemplo: Tipo = AMOSTRA.
Mensagem Padrão | Descrição | Tabela/Campo |
---|---|---|
CompanyId | Código da Empresa | |
BranchId | Código da Filial | NNR.NNR_FILIAL |
CompanyInternalId | Empresa+Filial | Empresa | NNR.NNR_FILIAL |
Code | Código do Local de Estoque(armazém/almoxarifado/depósito) | NNR.NNR_CODIGO |
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 |
Active | Local de Estoque Ativo? | true |
Type | Tipo do Local de Estoque | NNR.NNR_TIPO |
WarehouseClassification | Classificação | NNR.NNR_INTP |
WorkCenterCode | Centro de Trabalho | NNR.NNR_CTRAB |
Transação Recurso: Machine_1_000.xsd
Identificador da Mensagem: Machine
Versão: 1_000
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem Padrão | Descrição | Tabela/Campo |
---|---|---|
Code | Código Máquina | SH1.H1_CODIGO |
Description | Descrição Máquina | SH1.H1DESCRI |
WorkCenterCode | Código Centro Trabalho | SH1.H1_CTRAB |
WorkCenterDescription | Descrição Centro Trabalho | SHB.HB_NOME |
CostCenterCode | Código Centro Custo | SH1.H1_CCUST |
Transação Ordem de Produção: ProductionOrder_2_001.xsd
Identificador da Mensagem: ProductionOrder
Versão: 2_001
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem Padrão | Descrição | Tabela/Campo |
---|---|---|
Number | Número Ordem Produção | SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN |
ProductionOrderUniqueID | Empresa+Filial+Ordem Produção | Empresa | SC2.C2_FILIAL | SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN |
ItemCode | Código Item | SC2.C2_PRODUTO |
ItemDescription | Descrição Item | SB1.B1_DESC |
Type | Tipo da Ordem | Fixo 1 (ordem interna) |
Quantity | Quantidade | SC2.C2_QUANT |
ReportQuantity | Quantidade Reportada | SC2.C2QUJE |
UnitOfMeasureCode | Unidade Medida | SC2.C2_UM |
RequestOrderCode | Código Pedido Ordem Produção | SC2.C2_PEDIDO |
StatusOrderType | Estado da ordem | Prevista/Aberta = 1 Iniciada = 6 Ociosa = 9 Encerrada Parcial/Total = 7 |
WarehouseCode | Código Depósito | SC2.C2_LOCAL |
EndOrderDateTime | Data Fim Ordem Produção CP | SC2.C2_DATPRF |
StartOrderDateTime | Data Início Ordem Produção CP | SC2.C2_DATPRI |
AbbreviationProviderName | Nome Cliente | SC5.C5_CLIENTE ( SA1.A1_NOME) |
ScriptCode | Código Roteiro | SC2.C2_ROTEIRO |
ListOfActivityOrders | ||
ProductionOrderNumber | Ordem de Produção | SC2.C2_NUM + SC2.C2_ITEM + SC2.C2_SEQUEN |
ActivityID | ID do Registro | RECNO (SG2,SHY ou SH8) |
ActivityCode | Código Operação | SG2 (SG2.G2_OPERAC) ou SHY (SHY.HY_OPERAC) ou SH8(SH8.H8_OPER) |
ActivityDescription | Descrição Operação | SG2.G2_DESCRI |
ItemCode | Código do item | SC2.C2_PRODUTO |
ItemDescription | Descrição do item | SB1.B1_DESC |
ActivityType | Tipo Operação | Fixo "1" |
WorkCenterCode | Código Centro de Trabalho | SG2 (SG2.G2_CTRAB) ou SHY (SHY.HY_CTRAB) ou SH8(SH8.H8_CTRAB) |
WorkCenterDescription | Descrição Centro de Trabalho | SHB.HB_NOME |
UnitTimeType | Tipo Unidade Tempo | Fixo 1 |
TimeResource | Tempo Recurso(Tempo para fazer um lote) | SG2.G2_TEMPAD |
TimeMachine | Tempo Máquina(tempo para fazer toda a ordem) | SG2 (SG2.G2_TEMPAD) ou SHY (SHY.HY_TEMPO) Mult. pela qtd da ordem(SC2.C2_QUANT). Quando usa carga máquina usar a diferença entre SH8.H8_HRINI e SH8.H8_HRFIM |
TimeSetup | Tempo Preparação | SG2 (SG2.G2_SETUP) ou SHY (SHY.HY_TEMPOS) ou SH8 (SH8.H8_SETUP) |
ScriptCode | Código Roteiro | SG2 (SG2.G2_CODIGO) ou SHY (SHY.HY_ROTEIRO) ou SH8(H8_ROTEIRO) |
LaborCode | Código Mão de Obra Direta | MOD+CC |
UnitItemNumber | Lote Padrão | SG2.G2_LOTEPAD |
IsActivityEnd | Última Operação | Na última operação passar TRUE. Nas demais FALSE. |
MachineCode | Código Máquina | SG2(SG2_RECURSO) ou SHY(SHY_RECURSO) ou SH8(H8_RECURSO) |
StartPlanDateTime | Data/Hora Início Programação | SHY(SHY.HY_HORAINI) ou SC2(SC2.C2_DATPRI) ou SH8(H8_DTINI) |
EndPlanDateTime | Data/Hora Fim Programação | SHY(SHY.HY_HORAFIM) ou SC2(SC2.C2_DATPRF) ou SH8(H8_DTFIM) |
ProductionQuantity | Quantidade a produzir na operação | SHY.HY_QUANT ou SH8.H8_QUANT ou SC2.C2_QUANT |
UnitActivityCode | Unidade de medida | SB1.B1_UM |
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 |
MaterialID | ID do registro da reserva | SD4.R_E_C_N_O_ |
MaterialCode | Código Item Reserva | SD4.D4_COD |
MaterialDescription | Descrição do Item | SB1.B1_DESC |
ScriptCode | Código Roteiro | SD4.D4_ROTEIRO (a partir do pacote 12.1.8) |
ActivityCode | Código Operação | SD4.D4_OPERAC (a partir do pacote 12.1.8) |
WarehouseCode | Código Depósito | SD4.D4_LOCAL |
MaterialDate | Data Reserva | SD4.D4_DATA |
MaterialQuantity | Quantidade Reserva | SD4.D4_QUANT |
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.
Limitações/Restrições
O conceito de componente por operação (D4_OPERAC e D4_ROTEIRO ) somente estarão disponíveis a partir da versão 12.1.8 do PCP Protheus.
Transação Apontamento de Produção: ProductionAppointment_2_001.xsd
Identificador da Mensagem: ProductionAppointment
Versão: 2_001
Módulo Protheus: SIGAPCP
Tipo de Envio: Síncrona
Mensagem Padrão | Descrição | Tabela/Campo |
---|---|---|
MachineCode | Máquina | SH6.H6_RECURSO |
ProductionOrderNumber | Ordem de Produção | SH6.H6_OP |
ActivityCode | Operação | SH6.H6_OPERAC |
ItemCode | Produto | SH6.H6_PRODUTO |
ApprovedQuantity | Quantidade Aprovada | SH6.H6_QTDPROD |
ScrapQuantity | Quantidade Refugada | SH6.H6_QTDPERD |
StartReportDateTime | Data/Hora Início Reporte | SH6.H6_DATAINI SH6.H6_HORAINI |
EndReportDateTime | Data/Hora Fim Reporte | SH6.H6_DATAFIN SH6.H6_HORAFIN |
ReversedReport | Estorno do Apontamento | |
ReversalDate | Data do estorno | |
ReportDateTime | Data/Hora Reporte | SH6.H6_DTAPONT |
WarehouseCode | Código Depósito | SH6.H6_LOCAL |
LotCode | Lote/Série | SH6.H6_LOTECTL |
LotDueDate | Data Validade Lote | SH6.H6_DTVALID |
IntegrationReport | Registro a ser estornado | |
CloseOperation | Encerra Operação | SH6.H6_PT |
Notas:
Caso o campo código do depósito vier sem preenchimento deverá usar o local padrão do cadastro de item(SB1.B1_LOCPAD).
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 inicio/fim (StartReportDateTime e EndReportDateTime) devem passados sem valor (em branco)
Quando for apontado Refugo/Perda(ScrapQuantity for maior que zero), não será registrado o motivo de refugo tags do ListOfWasteAppointments. A rotina MATA681 não registra dados da tabela SBC quando a execução for decorrente de processamentos automáticos.
Quando for apontamento quantidade/tempo/recurso o SH6.H6_TIPO = 'P'.
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 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 = '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.
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
Mensagem padrão | Descrição | Tabela/Campo |
---|---|---|
MachineCode | Código Máquina | SH6.H6_RECURSO |
MachineDescription | Descrição Maquina | |
StopReasonCode | Código Motivo Parada | SH6.H6_MOTIVO |
StopReasonDescription | Descrição Motivo Parada | SX5.X5_DESCRI * |
StartDateTime | Data/Hora Início | SH6.H6_DATAINI SH6.H6_HORAINI |
EndDateTime | Data/Hora Fim | SH6.H6_DATAFIN SH6.H6_HORAFIN |
OperatorCode | Código Operador | SH6.H6_OPERADO |
ReportDateTime | Data/Hora Reporte | SH6.H6_DTAPONT |
ReportSequence | ID PC-Factory |
Notas:
Quando for apontamento de parada setar o SH6.H6_TIPO = 'I'.
O produto deverá ser a mão de obra. Gerado pelo sistema. Exemplo: SH6.H6_PRODUTO = MOD001
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.
A integração contempla apenas o sistemas PCP Protheus. O módulo Chão de Fábrica SIGASCF, a rotina do cálculo MRP 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.
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 Verificações: