Dicas para utilizar regras
Abaixo algumas dicas importantes referente a utilização de regras do Gestão do Ponto:
Ler campos de usuário em tabelas do sistema
Para ler informações dos campos de usuário, é necessário utilizar o cursor, também, de acordo com os exemplos utilizados para "Ler informações das tabelas do sistema".
Para isso, basta utilizar a função get + nome do campo.
Ler informações de tabelas de usuário
Para ler informações de tabelas de usuário é necessário utilizar o cursor.
import com.senior.ContextoGeralRH;
import com.senior.dataset.ICursor;
import com.senior.dataset.MappedParamProvider;
import com.senior.rh.entities.readonly.IR010SIT;
import com.senior.rh.entities.readonly.IR014SIN;
import custom.senior.apuracao.Apuracao;
import custom.senior.apuracao.ContextoApuracao;
public class RegraApuracao2 extends Apuracao {
private ContextoApuracao contextoApuracao;
private ContextoGeralRH ContextoGeralRH;
public void execute() {
MappedParamProvider param = new MappedParamProvider();
ICursor<IUSU_CalHor> c_fil = getContainer().getEntitySession().newCursor(IUSU_CalHor.class);
c_fil.addFilter("USU_NumEmp = 1 and USU_CodFil = 3", param);
c_fil.open();
try {
if (c_fil.first()) {
IUSU_CalHor usu = c_fil.read();
int campo = usu.getUSU_campo();
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
Ler informações de tabelas do sistema
Com utilização do filtro fixo
import br.com.senior.rh.util.CursorUtil;
import com.senior.ContextoGeralRH;
import com.senior.dataset.ICursor;
import com.senior.rh.entities.readonly.IR010SIT;
import custom.senior.apuracao.Apuracao;
import custom.senior.apuracao.ContextoApuracao;
public class RegraApuracao extends Apuracao {
private ContextoApuracao contextoApuracao;
private ContextoGeralRH ContextoGeralRH;
public void execute() {
ICursor<IR010SIT> c_sit = getContainer().getEntitySession().newCursor(IR010SIT.class);
c_sit.addFilter("SitDiu='N' and ConNot='N' and TipSit <> 16 ");
c_sit.open();
try {
while (c_sit.next()) {
IR010SIT situacao = c_sit.read();
int zcodsit = situacao.getCodSit();
}
} finally {
c_sit.close();
}
}
}
Com utilização do filtro com variáveis
import br.com.senior.rh.util.CursorUtil;
import com.senior.ContextoGeralRH;
import com.senior.dataset.ICursor;
import com.senior.dataset.MappedParamProvider;
import com.senior.rh.entities.readonly.IR014SIN;
import custom.senior.apuracao.Apuracao;
import custom.senior.apuracao.ContextoApuracao;
public class RegraApuracao1 extends Apuracao {
private ContextoApuracao contextoApuracao;
private ContextoGeralRH ContextoGeralRH;
public void execute() {
int xcodsin = 10;
MappedParamProvider params = new MappedParamProvider();
params.setParam("CodSin", xcodsin);
ICursor<IR014SIN> c_14sin = getContainer().getEntitySession().newCursor(IR014SIN .class);
c_14sin.addFilter("CodSin=:codSin", params);
c_14sin.open();
try {
if (c_14sin.first()) {
IR014SIN sindicato = c_14sin.read();
int zcoddsi = sindicato.getCodDSi();
}
} finally {
c_14sin.close();
}
}
}
Manipular informações em campos de usuários em tabelas do sistema
- Utilize o cursor para atualizar informações em campos de usuário;
- Utilize o método "set..." do cursor para atualizar a informação;
- Utilize o método "update" do cursor para salvar as informações alteradas.
Manipular informações em tabelas de usuário
Através do cursor é possivel manipular informações em tabelas de usuário.
Exclusão e inclusão
import org.joda.time.LocalDate;
import br.com.senior.rh.util.CursorUtil;
import com.senior.dataset.ICursor;
import com.senior.dataset.MappedParamProvider;
import custom.senior.apuracao.Apuracao;
public class RegraApuracao3 extends Apuracao {
public void execute() {
int nnumemp = 1;
int ntipcol = 1;
int nnumcad = 100;
LocalDate ddatpro = new LocalDate ();
MappedParamProvider paramC = new MappedParamProvider();
paramC.setParam("numemp", nnumemp);
paramC.setParam("tipcol", ntipcol);
paramC.setParam("numCad", nnumcad);
ICursor<USU_118> c_tsal118 = getContainer().getEntitySession().newCursor(USU_118.class);
c_tsal118.addFilter("USU_NumEmp=:numemp and USU_TipCol=:tipcol and USU_NumCad=:numcad", paramC);
c_tsal118.open();
try {
if (c_tsal118.first()) {
c_tsal118.remove();
}
} finally {
c_tsal118.close();
}
ICursor<USU_118> INS118 = getContainer().getEntitySession().newCursor(USU_118.class);
try {
INS118.open();
USU_118 acerto = INS118.newBuffer();
acerto.setUSU_NumEmp(nnumemp);
acerto.setUSU_TipCol(ntipcol);
acerto.setUSU_NumCad(nnumcad);
acerto.setUSU_DatAlt(ddatpro);
INS118.insert(acerto);
}finally{
INS118.close();
}
}
}
Utilizar classes disponíveis pelo sistema
É indicada a utilização somente das classes disponibilizadas pelo Gestão do Ponto. Caso utilize alguma classe não indicada, por exemplo as internas utilizadas pela rotina do sistema (import br.com.senior.rh.util.Periodo e import br.com.senior.rh.util.Repositorio), caso tenha alguma alteração no sistema e elas sejam movidas para outro local, as regras utilizadas irão apresentar erro de compilação.
Restrições
As seguintes funcionalidades não estão disponíveis nas regras do Gestão do Ponto:
- Alterar informações em tabelas do sistema, exceto em campos de usuário;
- Excluir informações de tabelas do sistema.