Tempo aproximado para leitura: 00:03:00
Dúvida
Como realizar a inclusão ou alteração de Funcionário via Execauto no GPEA010?
Ambiente
TOTVS RH - TOTVS RH (Linha Protheus) - Gestão de Pessoas - Todas as versões
Solução
Através da execução deste Execauto, é possível automatizar a entrada de dados na tabela SRA - Cadastro de Funcionários.
Na chamada da rotina GPEA010, deve ser informado um array, por exemplo: aCabec, que irá corresponder aos dados da tabela SRA.
Sintaxe:
{ {"RA_FILIAL" , conteudo1, NIL},;
{"RA_MAT" , conteudo2, NIL};
{campoAdicional3 , conteudo3, Nil},;
{campoAdicional4 , conteudo4 Nil};
}
É importante realizar uma análise cuidadosa na passagem dos campos e de seus conteúdos, não somente informar os campos obrigatórios, mas também fornecer campos adicionais que podem ser necessários devido a regra de negócio envolvida.
Processos que podem ser executados pelo Execauto:
> nOpc = 3 - Inclusão
> nOpc = 4 - Alteração
Exemplo de inclusão:
//Esta rotina tem a finalidade de efetuar o lancamento automatico de funcionarios
//atraves do mecanismo de rotina automatica.
//Nesse exemplo, a chamada da funcao U_GP010AUT deve ser realizada a partir do menu.
User Function GP010AUT()
Local aCabec := {}
PRIVATE lMsErroAuto := .F.
//### Primeiro Funcionario ######################################### //
//-- Inclusao de 1 funcionario da matricula '000009'
aCabec := {}
aadd(aCabec,{"RA_FILIAL" ,"M SP 01 " ,Nil })
aadd(aCabec,{"RA_MAT" ,"000009" ,Nil })
aadd(aCabec,{'RA_NOME' ,'TESTE EXECAUTO' ,Nil })
aadd(aCabec,{'RA_SEXO' ,'F' ,Nil })
aadd(aCabec,{'RA_RACACOR' ,'2' ,Nil })
aadd(aCabec,{'RA_NASC' ,Stod('19901215') ,Nil })
aadd(aCabec,{'RA_ESTCIVI' ,'S' ,Nil })
aadd(aCabec,{'RA_CPAISOR' ,'01058' ,Nil })
aadd(aCabec,{'RA_NACIONA' ,'10' ,Nil })
aadd(aCabec,{'RA_NACIONC' ,'01058' ,Nil })
aadd(aCabec,{'RA_NATURAL' ,'SP' ,Nil })
aadd(aCabec,{'RA_NCODMUNN' ,'50308' ,Nil })
aadd(aCabec,{'RA_GRINRAI' ,'50' ,Nil })
aadd(aCabec,{'RA_CC' ,'01' ,Nil })
aadd(aCabec,{'RA_ADMISSA' ,Stod('20240102') ,Nil })
aadd(aCabec,{'RA_TIPOADM' ,'9B' ,Nil })
aadd(aCabec,{'RA_OPCAO' ,Stod('20240102') ,Nil })
aadd(aCabec,{'RA_BCDPFGT' ,'34100' ,Nil })
aadd(aCabec,{'RA_CTDPFGT' ,'222285' ,Nil })
aadd(aCabec,{'RA_HRSMES' ,220 ,Nil })
aadd(aCabec,{'RA_PROCES' ,'00001' ,Nil })
aadd(aCabec,{'RA_CATFUNC' ,'M' ,Nil })
aadd(aCabec,{'RA_HRSEMAN' ,44 ,Nil })
aadd(aCabec,{'RA_CODFUNC' ,'01' ,Nil })
aadd(aCabec,{'RA_HOPARC' ,'1' ,Nil })
aadd(aCabec,{'RA_SINDICA' ,'01' ,Nil })
aadd(aCabec,{'RA_TIPOPGT' ,'M' ,Nil })
aadd(aCabec,{'RA_VIEMRAI' ,'10' ,Nil })
aadd(aCabec,{'RA_CATEFD' ,'101' ,Nil })
aadd(aCabec,{'RA_COMPSAB' ,'1' ,Nil })
aadd(aCabec,{'RA_CIC' ,'77913603062' ,Nil })
aadd(aCabec,{'RA_TNOTRAB' ,'01' ,Nil })
aadd(aCabec,{'RA_REGRA' ,'01' ,Nil })
aadd(aCabec,{'RA_SEQTURN' ,'01' ,Nil })
aadd(aCabec,{'RA_TIPENDE' ,'2' ,Nil })
aadd(aCabec,{'RA_LOGRTP' ,'R' ,Nil })
aadd(aCabec,{'RA_LOGRDSC' ,'TESTE' ,Nil })
aadd(aCabec,{'RA_NUMENDE' ,'100' ,Nil })
aadd(aCabec,{'RA_BAIRRO' ,'JD TESTE' ,Nil })
aadd(aCabec,{'RA_ESTADO' ,'SP' ,Nil })
aadd(aCabec,{'RA_CODMUN' ,'50308' ,Nil })
aadd(aCabec,{'RA_CEP' ,'01000000' ,Nil })
aadd(aCabec,{'RA_ADTPOSE' ,'***N**' ,Nil })
U_Envia(aCabec)
Return(.T.)
//-- Funcao criada para exemplificar a chamada da execução da rotina de cadastro de funcionarios
USER Function Envia(aCabec)
//-- Faz a chamada da rotina de cadastro de funcionarios (opção 3)
MSExecAuto({|x,y,k,w| GPEA010(x,y,k,w)},NIL,NIL,aCabec,3) //-- Opcao 3 - Inclusao registro
//-- Retorno de erro na execucao da rotina
If lMsErroAuto
// VALIDAÇÃO DE ERRO NA ROTINA
If (!lMsErroAuto) // OPERAÇÃO FOI EXECUTADA COM SUCESSO
ConOut(PadC("Automatic routine successfully ended", 80))
Else // OPERAÇÃO EXECUTADA COM ERRO
If (!IsBlind()) // COM INTERFACE GRÁFICA
MostraErro()
Else // EM ESTADO DE JOB
cError := MostraErro("/dirdoc", "error.log") // ARMAZENA A MENSAGEM DE ERRO
ConOut(PadC("Automatic routine ended with error", 80))
ConOut("Error: "+ cError)
EndIf
EndIf
/** DEMAIS PROCESSO EXECUTADO PELO FONTE **/
EndIf
Return(.T.)
Importante:
Para alterar o campo Nome (RA_NOME), é necessário definir um índice da tabela SRA que será utilizado para passagem no array aCabec. Para mais informações, acesse este link.
Para que seja possível gravar o valor de salário (RA_SALARIO) passado no fonte do Execauto, é necessário que o parâmetro MV_ALTSAL esteja com conteúdo N, caso contrário, o sistema por padrão utiliza o salário informado no cadastro da Função vinculada ao Funcionário.
Saiba Mais:
RH - Linha Protheus - GPE - Como realizar o cadastro/admissão de Funcionário
0 Comentários