Exemplo de ExecAuto da rotina APDA020 (cadastro de Participantes) | Ti Responde 0167

No vídeo de hoje, vamos demonstrar em como criar um registro na RD0 através do ExecAuto da função APDA020.

A dúvida de hoje, nos perguntaram, se seria possível acionar a criação de registros na tabela de Participantes (RD0) através do ExecAuto da APDA020.

 

Pensando nisso, montamos um exemplo, onde vamos demonstrar em como fazer esse procedimento.

 

Segue abaixo o vídeo exemplificando:

 

E abaixo o código fonte desenvolvido:

//Bibliotecas
#Include "tlpp-core.th"

//Declaração da namespace
Namespace custom.terminal.youtube

#Define CRLF Chr(13) + Chr(10) //Carriage Return Line Feed
    
/*/{Protheus.doc} User Function video0167
Exemplo de ExecAuto da função APDA020 (Participantes)
@type Function
@author Atilio
@since 14/06/2024
@example custom.terminal.youtube.u_video0167()
/*/

User Function video0167()
    Local aArea         := FWGetArea() As Array
    Local cTableAlias   := "RD0"       As Character
    Local nRecNo        := 0           As Numeric  //Se for alteração ou exclusão, passar RD0->(RecNo())
    Local nOperation    := 3           As Numeric  //3=Inclusão
    Local lAuto         := .T.         As Logical
    Local aData         := {}          As Array
    Private lMsErroAuto := .F.         As Logical

    //Adiciona as informações no Array
    aAdd(aData, {"RD0_NOME",      "Teste da Silva" , Nil})
    aAdd(aData, {"RD0_TIPO",      "1"              , Nil})
    aAdd(aData, {"RD0_DTNASC",    sToD("20240101") , Nil})
    aAdd(aData, {"RD0_SEXO",      "M"              , Nil})
    aAdd(aData, {"RD0_CIC",       "44675972802"    , Nil}) //Gerado através https://www.4devs.com.br/gerador_de_cpf
    aAdd(aData, {"RD0_UF",        "SP"             , Nil})

    /*
    //Caso você queira validar se o participante existe e se vai ser alterado, descomente o trecho abaixo e ajuste o índice e o Seek
    DbSelectArea("RD0")
    RD0->(DbSetOrder(1)) // RD0_FILIAL + RD0_CODIGO
    If RD0->(MsSeek(" ... ")
        nRecNo       := RD0->(RecNo())
        nOperation   := 4
    Else
        nRecNo       := 0  
        nOperation   := 3  
    EndIf
    */

    //Aciona a execução automática
    MSExecAuto({|a, b, c, d, e| APDA020(a, b, c, d, e)}, cTableAlias, nRecNo, nOperation, lAuto, aData)

    //Se houve erro, mostra a mensagem
    If lMsErroAuto   
        MostraErro()
    Else
        FWAlertSuccess("Participante gravado com sucesso!", "Atenção")
    EndIf 

    FWRestArea(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