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
|