Histórico da Página
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. |
Nota | ||
---|---|---|
| ||
A funcionalidade ExecAuto estará presente nas versões do fonte MNTA655.prx com a data a partir de XX09/1201/20192020.
|
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#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 obrgitóriosobrigatórios para inclusão do abastecimento para posto interno aAbast := { {'TQN_PLACA' , PadR( 'CGZ-1500' , TAMSX3("TQN_PLACA")[1] ) , Nil },; , Nil },; {'TQN_FROTA' , PadR( 'CG150' , TAMSX3("TQN_FROTA")[1] ) , Nil },; ' , Nil },; {'TQN_CNPJ' , PadR( '47467235000151' , TAMSX3("TQN_CNPJ")[1] ) , Nil },; {'TQN_CODCOM', PadR( 'GAS' , TAMSX3("TQN_CODCOM")[1] ), Nil },; , 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', 43.57 , Nil },; {'TQN_VALTOT', 4035.70 , Nil },; {'TQN_HODOM' , 130 , Nil },; {'TQN_CODMOT', PadR( '000001' , TAMSX3("TQN_CODMOT")[1] ), Nil },; , Nil },; {'TQN_POSTO' , PadR( '099' , TAMSX3("TQN_POSTO")[1] ) , Nil },; ', Nil },; {'TQN_LOJA' , PadR( '01' , TAMSX3("TQN_LOJA")[1] ) ' , Nil },; , Nil },; {'TQN_NOTFIS', PadR( '8875137' , TAMSX3("TQN_NOTFIS")[1] ), Nil }} lMSHelpAuto := .T. // Não apresenta erro em tela lMSErroAuto := .F. // Caso a variável torne-se .T. aposapó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( '2019121020191012' ) , Nil },; { 'TQN_HRABAS', '15:05' , Nil },; { 'TQN_QUANT' , 5 , Nil },; { 'TQN_VALUNI', 43.88 , Nil },; { 'TQN_VALTOT', 2019.40 , Nil }} lMSHelpAuto := .T. // Não apresenta erro em tela lMSErroAuto := .F. // Caso a variável torne-se .T. aposapó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, z ) }, , 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 alteraçãoo 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( '2019121020191012' ) , Nil },; { 'TQN_HRABAS', '15:05' , Nil }} lMSHelpAuto := .T. // Não apresenta erro em tela lMSErroAuto := .F. // Caso a variável torne-se .T. aposapó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