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 é 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 APP Minha Produção. | ||||||||
Localização: | API ProductionAppointment, métodos POST mata250, POST mata681 e POST sfca314 ProductionOrderSearch, método GET ProductionOrderMaster - Responsáveis por criar os apontamentos de produção retorna 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: | PApPosAP( ) --> aDados | ||||||||
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 PApPosAp() Local aDados := PARAMIXB[2] //Array de dados que será utilizado pelo MATA250 ou MATA681 Local cTipoApon := PARAMIXB[1] //Tipo do apontamento em execução Local cTipoSFC := PARAMIXB[4] //Tipo de operação no chão de fábrica Local oModel := PARAMIXB[3] //Modelo 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 |