Base de conhecimento
Encontre respostas para suas dúvidas em quatro fontes de conhecimento diferentes ao mesmo tempo, simplificando o processo de pesquisa.

Cross Segmento - Backoffice Linha Protheus - ADVPL - EXECAUTO PONA350

time.pngTempo aproximado para leitura: 00:03:00 min

Dúvida
Solicito exemplo da ExecAuto na rotina PONA350 - Pré Abono


Ambiente
Protheus – ADVPL – A partir da versão 11.80

Solução

Segue abaixo modelo para auxilio na customização da rotina PONA350

Exemplo de Inclusão 

#Include 'Protheus.ch'
#Include 'tbiconn.ch'

//Rotina de teste da Rotina Automática do programa Pona350

User Function My350I()
Local aArea := {}
Local aSRAArea := {}
Local aSP6Area := {}
Local aCabec := {}
Local aItens := {}
Local cFuncionario := ""

Local dPerIni := Ctod('')
Local dPerFim := Ctod('')

Private lMsHelpAuto := .T. // se .t. direciona as mensagens de help para o arq. de log
Private lMsErroAuto := .F. //necessário a criação, pois sera //atualizado quando houver
//alguma inconsistência nos parâmetros

 

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Abertura do ambiente |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PREPARE ENVIRONMENT EMPRESA '01' FILIAL "01" TABLES "SRA", "SP6", "RF0" MODULO "PON"

aArea := (GetArea())
aSRAArea := SRA->(GetArea())
aSP6Area := SP6->(GetArea())


//-- Obtem o Periodo de Apontamento em Aberto
GetPonMesDat( @dPerIni , @dPerFim )

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Obtem 1 funcionario |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SRA")
SRA->(DBGOTOP())
cFuncionario := SRA->RA_MAT

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Obtem 1 Motivo |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SP6")
SP6->(DBGOTOP())
cMotivo := SP6->P6_CODIGO


//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Teste de Inclusao |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
ConOut(Repl("-",80))
ConOut(PadC("Teste de Inclusão de Períodos de Pre-Abonos",80))
ConOut("Inicio: "+Time())

aCabec := {}
aItens := {}
aLinha := {}
aadd(aCabec,{"RF0_MAT" , cFuncionario ,})
aadd(aLinha,{"RF0_DTPREI" , dPerIni ,})
aadd(aLinha,{"RF0_HORINI" , 2.00 ,})
aadd(aLinha,{"RF0_DTPREF" , dPerFim ,})
aadd(aLinha,{"RF0_HORFIM" , 4.00 ,})
aadd(aLinha,{"RF0_CODABO" , cMotivo ,})
aadd(aLinha,{"RF0_HORTAB" , 'S' ,})
aadd(aItens, aLinha)

MSExecAuto({|x,y,z| PONA350(x,y,z)},aCabec,aItens,3)

If !lMsErroAuto
ConOut("Incluido com sucesso! "+cFuncionario)
Else
ConOut("Erro na inclusao!")
EndIf
ConOut("Fim : "+Time())

RESET ENVIRONMENT

Return(.T.)

Exemplo de Alteração 

#Include 'Protheus.ch'
#Include 'tbiconn.ch'

User Function My350A()
Local aArea            :=    {}
Local aSRAArea        :=    {}
Local aSP6Area        :=    {}
Local aCabec        :=  {}
Local aItens        :=  {}
Local cFuncionario     :=  ""
                             
Local dPerIni        := Ctod('')
Local dPerFim        := Ctod('')

Private lMsHelpAuto := .T.     // se .t. direciona as mensagens de help para o arq. de log
Private lMsErroAuto := .F.     //necessário a criação, pois sera //atualizado quando houver 
                            //alguma inconsistência nos parâmetros



//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Abertura do ambiente                                         |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PREPARE ENVIRONMENT EMPRESA '01' FILIAL "01" TABLES "SRA", "SP6", "RF0" MODULO "PON" 

aArea            :=    (GetArea())
aSRAArea        :=    SRA->(GetArea())
aSP6Area        :=    SP6->(GetArea())

                               
//-- Obtem o Periodo de Apontamento em Aberto
GetPonMesDat( @dPerIni , @dPerFim )

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Obtem 1 funcionario                                             |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SRA")
SRA->(DBGOTOP())
cFuncionario := SRA->RA_MAT

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Obtem 1 Motivo                                                 |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SP6")
SP6->(DBGOTOP())
cMotivo     := SP6->P6_CODIGO


     

    //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
    //| Teste de Alteracao                                           |
    //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
    ConOut(Repl("-",80)) 
    ConOut("Inicio: "+Time())
    ConOut(PadC("Teste de Alteracao de Periodos de Pre-Abonos",80))
    
    aCabec := {} 
    aItens := {} 
    aLinha := {}
    aadd(aCabec,{"RF0_MAT"        , cFuncionario    ,})
    aadd(aLinha,{"RF0_DTPREI"     , dPerIni        ,})
    aadd(aLinha,{"RF0_HORINI"     , 9.00            ,})
    aadd(aLinha,{"RF0_DTPREF"     , dPerFim        ,})
    aadd(aLinha,{"RF0_HORFIM"     , 10.00            ,})
    aadd(aLinha,{"RF0_CODABO"     , cMotivo        ,})
    aadd(aLinha,{"RF0_HORTAB"     , 'S'            ,})
    aadd(aItens, aLinha)
    
    MSExecAuto({|x,y,z| PONA350(x,y,z)},aCabec,aItens,4)
    
    
    If !lMsErroAuto
        ConOut("Alterado com sucesso! "+cFuncionario)    
    Else
        ConOut("Erro na Alteracao!")
    EndIf
    ConOut("Fim  : "+Time())
    


RESET ENVIRONMENT

Return(.T.)

Exemplo de Exclusão

#Include 'Protheus.ch'
#Include 'tbiconn.ch'

User Function My350E()
Local aArea            :=    {}
Local aSRAArea        :=    {}
Local aSP6Area        :=    {}
Local aCabec        :=  {}
Local aItens        :=  {}
Local cFuncionario     :=  ""
                             
Local dPerIni        := Ctod('')
Local dPerFim        := Ctod('')

Private lMsHelpAuto := .T.     // se .t. direciona as mensagens de help para o arq. de log
Private lMsErroAuto := .F.     //necessário a criação, pois sera //atualizado quando houver 
                            //alguma inconsistência nos parâmetros



//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Abertura do ambiente                                         |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
PREPARE ENVIRONMENT EMPRESA '01' FILIAL "01" TABLES "SRA", "SP6", "RF0" MODULO "PON" 

aArea            :=    (GetArea())
aSRAArea        :=    SRA->(GetArea())
aSP6Area        :=    SP6->(GetArea())

                               
//-- Obtém o Período de Apontamento em Aberto
GetPonMesDat( @dPerIni , @dPerFim )

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Obtem 1 funcionario                                             |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SRA")
SRA->(DBGOTOP())
cFuncionario := SRA->RA_MAT

//ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
//| Obtem 1 Motivo                                                 |
//ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
dbSelectArea("SP6")
SP6->(DBGOTOP())
cMotivo     := SP6->P6_CODIGO

    //ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿
    //| Teste de Exclusão                                            |
    //ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ 
    ConOut(Repl("-",80)) 
    ConOut("Inicio: "+Time())
    ConOut(PadC("Teste de Exclusão de Períodos de Pre-Abonos",80))
    
    aCabec := {}
    aItens := {}    
    aLinha := {}    
    aadd(aCabec,{"RF0_MAT"        , cFuncionario    ,})
    
    aadd(aLinha,{"RF0_DTPREI"     , dPerIni        ,})
    aadd(aLinha,{"RF0_HORINI"     , 0.00            ,})
    aadd(aLinha,{"RF0_DTPREF"     , dPerFim        ,})
    aadd(aLinha,{"RF0_HORFIM"     , 0.00            ,})
    aadd(aLinha,{"RF0_CODABO"     , cMotivo        ,})
    aadd(aLinha,{"RF0_HORTAB"     , 'S'            ,})
    aadd(aItens, aLinha)
    
    MSExecAuto({|x,y,z| PONA350(x,y,z)},aCabec,aItens,5)
    
    If !lMsErroAuto
        ConOut("Excluído com sucesso! "+cFuncionario)    
    Else
        ConOut("Erro na Exclusão!")
    EndIf
    ConOut("Fim  : "+Time())

RESET ENVIRONMENT

Return(.T.) 
Esse artigo foi útil?
Usuários que acharam isso útil: 0 de 0

0 Comentários

Por favor, entre para comentar.
X Fechar

Olá ,

Há pendência referente a um de seus produtos contratados para a empresa ().

Entre em contato com o Centro de Serviços TOTVS para tratativa.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cobrança – Verificação de pendências financeiras . clique aqui.

TOTVS

X Fechar

Olá ,

Seu contato não está cadastrado no Portal do Cliente como um perfil autorizado a solicitar consultoria telefônica.

Por gentileza, acione o administrador do Portal de sua empresa para: (1)configurar o seu acesso ou (2)buscar um perfil autorizado para registro desse atendimento.

Em caso de dúvidas sobre a identificação do contato administrador do Portal, ligue (11) 4003-0015, opção 7 e, em seguida, opção 4 para buscar o suporte com o time de Assessoria ao Portal do Cliente. . clique aqui.

TOTVS

X Fechar

Olá ,

Para o atendimento de "Consultoria Telefônica" você deverá estar de acordo com o Faturamento.

TOTVS

X Fechar

Olá,

Algo inesperado ocorreu, e o usuario nao foi reconhecido ou você nao se encontra logado

Por favor realize um novo login

Em caso de dúvidas, entre em contato com o administrador do Portal de Clientes de sua empresa para verificação do seu usuário, ou Centro de Serviços TOTVS.

Ligue! 4003-0015 opção 4 e 9 ou registre uma solicitação para CST – Cadastros . clique aqui.

TOTVS

Chat _

Preencha os campos abaixo para iniciar o atendimento:

Chat _