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:

#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á.




<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>