Árvore de páginas


01. DADOS GERAIS

Linha de Produto:Microsiga Protheus
Segmento:Recursos Humanos
Módulo:SIGAGPE
Função:

GPEA240.PRW

Ticket:7522183
Requisito/Story/Issue:DRHGCH-15477


02. SITUAÇÃO/REQUISITO

Para empleados que ya tienen registros de ausencias se identifica que al utilizar MsExecAuto “GP240INC” opción 3 para inclusión de ausencias en la ejecución de la función, borra el primer registro de la tabla SR8 generando inconsistencia de información. 

03. SOLUÇÃO

Identificamos que estava sendo utilizado a versão antiga do execauto.

Reforçamos que na versão 12 o correto é utilizar a versão MVC da rotina.

Exemplo:

GP240INC
#INCLUDE 'PROTHEUS.CH'
#INCLUDE "TBICONN.CH"

User Function GP240INC()
    Local oModel    := Nil
    Local oSubMdl   := Nil
    Local nI := 0
    Local aCab := {}
    Local aItem:= {}
    Local aItens:={}
    Local aSeek:= {}
    Local nTam      := TamSx3("R8_SEQ")[1]
    Local nSeq      := 0
    
    Local cRAFilial	:= "01"
    Local cMat		:= "00010"
    Local dStart 	:= Date()
     
    Private cProcesso := ""
    
    aEval({'SRA','SR8'},{|x|CHKFILE(x)})
     
    SRA->(DbSetOrder(1))     
    If(SRA->(DbSeek(cRAFilial + cMat)))
        oModel := FWLoadModel("GPEA240")
        oModel:SetOperation(4)          
        if(oModel:Activate())              
            oSubMdl := oModel:GetModel("GPEA240_SR8")          
            if(oSubMdl:Length() > 1)                
                nSeq := oSubMdl:AddLine()
            else
                if(oSubMdl:IsInserted())
                    nSeq := 1
                else
                    nSeq := oSubMdl:AddLine()
                endIf
            endIf
            oSubMdl:SetValue("R8_FILIAL", xFilial("SR8"))
            oSubMdl:SetValue("R8_MAT"   , SRA->RA_MAT)
            oSubMdl:SetValue("R8_DATA"  , dStart)
            oSubMdl:SetValue("R8_SEQ"   , StrZero(nSeq,nTam))
            oSubMdl:SetValue("R8_TIPOAFA"   , "001")
            oSubMdl:SetValue("R8_PD"        , "305")
            oSubMdl:SetValue("R8_DATAINI"   , dStart)
            oSubMdl:SetValue("R8_DATAFIM"   , dStart)              
            oSubMdl:SetValue("R8_DURACAO"   , 1)
            oSubMdl:SetValue("R8_PROCES"    , SRA->RA_PROCES)
            oSubMdl:SetValue("R8_PER"       , AnoMes(dStart))
            oSubMdl:SetValue("R8_NUMPAGO"   , "01")
             
            if(oModel:VldData())
                oModel:CommitData()
            else
                aLog := oModel:GetErrorMessage()               
                aEval(aLog,{|x|ConOut(x)})                             
            endIf          
        endIf
    else
        ConOut("Matrícula inválida -> "+cMat)
    endIf  
Return

04. DEMAIS INFORMAÇÕES

Para uso da rotina de execauto do GPEA240 no Protheus 11, deve-se considerar a documentação presente no link abaixo:

Exemplo de Rotina Automática - Cadastro de Afastamentos - GPEA240

05. ASSUNTOS RELACIONADOS

Não há.