Árvore de páginas

Produto:

Microsiga Protheus

Ocorrência:

Como utilizar a rotina automática do Cadastro de Funcionários (GPEA010) para cadastrar um funcionário da categoria ESTAGIÁRIO ?

Passo a passo:



Na inclusão do funcionário da categoria ESTAGIÁRIO é necessário implementar a execução da rotina automática das INFORMAÇÕES EXCLUSIVAS DO ESTÁGIO após

a inclusão do funcionário conforme exemplo abaixo:


#INCLUDE "Protheus.CH"

User Function GP10ESTG()
Local aCabec        := {}                                                   
Private lMsErroAuto := .F.

//### Primeiro Funcionario Estagiário ######################################### 
aCabec   := {}
aadd(aCabec,{"RA_FILIAL"        ,"D MG 01 "                         ,Nil        })
aadd(aCabec,{"RA_MAT"           ,"000195"                           ,Nil        })
aadd(aCabec,{'RA_NOME'          ,'FUNCIONARIO EXECAUTO ESTAG'       ,Nil        })
aadd(aCabec,{'RA_SEXO'          ,'F'                                ,Nil        })
aadd(aCabec,{'RA_ESTCIVI'       ,'C'                                ,Nil        })
aadd(aCabec,{'RA_NATURAL'       ,'SP'                               ,Nil        })
aadd(aCabec,{'RA_NACIONA'       ,'10'                               ,Nil        })
aadd(aCabec,{'RA_NASC'          ,Stod('19731215')                   ,Nil        })
aadd(aCabec,{'RA_CC'            ,'000000001'                        ,Nil        })
aadd(aCabec,{'RA_ADMISSA'       ,Stod('20210505')                   ,Nil        })
aadd(aCabec,{'RA_OPCAO'         ,Stod('20210505')                   ,Nil        })
aadd(aCabec,{'RA_BCDPFGT'       ,'34100'                            ,Nil        })
aadd(aCabec,{'RA_CTDPFGT'       ,'222285'                           ,Nil        })
aadd(aCabec,{'RA_HRSMES'        ,220                                ,Nil        })
aadd(aCabec,{'RA_HRSEMAN'       ,44                                 ,Nil        })
aadd(aCabec,{'RA_CODFUNC'       ,'00001'                            ,Nil        })
aadd(aCabec,{'RA_CATFUNC'       ,'E'                                ,Nil        })
aadd(aCabec,{'RA_TIPOPGT'       ,'M'                                ,Nil        })
aadd(aCabec,{'RA_TIPOADM'       ,'9A'                               ,Nil        })
aadd(aCabec,{'RA_VIEMRAI'       ,'90'                               ,Nil        })
aadd(aCabec,{'RA_GRINRAI'       ,'50'                               ,Nil        })
aadd(aCabec,{'RA_HOPARC'        ,'1'                                ,Nil        })
aadd(aCabec,{'RA_COMPSAB'       ,'1'                                ,Nil        })
aadd(aCabec,{'RA_NUMCP'         ,'1234567'                          ,Nil        })
aadd(aCabec,{'RA_SERCP'         ,'150'                              ,Nil        })
aadd(aCabec,{'RA_TNOTRAB'       ,'001'                              ,Nil        })
aadd(aCabec,{'RA_ADTPOSE'       ,'***N**'                           ,Nil        })
aadd(aCabec,{'RA_PROCES'        ,'00001'                            ,Nil        })
aadd(aCabec,{'RA_CATEFD'        ,'901'                              ,Nil        })
aadd(aCabec,{'RA_TPCONTR'       ,'2'                                ,Nil        })
aadd(aCabec,{'RA_DTFIMCT'       ,Stod('20211231')                   ,Nil        })
aadd(aCabec,{'RA_CLAURES'       ,'2'                                ,Nil        })

// Grava dados do funcionário ESTAGIÁRIO
U_Envia(aCabec)

// Grava dados dAS INF. EXCLUSIVAS ESTÁGIO
U_GP920AUT(aCabec)

Return(.T.)

/*------------------------------------------------------------------------
GRAVACAO DO FUNCIONARIO ESTAGIARIO
------------------------------------------------------------------------*/
USER Function Envia(aCabec)

// Faz a chamada da rotina de cadastro de funcionários (opção 3 - Inclusão) 
MSExecAuto({|x,y,k,wGPEA010(x,y,k,w)},NIL,NIL,aCabec,3)  

If !lMsErroAuto 
    Conout("Dados de funcionario incluido com sucesso!")    
Else
    MostraErro()
EndIf

Return(.T.)

/*------------------------------------------------------------------------
GRAVACAO DAS INFORMACOES EXCLUSIVAS DE ESTAGIO
------------------------------------------------------------------------*/
User Function GP920AUT(aCabec)
Local aErro         := {}
Local cArqErrAuto   := ""
Local oModel        := Nil
Local lRet          := .T.

oModel := FwLoadModel("GPEA920")
oModel:SetOperation(3)
oModel:Activate()

oModel:LoadValue("SRATITLE" , "RA_MAT"      , aCabec[2][2] )
oModel:LoadValue("SRATITLE" , "RA_NOME"     , aCabec[3][2])
oModel:LoadValue("SRATITLE" , "RA_ADMISSA"  , aCabec[10][2])

oModel:SetValue("RFSMASTER","RFS_FILIAL"    ,aCabec[1][2])
oModel:SetValue("RFSMASTER","RFS_MAT"       ,aCabec[2][2])
oModel:SetValue("RFSMASTER","RFS_NATUR"     ,"2")
oModel:SetValue("RFSMASTER","RFS_NIVEL"     ,"4")
oModel:SetValue("RFSMASTER","RFS_ATUA"      ,"TECNOLOGIA")
oModel:SetValue("RFSMASTER","RFS_DTFIM"     ,StoD("20211231"))
oModel:SetValue("RFSMASTER","RFS_ENTIDA"    ,"0003")
oModel:SetValue("RFSMASTER","RFS_AGENTE"    ,"0001")
oModel:SetValue("RFSMASTER","RFS_COORD"     ,"000002")


If oModel:VldData()
    oModel:CommitData()
    conout("Dados de INF. EXCL. ESTAGIO do funcionario incluidos com sucesso!!")
Else
    aErro := oModel:GetErrorMessage()

    cArqErrAuto := "Id do formulario de origem:"' [' + AllToCharaErro[1] ) + ']' + Chr(13) + Chr(10)
    cArqErrAuto += "Id do campo de origem: " + ' [' + AllToCharaErro[2] ) + ']' + Chr(13) + Chr(10)
    cArqErrAuto += "Id do formulario de erro: " + ' [' + AllToCharaErro[3] ) + ']' + Chr(13) + Chr(10)
    cArqErrAuto += "Id do campo de erro: " + ' [' + AllToCharaErro[4] ) + ']' + Chr(13) + Chr(10)
    cArqErrAuto += "Id do erro: " + ' [' + AllToCharaErro[5] ) + ']' + Chr(13) + Chr(10)
    cArqErrAuto += "Mensagem do erro: " + ' [' + AllToCharaErro[6] ) + ']' + Chr(13) + Chr(10)
    cArqErrAuto += "Mensagem da solucao: " + ' [' + AllToCharaErro[7] ) + ']' + Chr(13) + Chr(10)
    cArqErrAuto += "Valor atribuido: " + ' [' + AllToCharaErro[8] ) + ']' + Chr(13) + Chr(10)
    cArqErrAuto += "Valor anterior: " + ' [' + AllToCharaErro[9] ) + ']' + Chr(13) + Chr(10)

    Alert ('Falha no ExecAuto MVC: ' + (Chr(13) + Chr(10)) + cArqErrAuto)

EndIf

oModel:DeActivate()
oModel:Destroy()
oModel := NIL

Return(.T.)



  Observações:

Documentação de apoio para criação da rotina automática:

Exemplo de Rotina Automática - Cadastro de Funcionários - GPEA010