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.