BLV Técnico Versão 5.07 (Continuação)
Packages do módulo de Avaliação de Desempenho
Detalhes Técnicos:
Foram criados os objetos de banco PACK_PROMOCAO em ERGON e PCK_CERG_PROMOCAO em C_ERGON
Transação Eventos de Substituição - ERG0300
Visão do usuário:
Foi criado o campo PERMIT_MULT_SUBST na TIPO_EVENTO_. ( Usado apenas para eventos de substituição ).
Caso esteja marcado ( valor 'S' ) o sistema permitirá que um servidor seja substituído por mais de uma pessoa.
Ex : o servidor B está substituíndo o servidor A. Caso o servidor B tenha algum afastamento o servidor C poderá substituir o servidor A. Ficando assim dois servidores B e C substituíndo o servidor A.
Mecanismo para registrar stack da execução de stored procedures que causaram um erro
Detalhes Técnicos:
[HADES_ERROS_STACK]
Nova tabela para registrar as linhas das stored procedures que estavam sendo executadas quando um erro foi gerado via HADES_ERRO_PACK.TRATA_ERRO ou erro inesperado mas capturado por um WHEN OTHERS.
Exemplo de utilização para STORED PROCEDURE/FUNCTION dentro de um PACKAGE:
PACKAGE BODY EXEMPLO IS
FUNCTION VALIDA_ALGUMA_COISA (P_PARAMETRO1 IN VARCHAR2) RETURN VARCHAR2 IS
-- declaração de variáveis locais
V_MSG VARCHAR2(2000);
...
-- Variáveis locais para identificar o STORED PROCEDURE e o comando que está sendo
-- executado
V_SPID NUMBER; -- IDENTIFICADOR DO STORED PROCEDURE
L_ NUMBER; -- CONTADOR PARA INDICAR O COMANDO QUE ESTA SENDO EXECUTADO
BEGIN
-- Inicializa o identificador do stored procedure
V_SPID := HADES_ERRO_PACK.GET_STOREDPROC_ID('ERGON','EXEMPLO','VALIDA_ALGUMA_COISA');
-- Essa função faz uma consulta à view de sistema ALL_PROCEDURES
--
-- Antes de cada comando que pode gerar uma exception, atribui-se ao contador um valor
-- numérico crescente. Como é um stored procedure dentro de um package, é interessante
-- usar sempre números diferentes para cada comando. Isso facilita na hora de fazer um
-- find. E para tornar a numeração independente entre os diversos PROCEDURES/FUNCTIONS
-- do package, utilizar um offset para cada PROCEDURE/FUNCTION. Por exemplo, o primeiro
-- PROCEDURE/FUNCION começar com um offset de 10000, o segundo de 20000 e assim por
-- diante. Para quem programou em linguagem BASIC, deve lembrar do uso de linhas numeradas
-- para o código e normalmente numerá-las de 10 em 10 para o caso de precisar acrescentar
-- uma nova linha. Isso também é interessante fazer no caso do contador.
L_ := 10010;
V_MSG := CHAMA_FUNCAO_XPTO(P_PARAMETRO1);
--
IF V_MSG IS NOT NULL THEN
-- supondo que essa função é do tipo entry-point que retorna uma mensagem de erro
-- chamar a função para gravar essa mensagem e o STORED PROCEDURE e o comando que
-- gerou o erro. Nesse caso, foi a chamada a função CHAMA_FUNCAO_XPTO. E, se a
-- função CHAMA_FUNCAO_XPTO também utilizou esse mecanismo de gravar no STACK de
-- execução, já gravou o stored procedure e o comando que gerou o erro internamente.
--
HADES_ERRO_PACK.SALVA_SPID_LOG(V_SPID,L_,-1,V_MSG);
-- O paràmtro "-1" seria o código do erro cadastrado em HAD_ERROS.
RETURN V_MSG;
END IF;
--
L_ := 10020;
outros comandos ...
--
-- No final do STORED PROCEDURE, sempre deve haver um EXCEPTION WHEN OTHERS
-- para capturar eventuais erros não esperados.
-- O procedimento HADES_ERRO_PACK.TRATA_ERRO (que é chamada pelo ERGON_ERRO_PACK.TRATA_ERRO)
-- foi modificada para aceitar dois parâmetros adicionais: O identificador do stored procedure
-- que está gerando o erro e o contador do comando imediatamente anterior ao comando que
-- causou o erro.
EXCEPTION WHEN OTHERS THEN ERGON_ERRO_PACK.TRATA_ERRO(SQLERRM,V_SPID,L_);
END;
END;
Exemplo de utilização para PROCEDURE/FUNCTION que não está contido num PACKAGE:
PROCEDURE PROC_EXEMPLO (P_PARAM IN NUMBER) IS
-- Declaração de variáveis locais
...
-- Variáveis para identificar o STORED PROCEDURE e o comando
V_SPID NUMBER;
L_ NUMBER;
BEGIN
-- Inicializa o identificador do stored procedure. Como é um stored procedure que não está
-- contido num package, passam-se como parâmetros apenas o owner e o nome do stored procedure
V_SPID := HADES_ERRO_PACK.GET_STOREDPROC_ID('ERGON','PROC_EXEMPLO');
--
-- Como é um stored procedure apenas, não é necessário usar um offset para os contadores
-- de comandos
L_ := 10;
CHAMA_OUTRO_PROCEDURE(P_PARAM);
--
L_ := 20;
IF TESTA_ALGUMA_CONDICAO(P_PARAM) THEN
ERGON_ERRO_PACK.TRATA_ERRO(123,P_PARAM);
END IF;
--
EXCEPTION WHEN OTHERS THEN ERGON_ERRO_PACK.TRATA_ERRO(SQLERRM, V_SPID, L_);
END;
Quando algum erro é gerado ou capturado, basta consultar a tabela HADES_ERROS_STACK para ver os STORED PROCEDURE envolvidos. Se as rotinas foram executadas a partir de uma transação do FORMS, na tabela HADES_ERROS_STACK estarão armazenados o sistema, a transação, o usuário, a máquina e a empresa. Para saber a seqüência de execução, basta ordenar pela coluna DATAHORA. A primeira ocorrência do erro é a que efetivamente gerou o erro. As outras ocorrências mostram a ordem de propagação do erro.
Novos tipos de fórmula na transação Fórmulas de Contagem
Visão do usuário:
Na lista de valores do campo tipo de fórmula, foram incluídos os tipos: tipos CLASSEDECA, CLASSEDECB, CLASSEDECC, CLASSEDECD, CLASSEDECE, CLASSEDEF, CTABSDEC e CTABSDEF.
Detalhes Técnicos:
A constraint FORMCONTA_TIPO_CK foi recriada para incluir os novos tipos.
Botão de pesquisa de informações através do CEP
Visão do usuário:
Nas transações Dependentes (ERG0068), Funcionários (ERG0074), Pensionistas (ERG0179) e Representantes Legais (ERG0331) foram incluídos botões para auxiliar o cadastro dos campos de endereço a partir de um CEP.
Esses botões aparecerão nas transações se a opção BUSCA_CEP (grupo HADES, sistema Hades) estiver com valor S.
Ao apertar o botão, o sistema irá procurar as informações do CEP informado, e se encontrar irá preencher os seguintes campos: tipo de logradouro, endereço, cidade e UF.
Esses botões foram colocados no lado direito do CEP. Verifique os layouts dessas transações.
Nota importante: para que a busca funcione efetivamente é necessário que o Cliente tenha uma base de CEP's e seja feita uma customização para informar a forma como os CEP's serão recuperados. Veja BLV do Hades.
Detalhes Técnicos:
A customização para preencher os campos tipo de logradouro, nome do logradouro, bairro, cidade e UF, a partir de um determinado CEP, é feita na função EP__DADOS_CEP de C_Hades.
Mecanismo de edição de tela para o form ERG0018
Visão do usuário:
Foi implementado o mecanismo de edição de tela para esse form.
Detalhes Técnicos:
Foi implementado o mecanismo de edição de tela para esse form. Foram adicionados os FLEX_CAMPOS de 1 a 5 no bloco INSCRICOES do form.
Lista Pagamento de um Mês / Ano
Visão do usuário:
A transação Lista Pagamento de um Mês / Ano foi criada para apresentar os lançamentos agrupados por competência de um determinado mês/ano da Folha de pagamentos.
Detalhes Técnicos:
Foi criada a transação ERG0350 - Lista Mês/Ano
Implementar opção de crédito para representante legal no relacionamento com a pessoa.
Visão do usuário:
As alterações no módulo de representantes legais são as seguintes:
1-) Transação "Funcionários" (form ERG0074):
O controle de representantes legais foi alterado. A disponibilidade ou não do cadastro de representantes legais varia em função da opção UTILIZA_REPRE_LEGAL_FUNC. Se o valor da opção for "N" (não), a ficha "Repres. Legal" não aparece.
Se o valor for "S" (sim), a ficha "Repres. Legal" aparece com todos os campos do módulo de cadastro de representantes legais.
Foi acrescentado ao cadastro de representante a opção "Recebe Crédito?". Se um histórico de representação estiver marcado como sim, significa que o representante recebe os créditos pelo funcionário. Dentro de um certo período só poderá existir um histórico com essa opção marcada.
2-) Transação "Dependentes" (form ERG0068):
O controle de representantes legais foi alterado. A disponibilidade ou não do cadastro de representantes legais varia em função da opção UTILIZA_REPRE_LEGAL_DEPEN. Se o valor da opção for "N" (não), a ficha "Repres. Legal" não aparece. Apenas os campos anteriores de cadastro representante legal aparecem na ficha principal "Dependentes".
Se o valor for "S" (sim), a ficha "Repres. Legal" aparece com todos os campos do módulo de cadastro de representantes legais. Os campos tradicionais desaparecem.
Foi acrescentado ao cadastro de representante a opção "Recebe Crédito?". Se um histórico de representação estiver marcado como sim, significa que o representante recebe os créditos pelo dependente. Dentro de um certo período só poderá existir um histórico com essa opção marcada.
3-) Transação "Pensionistas" (form ERG0179):
O controle de representantes legais foi alterado. A disponibilidade ou não do cadastro de representantes legais varia em função da opção UTILIZA_REPRE_LEGAL_PENS. Se o valor da opção for "N" (não), a ficha "Representante Legal" não aparece. Apenas os campos anteriores de cadastro de representante legal aparecem na ficha principal "Dependentes".
Se o valor for "S" (sim), a ficha "Representante Legal" aparece com todos os campos do módulo de cadastro de representantes legais. Os campos tradicionais desaparecem.
Foi acrescentado ao cadastro de representante a opção "Recebe Crédito?". Se um histórico de representação estiver marcado como sim, significa que o representante recebe os créditos pelo pensionista. Dentro de um certo período só poderá existir um histórico com essa opção marcada.
Detalhes Técnicos:
As alterações técnicas feitas no módulo de representantes legais são as seguintes:
1-) Transação "Funcionários" (form ERG0074):
O controle de representantes legais foi alterado. A disponibilidade ou não do cadastro de representantes legais varia em função da opção UTILIZA_REPRE_LEGAL_FUNC. Se o valor da opção for "N" (não), a ficha "Repres. Legal" não aparece.
Se o valor for "S" (sim), a ficha "Repres. Legal" aparece com todos os campos do módulo de cadastro de representantes legais.
Foi acrescentado ao cadastro de representante a opção "Recebe Crédito?". Se um histórico de representação estiver marcado como sim, significa que o representante recebe os créditos pelo funcionário. Dentro de um certo período só poderá existir um histórico com essa opção marcada.
2-) Transação "Dependentes" (form ERG0068):
O controle de representantes legais foi alterado. A disponibilidade ou não do cadastro de representantes legais varia em função da opção UTILIZA_REPRE_LEGAL_DEPEN. Se o valor da opção for "N" (não), a ficha "Repres. Legal" não aparece. Apenas os campos anteriores de cadastro representante legal aparecem na ficha principal "Dependentes".
Se o valor for "S" (sim), a ficha "Repres. Legal" aparece com todos os campos do módulo de cadastro de representantes legais. Os campos tradicionais desaparecem.
Foi acrescentado ao cadastro de representante a opção "Recebe Crédito?". Se um histórico de representação estiver marcado como sim, significa que o representante recebe os créditos pelo dependente. Dentro de um certo período só poderá existir um histórico com essa opção marcada.
3-) Transação "Pensionistas" (form ERG0179):
O controle de representantes legais foi alterado. A disponibilidade ou não do cadastro de representantes legais varia em função da opção UTILIZA_REPRE_LEGAL_PENS. Se o valor da opção for "N" (não), a ficha "Representante Legal" não aparece. Apenas os campos anteriores de cadastro de representante legal aparecem na ficha principal "Dependentes".
Se o valor for "S" (sim), a ficha "Representante Legal" aparece com todos os campos do módulo de cadastro de representantes legais. Os campos tradicionais desaparecem.
Foi acrescentado ao cadastro de representante a opção "Recebe Crédito?". Se um histórico de representação estiver marcado como sim, significa que o representante recebe os créditos pelo pensionista. Dentro de um certo período só poderá existir um histórico com essa opção marcada.
Package ERGON_ERRO_PACK: Inserção da faixa de erros de 6040 à 6059 para as tabelas ERG_FUNC_REPR, ERG_DEPEN_REPR, ERG_PENS_REPR.
Package body PCK_ERG_DEPEN_REPR, PCK_ERG_FUNC_REPR,PCK_ERG_PENS_REPR: Algumas alterações nas packages.
-Remoção dos procedimentos INSERT_AUX, UPDATE_AUX, DELETE_AUX.
- Mudança de códigos de erros
-Validação de concomitância para registro marcado com RECEBE_CREDITO igual a "S"
- Atribuição de valor "N" se a coluna RECEBE_CREDITO for nula.
Tabela ERG_DEPEN_REPR: Adição da coluna RECEBE_CREDITO VARCHAR2(1) utilizada para indicar se o representante legal recebe os créditos pelo dependente. Adição de constraint NOT NULL para a coluna.
Tabela ERG_FUNC_REPR: Adição da coluna RECEBE_CREDITO VARCHAR2(1) utilizada para indicar se o representante legal recebe os créditos pelo funcionário. Adição de constraint NOT NULL para a coluna.
Tabela ERG_PENS_REPR: Adição da coluna RECEBE_CREDITO VARCHAR2(1) utilizada para indicar se o representante legal recebe os créditos pelo pensionista. Adição de constraint NOT NULL para a coluna.
Tabela FITABANCO: Adição da coluna NUMREP VARCHAR2(8) que será utilizada para armazenar o número do representante legal.