Gestão de Pessoas - Manual do Usuário > Informações adicionais > Informações técnicas > Tabelas > Tabelas externas

Tabelas Externas

Documentação sobre a rotina de Tabelas Externas

Esta rotina permite o uso de tabelas de usuário na inclusão de Empregados, Terceiros, Parceiros, Ficha Complementar e Outras Empresas.

Na tela de Assinalamento há a página Tabelas Externas, que permite ao usuário configurar a chamada de uma consulta (B2) para uma tabela de usuário na inclusão de Empregados, Terceiros, Parceiros e Outras Empresas.

Configuração dos campos

Usa Tabela Externa - o assinalamento "I" indica que o usuário irá informar o cadastro do colaborador e a consulta para a tabela externa será chamada na saída do campo colaborador;

Pessoas

Nome Tabela Externa - indicar o nome da tabela de usuário

Nome Campo Pessoa Empregados - nome do campo da tela de Empregados relacionado com o campo da chave primária da tabela de usuário

Nome Campo Pessoa Terceiros - idem, para a tela de terceiros

Nome Campo Pessoa Parceiros - idem, para a tela de parceiros

Nome Campo Chave Tabela Externa - nome do campo da chave primária da tabela de usuário

Outras Empresas

Nome Tabela Externa - nome da tabela de usuário

Nome Campo Outra Empresa - nome do campo da tela de Outras Empresas relacionado com o campo da chave primária da tabela de usuário

Nome Campo Chave Tabela Externa - nome do campo da chave primária da tabela de usuário

Nas telas de cadastramento de Empregados, Terceiros, Parceiros e Outras Empresas, após selecionado um registro na consulta da tabela externa será chamada uma regra, que pode ser definida na tela de Regras por Processo através dos seguintes códigos:

38 - Tabela Externa Empregados

39 - Tabela Externa Terceiros

40 - Tabela Externa Parceiros

42 - Tabela Externa Outras Empresas

Estas regras têm o objetivo de atribuir valores de campos das tabelas externas para as respectivas telas.

É possível também cadastrar uma regra para a tela Ficha Complementar através do código:

41 - Tabela Externa Ficha Complementar. Esta regra tem o objetivo de atribuir valores da tabela externa para a tela ficha complementar na inclusão; neste caso não será chamada a consulta para a tabela externa, pois estará gravado na tabela R034FUN em um campo de usuário o código de pessoa que é necessário para buscar os dados da tabela externa.

Foi criada a regra por processo 37 - Após Inserir Registro Ficha Básica; nesta regra o usuário pode criar registros para tabelas filhas do colaborador.

Existe uma variável de sistema que guarda o código da pessoa/outra empresa após a chamada da consulta da tabela externa: CodPesExt.

Uso de Sequence no oracle:

O que é uma sequence?

É um objeto do banco oracle que gera uma sequência numérica de valores inteiros, que pode ser utilizado para criar uma chave primária automaticamente.

Foi criada a função de programador RetornaSequencia(Alfa Nome_Sequencia, Alfa Servico, Numero End Valor_Retorno).

Parâmetros:

Este recurso funciona somente para o banco oracle, a função faz um select na sequence informada no primeiro parâmetro, e atribui para Valor_Retorno o código corrente ou o próximo, de acordo com o segundo parâmetro. Se ocorrer algum erro na execução do select ou se o banco de dados não for o oracle, a função retorna -1.

Esta função pode ser chamada na execução da regra por processo 23 - Número do novo cadastro, que é acionada ao clicar no botão Novo Cadastro das telas de Empregados, Terceiros e Parceiros, para atribuir o código desejado para o cadastro do colaborador.

Comando para criar uma sequence (executado no banco oracle): CREATE SEQUENCE <nome da sequence>. Este comando criará uma sequence que inicia com o código 1, este será o primeiro código retornado por ela.

Para evitar que ocorra erro de que a sequence retorne um código já cadastrado na ficha básica, pode ser criada uma sequencia que inicie com um determinado código: CREATE SEQUENCE <nome da sequence> START WITH <código desejado>. O código informado será o primeiro código retornado pela sequence.

Após criar a sequence, ao chamar a função RetornaSequencia pela primeira vez, não é possível usar o serviço corrente, pois a sequence retornará erro. Usando o serviço proximo na primeira vez, a sequence retornará o primeiro código disponível, e mesmo que a inclusão do colaborador for cancelada, ao chamar novamente a função RetornaSequencia com o serviço proximo, a sequence retornará o próximo código; neste caso, se o usuário quiser usar o código que foi cancelado, deve usar o serviço corrente.

Se o usuário não quiser usar a sequence para gerar o cadastro do colaborador, pode informar o código manualmente na ficha básica.

Tendo uma regra por processo para gerar o cadastro do colaborador através de uma sequence, este recurso pode ser utilizado para todas as empresas. Caso o usuário queira consistir de forma diferenciada por empresa, pode fazê-lo via regra.

Diferença entre o botão Novo Cadastro e a função RetornaSequencia: sem ter uma regra por processo que consista o botão Novo Cadastro, este vai procurar na tabela R034FUN o primeiro cadastro livre para o empregado, o terceiro ou o parceiro; usando a função RetornaSequencia, o cadastro do colaborador será determinado pela sequence do oracle, de acordo com os parâmetros da função.

Exemplo de regra por processo para o botão Novo Cadastro do colaborador:

Regra por processo 23 - Número do novo cadastro:

@ Retorna o próximo código gerado pela sequence teste1 - somente para a empresa 1 e para empregados @

 

Se ((R034FUN.NumEmp = 1) e (R034FUN.TipCol = 1))

Inicio

RetornaSequencia("teste1", "proximo", vNumCad);

 

@ Atribui o código para o cadastro do colaborador @

 

R034FUN.NumCad = vNumCad;

 

Fim;

Este artigo ajudou você?