Disparando uma execução automática através da FWMVCRotAuto – Maratona AdvPL e TL++ 237

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.

Dan (Daniel Atilio)
Cristão de ramificação protestante. Especialista em Engenharia de Software pela FIB, graduado em Banco de Dados pela FATEC Bauru e técnico em informática pelo CTI da Unesp. Entusiasta de soluções Open Source e blogueiro nas horas vagas. Autor e mantenedor do portal Terminal de Informação.

Deixe uma resposta

Terminal de Informação