BLV Técnico Versão 5.03 (Continuação)
Restrição de consulta de fichas financeiras
Detalhes Técnicos:
A partir desta versão, o cliente pode restringir a visão das fichas financeiras nas transações de consulta no menu Processos --> Folhas de Pagamento --> Consultas através da função EP__MOSTRA_FICHA. Maiores detalhes podem ser encontrados no cabeçalho da função..
Registros de Publicações nas Transações "Cargos" e "Funções"
Visão do usuário:
As transações "Cargos" e "Funções" foram alteradas para permitirem o lançamento de registros de publicações. Com isso, o botão "Mostra Publicações" da barra de ferramentas foi habilitado para ambas transações.
Detalhes Técnicos:
Para habilitar o registro de publicações nas transações de "Cargos" e "Funções" foi necessário alterar as tabelas CARGOS_ e FUNCOES_EV. Estas tabelas receberam um novo campo chamado PONTPUBL (Number(10)) e uma constraint de foreign key deste campo para a tabela ERG_PUBLX.
Em decorrência destas alterações, as views CARGOS e FUNCOES tiveram que ser alteradas para que o campo PONTPUBL fosse incluído.
Também foi criado um índice único para a coluna PONTPUBL nas tabelas CARGOS_ e FUNCOES_EV.
Remoção de tabela
Detalhes Técnicos:
A tabela ERG_TEMP_CARGAFB_AG foi removida. Favor remover as referências à esta tabela nos objetos de C_ERGON.
Novas fichas na transação DIRF
Visão do usuário:
A transação DIRF recebeu duas novas fichas para apresentação de dados ("Itens DIRF" e "Totais DIRF").
A ficha "Itens DIRF" tem por objetivo apresentar (somente para consulta) os ítens gerados na DIRF. Nesta ficha, é possível filtrar os dados que serão apresentados na tela através dos campos "Ano Base", "Sub-empresa" e "Fator". Após informar os filtros desejados, basta navegar para o bloco "Itens" que a consulta será realizada.
A ficha "Totais DIRF" tem por objetivo apresentar (somente para consulta) os totais gerados na DIRF. Nesta ficha, é possível filtrar os dados que serão apresentados na tela através dos campos "Ano Base", "Sub-empresa" e "Referência". O campo "Referência" é obrigatório e tem a função de permitir ao usuário informar qual mês (janeiro a dezembro, ou 13º salário) deverá ter os totais apresentados na tela. Após informar os filtros desejados, basta navegar para o bloco "Itens" que a consulta será realizada.
Adição de entry-points após as execuções normais das triggers
Detalhes Técnicos:
Foi elaborado um novo mecanismo através de dois procedimentos adicionados nas triggers de PRE e de POS das tabelas do sistema, para o cliente estabelecer validações e outras operações ao final da execução de todas rotinas codificadas nestas triggers. Ou seja, esses procedimentos finalizam todo o processo de validações, críticas e alterações feitas na inserção, alteração e remoção de registros na tabela em função das regras de negócio estabelecidas.
Para adicionar esses novos procedimentos nas triggers, o script GERA_TRG.SQL de geração dos códigos das triggers foi alterado. Somente as triggers T_B_IUD... e T_A_IUD... incorporam a chamada à esses procedimentos.
Por exemplo, se o script for executado para a tabela VINCULOS, o novo mecanismo é implementado no corpo das triggers como mostrado abaixo.
1) T_B_IUD_VINCULOS:
--
/*Chamada da procedure para validações adicionais do cliente*/
PCK_EP__BEFORE_CERG.VINCULOS(INSERTING, UPDATING, DELETING, PCK_EP__BEFORE_CERG.V_MENS);
--
IF PCK_EP__BEFORE_CERG.V_MENS IS NOT NULL THEN
--
ERGON_ERRO_PACK.TRATA_ERRO(0, PCK_EP__BEFORE_CERG.V_MENS);
--
END IF;
--
/*Final da chamada da procedure para validações adicionais do cliente*/
--
2) T_A_IUD_VINCULOS:
--
/*Chamada da procedure para validações adicionais do cliente*/
PCK_EP__AFTER_CERG.VINCULOS(INSERTING, UPDATING, DELETING, PCK_EP__AFTER_CERG.V_MENS);
--
IF PCK_EP__AFTER_CERG.V_MENS IS NOT NULL THEN
--
ERGON_ERRO_PACK.TRATA_ERRO(0, PCK_EP__AFTER_CERG.V_MENS);
--
END IF;
--
/*Final da chamada da procedure para validações adicionais do cliente*/
--
Como se pode ver acima, os procedimentos estão empacotados em packages criadas no usuário C_ERGON e C_HADES do banco de dados. Para utilização na trigger de PRE, no C_ERGON foi criada a package PCK_EP__BEFORE_CERG e no C_HADES foi criada a package PCK_EP__BEFORE_CHAD. Para utilização na trigger de PÓS, no C_ERGON foi criada a package PCK_EP__AFTER_CERG e no C_HADES foi criada a package PCK_EP__AFTER_CHAD. Em qualquer um dos casos, se o procedimento devolver uma mensagem através do parâmetro de saída, a execução será abortada e a mensagem mostrada ao cliente. No exemplo, será o conteúdo da variável PCK_EP__AFTER_CERG.V_MENS.
Para gerar essas packages, tanto para o usuário C_ERGON quanto para o usuário C_HADES, foram criadas duas rotinas que foram adicionadas aos scripts CERGON.SQL e CHADES.SQL utilizados para gerar as packages PCK_BEFORE_CERGON, PCK_AFTER_CERGON, PCK_BEFORE_CHADES e PCK_AFTER_CHADES. As novas packages são geradas com a seguinte estrutura:
--
PROCEDURE TABELA_NOME (
P_INSERTING IN BOOLEAN,
P_UPDATING IN BOOLEAN,
P_DELETING IN BOOLEAN,
P_MENS OUT VARCHAR2
);
--
E o corpo da package será o seguinte
--
PROCEDURE TABELA_NOME (
P_INSERTING IN BOOLEAN,
P_UPDATING IN BOOLEAN,
P_DELETING IN BOOLEAN,
P_MENS OUT VARCHAR2
)
IS
BEGIN
P_MENS := NULL;
END;
--
Como se pode observar, os procedimentos apresentam apenas os parâmetros dos tipos de operações DML.
No caso da package de BEFORE, para ler um registro da tabela e efetuar alterações no mesmo, deve-se utilizar os registros: PCK_TABELA_NOME.V_ROW_NEW e PCK_TABELA_NOME.V_ROW_OLD - definidos na package padrão da TABELA. Por exemplo: PCK_VINCULOS.V_ROW_NEW e PCK_VINCULOS.V_ROW_OLD.
No caso da package de AFTER, para ler um registro da tabela e efetuar alterações no mesmo, deve-se utilizar as PL/SQL TABLES: PCK_TABELA_NOME.P_TABELA_NOME, PCK_TABELA_NOME.P_TABELA_NOME_OLD e PCK_TABELA_NOME.P_INDICE (a quantidade de linhas dessas tabelas) - da package da TABELA. Por exemplo: PCK_VINCULOS.P_VINCULOS, PCK_VINCULOS.P_VINCULOS_OLD e PCK_VINCULOS.P_INDICE. Se for necessário ler os registros linha por linha dessas tabelas, será necessário a utilização de um LOOP de 1 até PCK_TABELA_NOME.P_INDICE.
Por exempo:
--
PROCEDURE TABELA_NOME (
P_INSERTING IN BOOLEAN,
P_UPDATING IN BOOLEAN,
P_DELETING IN BOOLEAN,
P_MENS OUT VARCHAR2
)
IS
--
i NUMBER;
--
BEGIN
--
FOR i IN 1..PCK_TABELA_NOME.P_INDICE LOOP
--
-- usar PCK_TABELA_NOME.P_TABELA_NOME(i).campos
--
--
END LOOP;
--
P_MENS := NULL;
--
END;
--
O parâmetro P_MENS retorna uma mensagem de erro, abortando toda a execução.
Em todos os scripts citados acima, não serão gerados mais os entry-points e nem as triggers para as tabelas com os nomes compostos com as palavras: OLD (tabelas antigas, ex: TABELA_OLD), TEMP (tabelas de conteúdo temporário, ex: ERG_TEMP_TABELA, TEMP_TABELA, TABELA_TEMP) e REMOVER (tabelas a remover, ex: REMOVER_TABELA). Foi gerado um script para remover os objetos que foram gerados para esses tipos de tabelas.
Funcionamento da DIRF em modo multi-empresa.
Visão do usuário:
A transação "Informe de Rendimentos e DIRF" foi alterada para a DIRF funcionar em modo multi-empresa. Assim, as informações geradas para a DIRF e as listadas na tela sempre serão para a empresa na qual o usuário estiver logado.
Detalhes Técnicos:
A transação "Informe de Rendimentos e DIRF", form ERG0072, foi alterada para a DIRF funcionar em modo multi-empresa. Nas consultas sobre a tabela FICHAS_VINCULOS, foi adicionada a condição: emp_codigo = flag_pack.get_empresa. Os blocos de consultas da tela também utilizam essa restrição. Assim, as informações geradas para a DIRF e as listadas na tela sempre serão para a empresa na qual o usuário estiver logado.
Foi renomeada a tabela DIRF_CPF_NOME_TEMP para DIRF_CPF_NOME e as triggers e packages (PCK_DIRF_CPF_NOME) foram geradas para ela.
Para a tabela DIRF_ITENS, a coluna EMP_CODIGO foi alterda para NOT NULL e foi adicionada a UNIQUE KEY DIRF_ITENS_UK.
Para a tabela DIRF_TOTAIS, a coluna EMP_CODIGO foi alterda para NOT NULL e foi adicionada a UNIQUE KEY DIRF_TOTAIS_UK.
Foi criado um script para popular a coluna EMP_CODIGO dessas duas tabelas, caso esteja como valor NULO.
Nas views DIRF_VW_REG_2 e DIRF_VW_REG_9, a referência a tabela DIRF_CPF_NOME_TEMP foi alterada para DIRF_CPF_NOME. E na tela também.
Funcionamento da RAIS em modo multi-empresa.
Visão do usuário:
A transação "RAIS" foi alterada para a RAIS funcionar em modo multi-empresa. Assim, as informações geradas para a RAIS e as listadas na tela sempre serão para a empresa na qual o usuário estiver logado.
Detalhes Técnicos:
A transação "RAIS", form ERG0192, foi alterada para a RAIS funcionar em modo multi-empresa. Nas consultas sobre a tabela FICHAS_VINCULOS, foi adicionada a condição: emp_codigo = flag_pack.get_empresa. Outros procedimentos da tela, também foram alterados levando em conta a empresa na qual o usuário está logado (FLAG_PACK.GET_EMPRESA). Os blocos de consultas da tela também utilizam essa restrição. Assim, as informações geradas para a RAIS e as listadas na tela sempre serão para a empresa na qual o usuário estiver logado.
Para a package PACK_ERGON, os procedimentos da RAIS foram removidos dessa package e passados para a package PACK_RAIS.
A package PACK_RAIS foi criada para empacotar e disponibilizar procedures e functions de uso no mecanismo de geração da RAIS.
Para a package PCK_RAIS_INFO, o insert de registros na tabela RAIS_INFO foi alterado para inserir também o código da empresa (EMP_CODIGO).
Para a tabela RAIS_INFO, a coluna EMP_CODIGO foi alterda para NOT NULL e foi adicionada a UNIQUE KEY RAIS_INFO_UK.
Foi criado um script para popular a coluna EMP_CODIGO dessa tabela, caso esteja com valor NULO.