Passo a passo:
O execauto de inclusão controle do funcionário com sequencial de matrícula automático , na inclusão do funcionário poderá ser feito conforme o exemplo abaixo: das seguintes formas:
Deck of CardsstartHidden false history false id exemplos
Carddefault true id manual label Controle de Numeração Manual title Controle de Numeração Manual
Nesse exemplo o controle de numeração fica a cargo do fonte que faz o execauto:
Bloco de código#INCLUDE "Protheus.CH"
#Include "TBICONN.CH"
#Include '
Bloco de código#INCLUDE "Protheus.CH"
#Include "TBICONN.CH"
#Include ' FWMVCDef.ch'
User Function GP010AUT()
Local aCabec := {}
Local cRaFil := "D MG 01 "
Local cRaMat := ""
Local cMvMatricu := ""
Private lMsErroAuto := .F.
// RESET ENVIRONMENT
// RPCSetType(3)
// PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cRaFil TABLES "SRA " MODULO "GPE"
// Tratamento para sequencia de matricula automatica conforme MV_MATRICU
cMvMatricu := StrTran(SuperGetMv("MV_MATRICU",NIL,"0"), '"', '')
If !Empty(cMvMatricu) .And. cMvMatricu != "0"
If cMvMatricu == "1" // 1-Numeração automática por Filial
cRaMat := GetSx8Num("SRA", "RA_MAT")
ElseIf cMvMatricu == "2" // 2-Numeração automática por Empresa
cRaMat := GetSx8Num("SRA", "RA_MAT", FwCodEmp("SRA") + "\SRA\RA_MAT")
Else //3-Numeração automática por Grupo de Empresas
cRaMat := GetSx8Num("SRA", "RA_MAT", FWGrpCompany() + "\GRPEMP\SRA\RA_MAT")
EndIf
EndIf cRaMat := GetSx8Num("SRA", "RA_MAT")
ElseIf cMvMatricu == "2" // 2-Numeração automática por Empresa
cRaMat := GetSx8Num("SRA", "RA_MAT", FwCodEmp("SRA") + "\SRA\RA_MAT")
Else //3-Numeração automática por Grupo de Empresas
cRaMat := GetSx8Num("SRA", "RA_MAT", FWGrpCompany() + "\GRPEMP\SRA\RA_MAT")
EndIf
EndIf
// Informações do Funcionario
aAdd(aCabec, {"RA_FILIAL" , cRaFil , Nil})
aAdd(aCabec, {"RA_MAT" , cRaMat , Nil})
aAdd(aCabec, {"RA_CC" , "000000001" , Nil})
aAdd(aCabec, {"RA_CODFUNC" , "00001" , Nil})
aAdd(aCabec, {"RA_TNOTRAB" , "001" , Nil})
aAdd(aCabec, {"RA_REGRA" , "01" , Nil})
aAdd(aCabec, {"RA_SEQTURN" , "01" , Nil})
aAdd(aCabec, {"RA_SERCP" , "00010" , Nil})
aAdd(aCabec, {"RA_UFCP" , "MG" , Nil})
aAdd(aCabec, {"RA_RGEXP" , "SSP" , Nil})
aAdd(aCabec, {"RA_RGUF" , "MG" , Nil})
aAdd(aCabec, {"RA_TIPENDE" , "2" , Nil})
aAdd(aCabec, {"RA_ESTADO" , "MG" , Nil})
aAdd(aCabec, {"RA_CEP" , "30710560" , Nil})
aAdd(aCabec, {"RA_LOGRTP" , "R" , Nil})
aAdd(aCabec, {"RA_LOGRDSC" , "XXX" , Nil})
aAdd(aCabec, {"RA_LOGRNUM" , "123" , Nil})
aAdd(aCabec, {"RA_CODMUN" , "06200" , Nil})
aAdd(aCabec, {"RA_BAIRRO" , "CENTRO" , Nil})
aAdd(aCabec, {"RA_ADMISSA" , CTOD("01/01/2025") , Nil})
aAdd(aCabec, {"RA_OPCAO" , CTOD("01/01/2025") , Nil})
aAdd(aCabec, {"RA_TIPOADM" , "9B" , Nil})
aAdd(aCabec, {"RA_HRSMES" , 200 , Nil})
aAdd(aCabec, {"RA_HRSEMAN" , 40 , Nil})
aAdd(aCabec, {"RA_HRSDIA" , 6.6667 , Nil})
aAdd(aCabec, {"RA_CATFUNC" , "M" , Nil})
aAdd(aCabec, {"RA_TIPOPGT" , "M" , Nil})
aAdd(aCabec, {"RA_CATEFD" , "101" , Nil})
aAdd(aCabec, {"RA_VIEMRAI" , "10" , Nil})
aAdd(aCabec, {"RA_SINDICA" , "01" , Nil})
aAdd(aCabec, {"RA_SALARIO" , 10000 , Nil})
aAdd(aCabec, {"RA_NOME" , "TESTE EXECAUTO ", Nil})
aAdd(aCabec, {"RA_SEXO" , "M" , Nil})
aAdd(aCabec, {"RA_RACACOR" , "8" , Nil})
aAdd(aCabec, {"RA_NASC" , CTOD("01/01/1990") , Nil})
aAdd(aCabec, {"RA_ESTCIVI" , "C" , Nil})
aAdd(aCabec, {"RA_CPAISOR" , "01058" , Nil})
aAdd(aCabec, {"RA_NACIONA" , "10" , Nil})
aAdd(aCabec, {"RA_NACIONC" , "01058" , Nil})
aAdd(aCabec, {"RA_NATURAL" , "MG" , Nil})
aAdd(aCabec, {"RA_CODMUNN" , "06200" , Nil})
aAdd(aCabec, {"RA_GRINRAI" , "55" , Nil})
aAdd(aCabec, {"RA_PROCES" , "00001" , Nil})
aAdd(aCabec, {"RA_CIC" , "79885094032" , Nil})
aAdd(aCabec, {"RA_PIS" , "15136785610" , Nil})
aAdd(aCabec, {"RA_RG" , "192305062" , Nil})
U_Envia(aCabec)
Return(.T.)
User Function Envia(aCabec)
MSExecAuto({|x,y,k,w| GPEA010(x,y,k,w)},NIL,NIL,aCabec, 3) // 3-Inclusão
//-- Retorno de erro na execução da rotina
If lMsErroAuto
MostraErro()
Else
CONOUT("Processo finalizado com sucesso.")
EndIf
Return(.T.)
Carddefault true id branco label Controle a cargo da rotina padrão. title Controle a cargo da rotina padrão, não havendo necessidade de informar a matricula no array.
Controle de numeração a cargo da rotina GPEA010.
InformaçõesRequer gpea010.prx igual ou superior a 21/11/2025 .
Não informar a matricula no array aCabec .
Bloco de código#INCLUDE "Protheus.CH"
#Include "TBICONN.CH"
#Include 'FWMVCDef.ch'
User Function GP010AUT()
Local aCabec := {}
Local cRaFil := "D MG 01 "
Local cRaMat := ""
Local cMvMatricu := ""
Private lMsErroAuto := .F.
//RESET ENVIRONMENT
//RPCSetType(3)
//PREPARE ENVIRONMENT EMPRESA "T1" FILIAL cRaFil TABLES "SRA " MODULO "GPE"
// Informações do Funcionario
aAdd(aCabec, {"RA_FILIAL" , cRaFil , Nil})
// aAdd(aCabec, {"RA_MAT" , cRaMat , Nil})
aAdd(aCabec, {"RA_CC" , "000000001" , Nil})
aAdd(aCabec, {"RA_CODFUNC" , "00001" , Nil})
aAdd(aCabec, {"RA_TNOTRAB" , "001" , Nil})
aAdd(aCabec, {"RA_REGRA" , "01" , Nil})
aAdd(aCabec, {"RA_SEQTURN" , "01" , Nil})
aAdd(aCabec, {"RA_SERCP" , "00010" , Nil})
aAdd(aCabec, {"RA_UFCP" , "MG" , Nil})
aAdd(aCabec, {"RA_RGEXP" , "SSP" , Nil})
aAdd(aCabec, {"RA_RGUF" , "MG" , Nil})
aAdd(aCabec, {"RA_TIPENDE" , "2" , Nil})
aAdd(aCabec, {"RA_ESTADO" , "MG" , Nil})
aAdd(aCabec, {"RA_CEP" , "30710560" , Nil})
aAdd(aCabec, {"RA_LOGRTP" , "R" , Nil})
aAdd(aCabec, {"RA_LOGRDSC" , "XXX" , Nil})
aAdd(aCabec, {"RA_LOGRNUM" , "123" , Nil})
aAdd(aCabec, {"RA_CODMUN" , "06200" , Nil})
aAdd(aCabec, {"RA_BAIRRO" , "CENTRO" , Nil})
aAdd(aCabec, {"RA_ADMISSA" , CTOD("01/01/2025") , Nil})
aAdd(aCabec, {"RA_OPCAO" , CTOD("01/01/2025") , Nil})
aAdd(aCabec, {"RA_TIPOADM" , "9B" , Nil})
aAdd(aCabec, {"RA_HRSMES" , 200 , Nil})
aAdd(aCabec, {"RA_HRSEMAN" , 40 , Nil})
aAdd(aCabec, {"RA_HRSDIA" , 6.6667 , Nil})
aAdd(aCabec, {"RA_CATFUNC" , "M" , Nil})
aAdd(aCabec, {"RA_TIPOPGT" , "M" , Nil})
aAdd(aCabec, {"RA_CATEFD" , "101" , Nil})
aAdd(aCabec, {"RA_VIEMRAI" , "10" , Nil})
aAdd(aCabec, {"RA_SINDICA" , "01" , Nil})
aAdd(aCabec, {"RA_SALARIO" , 10000 , Nil})
aAdd(aCabec, {"RA_NOME" , "TESTE EXECAUTO ", Nil})
aAdd(aCabec, {"RA_SEXO" , "M" , Nil})
aAdd(aCabec, {"RA_RACACOR" , "8" , Nil})
aAdd(aCabec, {"RA_NASC" , CTOD("01/01/1990") , Nil})
aAdd(aCabec, {"RA_ESTCIVI" , "C" , Nil})
aAdd(aCabec, {"RA_CPAISOR" , "01058" , Nil})
aAdd(aCabec, {"RA_NACIONA" , "10" , Nil})
aAdd(aCabec, {"RA_NACIONC" , "01058" , Nil})
aAdd(aCabec, {"RA_NATURAL" , "MG" , Nil})
aAdd(aCabec, {"RA_CODMUNN" , "06200" , Nil})
aAdd(aCabec, {"RA_GRINRAI" , "55" , Nil})
aAdd(aCabec, {"RA_PROCES" , "00001" , Nil})
aAdd(aCabec, {"RA_CIC" , "79885094032" , Nil})
aAdd(aCabec, {"RA_PIS" , "15136785610" , Nil})
aAdd(aCabec, {"RA_RG" , "192305062" , Nil})
U_Envia(aCabec)
Return(.T.)
User Function Envia(aCabec)
MSExecAuto({|x,y,k,w| GPEA010(x,y,k,w)},NIL,NIL,aCabec, 3) // 3-Inclusão
//-- Retorno de erro na execução da rotina
If lMsErroAuto
MostraErro()
Else
CONOUT("Processo finalizado com sucesso.")
EndIf
Return(.T.)