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 , para inclusão 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 XX/12/2019 09/01/2020.
|
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
#Include 'Totvs.ch' //------------------------------------------------------------------- /*/{Protheus.doc} MNT655EXEC ExecAuto MNTA655 /*/ //------------------------------------------------------------------- User Function MNT655EXEC() //------------------------------------------ // Processo de Inclusão //------------------------------------------ Local aItemaAbast := {} //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 aItemaAbast := { {"'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 },; 'GAS' , Nil },; {"{'TQN_DTABAS"', StoD( '20191210' ) , Nil },; {" {'TQN_HRABAS"', '15:05' , Nil },; {'TQN_TANQUE', PadR( '01' { , TAMSX3("TQN_QUANTTANQUE")[1] ), 10 Nil },; {'TQN_BOMBA' , PadR( '01' , TAMSX3("TQN_BOMBA")[1] ) , Nil },; {'TQN_QUANT' , 10 {" , Nil },; {'TQN_VALUNI", 4', 3.57 , Nil },; {" {'TQN_VALTOT"', 35.70 40 , Nil },; {" {'TQN_HODOM"' , 130 , Nil },; {"TQN_CODMOT", '000001' {'TQN_CODMOT', Nil },; {PadR( '000001' , TAMSX3("TQN_POSTOCODMOT")[1] ), '099 Nil },; {'TQN_POSTO' , Nil },; PadR( '099' { , TAMSX3("TQN_LOJAPOSTO")[1] ) , '01 'Nil },; {'TQN_LOJA' , Nil },; PadR( '01' { , TAMSX3("TQN_NOTFIS", '8875137'LOJA")[1] ) , 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, z | MNTA655( v, x, y, z ) }, , aItemaAbast, 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 aItem //------------------------------------------ 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 aItem 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, z | MNTA655( v, x, y, z ) }, , aItemaAbast, 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 aItem //------------------------------------------ aAbast := {} // Para alteração o processo de Exclusão será necessário informar os campos TQN_FROTA, TQN_DTABAS, TQN_HRABAS para encontrar o abastecimento. aItemaAbast := { { '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, z | MNTA655( v, x, y, z ) }, , aItemaAbast, 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