Histórico da Página
POSFilOp - Filtrar informações da 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 ProductionAppointmentapós selecionar as ordens de produção conforme filtro de pesquisa na consulta de OP da API ProductionOrderSearch. Com este ponto de entrada, é possível modificar as informações que serão enviadas para as rotinas automáticas de apontamento indicar se a OP selecionada será incluída ou não na lista de ordens de produção durante a utilização do APP Minha Produção - Consulta de OP. | |||||||||
Localização: | API ProductionOrderSearch, método GET ProductionOrderMaster - Responsáveis Responsável por retorna etornar 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: | ProductionOrderSearch.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 := 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 | 1-Simples MATA250; 3-MOD 2 MATA681; 4-SFC Local cOp := PARAMIXB[2] //Ordem de Produção Local cStatusOp := PARAMIXB[3] //Status da Ordem de Produção | 1-Prevista; 2-Em aberto; 3-Iniciada; 5-Encerrada Parcialmente; 6-Encerrada Totalmente Local lRetOp := .T. Local nQtd := 0 Local oMdlCYV := oModel:GetModel("CYVMASTER") If cTipocStatusOp == "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 '6' lRetOp := .F. //Não irá apresentar OP Encerrada Totalmente na Consulta de OP pelo APP Minha Produção. EndIf Return lRetOp |