Como desenvolver a "User Function" para execução automática na rotina de Abastecimento Manual.
Produto: | Manutenção de Ativos e Gestão de Frotas (SIGAMNT). | ||||||||||||||||||||||||
Versões: | Todas | ||||||||||||||||||||||||
Ocorrência: | Desenvolvimento de função para execução automática(ExecAuto) e inclusão de registros na rotina de Abastecimento Manual. | ||||||||||||||||||||||||
Ambiente: | Todos | ||||||||||||||||||||||||
Passo a passo: | Para o desenvolvimento da rotina de execução automática a fim de realizar a inclusão, alteração ou exclusão de dados na rotina de Abastecimento Manual (MNTA655), favor utilizar o exemplo abaixo. | ||||||||||||||||||||||||
Função: | MNTA655( Reservado, aAbast, Operação ) | ||||||||||||||||||||||||
Parâmetros: |
| ||||||||||||||||||||||||
Observação: | Para inclusão de abastecimento manual para algum posto externo, deve ser retirado as posições de Tanque e Bomba. |
Atenção
A funcionalidade ExecAuto estará presente nas versões do fonte MNTA655.prx com a data a partir de 09/01/2020.
- Ao utilizar o ExecAuto o parâmetro MV_NGGERPR utilizará o parâmetro como 'S' para que não seja apresentada mensagem em tela referente à geração de OS Automática.
- Ao utilizar o ExecAuto a chamada da função RPCSetEnv faz com que não sejam apresentadas mensagens em tela. Para verificar as mensagens em tela esta função deve ser retirada/comentada.
- Ao utilizar o ExecAuto os campos numéricos Quantidade (TQN_QUANT), Valor Unitário (TQN_VALUNI) e Valor Total (TQN_VALTOT) devem utilizar ponto "." para separar as casas decimais.
Exemplo fonte ExecAuto
#Include 'Totvs.ch' //------------------------------------------------------------------- /*/{Protheus.doc} MNT655EXEC ExecAuto MNTA655 /*/ //------------------------------------------------------------------- User Function MNT655EXEC() //------------------------------------------ // Processo de Inclusão //------------------------------------------ Local aAbast := {} //Abre empresa/filial/módulo/arquivos - deve ser comentada a função RPCSetEnv se quiser verificar as mensagens de erro em tela RPCSetEnv('Código da empresa','Código da filial','','','Código do módulo') // Itens obrigatórios para inclusão do abastecimento para posto interno aAbast := { {'TQN_PLACA' , PadR( 'CGZ-1500' , TAMSX3("TQN_PLACA")[1] ) , Nil },; {'TQN_FROTA' , PadR( 'CG150' , TAMSX3("TQN_FROTA")[1] ) , Nil },; {'TQN_CNPJ' , PadR( '47467235000151' , TAMSX3("TQN_CNPJ")[1] ) , Nil },; {'TQN_CODCOM', PadR( 'GAS' , TAMSX3("TQN_CODCOM")[1] ), Nil },; {'TQN_DTABAS', StoD( '20191210' ) , Nil },; {'TQN_HRABAS', '15:05' , Nil },; {'TQN_TANQUE', PadR( '01' , TAMSX3("TQN_TANQUE")[1] ), Nil },; {'TQN_BOMBA' , PadR( '01' , TAMSX3("TQN_BOMBA")[1] ) , Nil },; {'TQN_QUANT' , 10 , Nil },; {'TQN_VALUNI', 3.57 , Nil },; {'TQN_VALTOT', 35.70 , Nil },; {'TQN_HODOM' , 130 , Nil },; {'TQN_CODMOT', PadR( '000001' , TAMSX3("TQN_CODMOT")[1] ), Nil },; {'TQN_POSTO' , PadR( '099' , TAMSX3("TQN_POSTO")[1] ) , Nil },; {'TQN_LOJA' , PadR( '01' , TAMSX3("TQN_LOJA")[1] ) , Nil },; {'TQN_NOTFIS', PadR( '8875137' , TAMSX3("TQN_NOTFIS")[1] ), Nil }} lMSHelpAuto := .T. // Não apresenta erro em tela // Caso a variável torne-se .T. após MsExecAuto, apresenta erro em tela //(se não possuir a função RPCSetEnv, com esta função não será apresentada mensagem em tela) lMSErroAuto := .F. MSExecAuto( { | v, x, y | MNTA655( v, x, y ) }, , aAbast, 3 ) If lMsErroAuto If !IsBlind() //Apresentará mensagem com o MostraErro se não utilizar RPCSetEnv. MostraErro() Else //Não apresentará mensagem, pois utiliza a função RPCSetEnv. cError := MostraErro(GetSrvProfString("Startpath", ""), "MNTA655EXEC_"+DTOS(DATE())+"_"+; Left(Time(),2)+SubStr(Time(),4,2)+".LOG") // Armazena mensagem de erro na raiz (StartPath). ConOut( cError) EndIf EndIf If !lMsErroAuto //------------------------------------------ // Processo de Alteração //------------------------------------------ aAbast := {} // Para alteração será necessário informar os campos TQN_FROTA, TQN_DTABAS, TQN_HRABAS para encontrar o abastecimento, //os demais campos informados serão referentes as alterações solicitadas aAbast := { {'TQN_FROTA' , PadR( 'CG150' , TAMSX3("TQN_FROTA")[1] ) , Nil },; {'TQN_DTABAS', StoD( '20191012' ) , Nil },; { 'TQN_HRABAS', '15:05' , Nil },; { 'TQN_QUANT' , 5 , Nil },; { 'TQN_VALUNI', 3.88 , Nil },; { 'TQN_VALTOT', 19.40 , Nil }} lMSHelpAuto := .T. // Não apresenta erro em tela // Caso a variável torne-se .T. após MsExecAuto, apresenta erro em tela //(se não possuir a função RPCSetEnv, com esta função não será apresentada mensagem em tela) lMSErroAuto := .F. MSExecAuto( { | v, x, y | MNTA655( v, x, y ) }, , aAbast, 4 ) If lMsErroAuto If !IsBlind() //Apresentará mensagem com o MostraErro se não utilizar RPCSetEnv. MostraErro() Else //Não apresentará mensagem, pois utiliza a função RPCSetEnv. cError := MostraErro(GetSrvProfString("Startpath", ""), "MNTA655EXEC_"+DTOS(DATE())+"_"+; Left(Time(),2)+SubStr(Time(),4,2)+".LOG") // Armazena mensagem de erro na raiz (StartPath). ConOut( cError) EndIf EndIf EndIf If !lMsErroAuto //------------------------------------------ // Processo de Exclusão //------------------------------------------ aAbast := {} // Para o processo de Exclusão será necessário informar os campos TQN_FROTA, TQN_DTABAS, TQN_HRABAS para encontrar o abastecimento. aAbast := { {'TQN_FROTA' , PadR( 'CG150' , TAMSX3("TQN_FROTA")[1] ) , Nil },; {'TQN_DTABAS', StoD( '20191012' ) , Nil },; {'TQN_HRABAS', '15:05' , Nil }} lMSHelpAuto := .T. // Não apresenta erro em tela // Caso a variável torne-se .T. após MsExecAuto, apresenta erro em tela // (se não possuir a função RPCSetEnv, com esta função não será apresentada mensagem em tela) lMSErroAuto := .F. MSExecAuto( { | v, x, y | MNTA655( v, x, y ) }, , aAbast, 5 ) If lMsErroAuto If !IsBlind() //Apresentará mensagem com o MostraErro se não utilizar RPCSetEnv. MostraErro() Else //Não apresentará mensagem, pois utiliza a função RPCSetEnv. cError := MostraErro(GetSrvProfString("Startpath", ""), "MNTA655EXEC_"+DTOS(DATE())+"_"+; Left(Time(),2)+SubStr(Time(),4,2)+".LOG") // Armazena mensagem de erro na raiz (StartPath). ConOut( cError) EndIf EndIf EndIf Return
Visão Geral
Import HTML Content
Conteúdo das Ferramentas
Tarefas