Histórico da Página
POSFilOp - Filtrar informações
para execuçãoda Consulta de OP pelo APP Minha Produção
Linha de Produto: | Protheus | ||||||||||||||||||||||||||||||||||||||||||
Segmento: | Manufatura | ||||||||||||||||||||||||||||||||||||||||||
Módulo: | SIGAPCP - Planejamento e Controle da Produção | ||||||||||||||||||||||||||||||||||||||||||
Parâmetro(s): |
| ||||||||||||||||||||||||||||||||||||||||||
Idiomas: | Todos | ||||||||||||||||||||||||||||||||||||||||||
País(es): | Todos | ||||||||||||||||||||||||||||||||||||||||||
Banco(s) de Dados: | Todos | ||||||||||||||||||||||||||||||||||||||||||
Sistema(s) Operacional(is): | Todos |
Ponto de Entrada
Descrição: | O ponto de entrada POSFilOp será executado em 2 momentos:
é executado nas requisições de criação do apontamento da API ProductionAppointment. Com este ponto de entrada, é possível modificar as informações que serão enviadas para as rotinas automáticas de apontamento durante a utilização do indicar se a OP selecionada (ou determinada Operação/Split) será exibida na Consulta de OP pelo APP Minha Produção. | |||||||||
Localização: | API ProductionAppointment, métodos POST mata250, POST mata681 e POST sfca314 - Responsáveis por criar os apontamentos de produção ProductionOrderSearch, método GET ProductionOrderMaster - Responsável por retornar uma lista de ordens de produção durante a utilização do APP Minha Produção - Consulta de OP. | |||||||||
Eventos: | Não se aplica. | |||||||||
Programa Fonte: | ProductionAppointmentProductionOrderSearch.PRW | |||||||||
Sintaxe: | PApPosAPPOSFilOp( ) --> aDadoslRetOp | |||||||||
Retorno: |
| |||||||||
Observações: | Não é permitida a utilização de qualquer componente de interface gráfica nesse ponto de entrada, visto que a função será executada durante uma requisição REST. |
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#INCLUDE "TOTVS.CH" User Function PApPosApPOSFilOp() Local aDados Local cTipoApon := PARAMIXB[21] //ArrayTipo dedo dadosapontamento que| será utilizado pelo MATA250 ou MATA681 Local cTipoApon := PARAMIXB[1] //Tipo do apontamento em execução Local cTipoSFC1-Simples MATA250; 3-MOD 2 MATA681; 4-SFC Local cOp := PARAMIXB[42] //TipoOrdem de operaçãoProdução no chão de fábrica Local oModel cStatusOp := PARAMIXB[3] //ModeloStatus da Ordem de dados da rotina de apontamento do chão de fábrica Do Case Case cTipoApon == "1" // Apontamento MATA250 custom250(@aDados) Case cTipoApon == "3" // Apontamento MATA681 custom681(@aDados) Case cTipoApon == "4" // Apontamento SFCA314 customSFC(@oModel, cTipoSFC) EndCase Return aDados Static Function custom250(aDados) Local nPos := 0 nPos := aScan(aDados, {|x| x[1] == "D3_TM"}) If nPos > 0 aDados[nPos][2] := "011" //Altera o tipo de movimento utilizado EndIf //Adiciona nova informação no array aAdd(aDados, {"D3_OBSERVA", "TESTE", Nil}) Return Nil Static Function custom681(aDados) Local cNumOp := "" Local nPos := 0 //Busca número da OP nPos := aScan(aDados, {|x| x[1] == "H6_OP"}) If nPos > 0 cNumOp := aDados[nPos][2] EndIf //Atualiza informação no array para inclusão do apontamento. nPos := aScan(aDados, {|x| x[1] == "H6_OBSERVA"}) If nPos > 0 aDados[nPos][2] := "OBS:" + cNumOp Else //Adiciona nova informação no array aAdd(aDados, {"H6_OBSERVA", "OBS:" + cNumOp, Nil}) EndIf Return Nil Static Function customSFC(oModel, cTipo) Local aErro := {} Local lRet := .T. Local nQtd := 0 Local oMdlCYV := oModel:GetModel("CYVMASTER") If cTipo == "1" // Apontamento de produção. //Recupera quantidade reportada do apontamento nQtd := oMdlCYV:GetValue("CYV_QTATRP") //Soma +1 na quantidade reportada do apontamento lRet := oMdlCYV:SetValue("CYV_QTATRP", nQtd + 1) If !lRet aErro := oModel:GetErrorMessage() VarInfo("aErro:", aErro) EndIf ElseIf cTipo == "2" // Início de apontamento //Adiciona uma informação na coluna CYV_CDRE lRet := oMdlCYV:SetValue("CYV_CDRE", "RF_TESTE") If !lRet aErro := oModel:GetErrorMessage() VarInfo("aErro:", aErro) EndIf ElseIf cTipo == "3" // Abandono de apontamento //Adiciona uma informação na coluna CYV_CDRE lRet := oMdlCYV:SetValue("CYV_CDRE", "RF_TESTE3") If !lRet aErro := oModel:GetErrorMessage() VarInfo("aErro:", aErro) EndIf EndIf Return Nil Produção | 1-Prevista; 2-Em aberto; 3-Iniciada; 5-Encerrada Parcialmente; 6-Encerrada Totalmente Local cSplit := PARAMIXB[4] //Código do Split (SFC) - Nil quando não for do SFC Local cOperacao := PARAMIXB[5] //Código da Operação - Nil quando for validação da Ordem de Produção Local cFormCode := PARAMIXB[6] //Código do Formulário de Apontamento utilizado para chamar a PE Local lRetOp := .T. If cStatusOp == '6' lRetOp := .F. //Não irá apresentar OP Encerrada Totalmente na Consulta de OP pelo APP Minha Produção. EndIf If cFormCode == 'USINAGEM' If !Empty(cOperacao) .And. cOperacao <> '10' lRetOp := .F. //Não irá apresentar Operações diferente de '10' para o formulário 'USINAGEM' EndIf elseIf cFormCode == '' If cStatusOp == '4' lRetOp := .F. //Não irá apresentar OP Ociosa na Consulta de O.P. pelo menu lateral do APP Minha Produção. EndIf EndIf Return lRetOp |