SRA e o cadastro mestre de funcionarios. Centraliza dados pessoais, contratuais, fiscais. Em ambiente com SIGAGPE (Folha de Pagamento), SRA e usado por dezenas de outras tabelas (SRD eventos, SRC ferias, etc).
Campos principais
| Campo | Tipo | Descricao |
|---|
| RA_FILIAL | C | Filial |
| RA_MAT | C | Matricula |
| RA_NOME | C | Nome |
| RA_CIC | C | CPF |
| RA_RG | C | RG |
| RA_NASC | D | Data nascimento |
| RA_SEXO | C | M=Masc, F=Fem |
| RA_ESTCIVI | C | Estado civil |
| RA_EMAIL | C | Email |
| RA_CARGO | C | Cargo |
| RA_DEPTO | C | Departamento |
| RA_CC | C | Centro de custo |
| RA_SALARIO | N | Salario |
| RA_ADMISSA | D | Data admissao |
| RA_DEMISSA | D | Data demissao |
| RA_SITFOLH | C | D=Demitido, em outros estados |
| RA_CATFUNC | C | Categoria funcional (eSocial) |
| RA_NUMCP | C | PIS/PASEP |
| RA_DEPSIRF | N | Dependentes IRRF |
Indices
| Ordem | Chave |
|---|
| 1 | RA_FILIAL+RA_MAT |
| 2 | RA_FILIAL+RA_NOME |
| 3 | RA_FILIAL+RA_CIC |
Codigo tipico
// Buscar funcionario
SRA->(DBSetOrder(1))
If SRA->(DBSeek(xFilial("SRA") + cMat))
cNome := AllTrim(SRA->RA_NOME)
cCargo := SRA->RA_CARGO
nSalario := SRA->RA_SALARIO
EndIf
// Funcionarios ativos
SRA->(DBSetOrder(1))
SRA->(DBSeek(xFilial("SRA")))
While !SRA->(Eof()) .And. SRA->RA_FILIAL == xFilial("SRA")
If Empty(SRA->RA_DEMISSA)
nQtd++ // ativos
EndIf
SRA->(DBSkip())
EndDo
Tabelas relacionadas
| Tabela | Relacao |
|---|
| SRC | Ferias |
| SRD | Eventos folha (calculados) |
| SRE | Estagiarios |
| SR7 | Atestados medicos |
| SQB | Avaliacao desempenho |
Pegadinhas
- LGPD CRITICA: SRA contem PII sensivel (CPF, RG, salario). Mascarar em relatorios.
- Demissao: RA_DEMISSA preenchido + RA_SITFOLH = "D". Nao apagar registro fisicamente.
- eSocial exige campos especificos cadastrados — categoria funcional, FGTS, etc.
- Em base multi-filial, mesmo CPF em filiais diferentes = registros distintos.
- Mudanca salarial gera SRB (historico) — confirmar gravacao paralela.