Nesse vídeo demonstraremos a utilização da função FWMVCRotAuto, que serve para executar automaticamente uma função (ExecAuto).
Abaixo o código fonte desenvolvido para o exemplo em vídeo acima:
//Bibliotecas
#Include 'TOTVS.ch'
#Include 'FWMVCDef.ch'
/*/{Protheus.doc} User Function zExe237
Aciona uma operação automática em MVC
@type Function
@author Atilio
@since 20/02/2023
@see https://tdn.totvs.com/display/public/framework/FWMVCRotAuto
@obs
Função FWMVCRotAuto
Parâmetros
+ oModel , Objeto , Objeto com o modelo do formulário
+ cAlias , Caractere , Alias do Browse
+ nOpcAuto , Numérico , Número da operação sendo 3 = inclusão ; 4 = alteração e 5 = exclusão
+ aAuto , Array , Array com os campos e conteúdos
+ lSeek , Lógico , Indica se o registro deve ser posicionado (se for uma alteração ou exclusão)
+ lPosaRot , Lógico , Indica se o nOpc não deve ser calculado com base no aRotina
Retorno
+ lRetorno , Lógico , .T. se a operação foi bem sucedida ou .F. se não
**** Apoie nosso projeto, se inscreva em https://www.youtube.com/TerminalDeInformacao ****
/*/
User Function zExe237()
Local aArea := GetArea()
Local aDados := {}
Private aRotina := FWLoadMenuDef("MATA020")
Private oModel := FWLoadModel("MATA020")
Private lMsErroAuto := .F.
//Adicionando os dados do ExecAuto
aAdd(aDados, {"A2_COD", "F0004", Nil})
aAdd(aDados, {"A2_LOJA", "01", Nil})
aAdd(aDados, {"A2_NOME", "Teste", Nil})
aAdd(aDados, {"A2_NREDUZ", "Tst", Nil})
aAdd(aDados, {"A2_TIPO", "F", Nil})
aAdd(aDados, {"A2_END", "Rua de teste", Nil})
aAdd(aDados, {"A2_EST", "SP", Nil})
aAdd(aDados, {"A2_COD_MUN", "06003", Nil})
aAdd(aDados, {"A2_HPAGE", "tst.com", Nil})
aAdd(aDados, {"A2_EMAIL", "teste@tst.com", Nil})
aAdd(aDados, {"A2_NATUREZ", "NATREC0001", Nil})
//Chamando a inclusão - Modelo 1
lMsErroAuto := .F.
FWMVCRotAuto( ;
oModel,; //Modelo
"SA2",; //Alias
MODEL_OPERATION_INSERT,; //Operacao
{{"SA2MASTER", aDados}}; //Dados
)
//Se tiver mais de um Form, deve se passar dessa forma:
// {{"ZZ2MASTER", aAutoCab}, {"ZZ3DETAIL", aAutoItens}})
//Se houve erro no ExecAuto, mostra mensagem
If lMsErroAuto
MostraErro()
//Senão, mostra uma mensagem de inclusão
Else
MsgInfo("Registro incluido!", "Atenção")
EndIf
RestArea(aArea)
Return
Bom pessoal, por hoje é só.
Abraços e até a próxima.