BLV Técnico Versão 5.00 (Continuação)
Novas transações de históricos.
Visão do usuário:
Quatro novas transações foram criadas: Histórico de Funcionários, Histórico de Dependentes, Histórico de Pensionistas e Histórico de Vínculos.
1)Transação Histórico de Funcionários:
A tela desta transação foi derivada da tela de Funcionários; a diferença está na adição de um cabeçalho, para seleção de funcionários pelo número funcional ou pela matrícula, e na criação de um filtro, que possibilita definir o período de consulta ao histórico e o usuário que efetuou as alterações. Ao se listarem os dados do histórico, os campos data inicial, data final e usuário são mostrados em todas as telas, e o restante das informações são exibidas nas respectivas fichas, exatamente como na tela de Funcionários, porém uma por vez. Portanto, pode-se navegar entre as fichas visualizando-se o período do histórico e o usuário que fez as alterações. Também, é possível executar consultas especificando-se quaisquer um dos campos do histórico mostrado. O histórico da matrícula pode ser listado nessa tela, mas somente quando o sistema estiver configurado para identificação funcional por matrícula. Neste caso, os históricos de matrículas listados são aqueles cujo período é concomitante com o período dos históricos do funcionário consultado na transação. Não são permitidas inserções ou alterações nesta transação, apenas remoção de registros.
2)Transação Histórico de Dependentes:
A tela desta transação foi derivada da tela de Dependentes; a diferença está na adição de um filtro, para o usuário definir o número do dependente, o período de consulta ao histórico e o usuário que efetuou as alterações. Os campos data inicial, data final e usuário são exibidos em todas as fichas, e o restante das informações são mostradas exatamente como na tela de Dependentes, porém cada uma em sua respectiva ficha.
Com isto, pode-se navegar entre as fichas visualizando-se o período do histórico e o usuário que fez as alterações. Também, é possível executar consultas especificando-se quaisquer campo do histórico mostrado. Para esta transação não são permitidas inserções ou alterações, apenas remoção de registros.
3)Transação Histórico de Pensionistas:
A tela desta transação foi derivada da tela de Pensionistas; a diferença está na adição de um filtro, para o usuário definir o número do pensionista, o período de consulta ao histórico e o usuário que efetuou as alterações. Os campos data inicial, data final e usuário são exibidos em todas as telas, e o restante das informações são mostradas também exatamente como na tela de Pensionistas, porém apenas uma vez. É possível também executar consultas especificando-se quaisquer campo do histórico mostrado. Não são permitidas inserções ou alterações nesta transação, apenas remoção de registros.
4)Transação Histórico de Vínculos :
A tela desta transação foi derivada da tela de Vínculos; a diferença esta na adição de um cabeçalho, para selecionar o funcionário pelo número funcional e vínculo ou pela matrícula; e também na criação de um filtro, para o usuário definir o período de consulta ao histórico e o usuário que efetuou as alterações. Os campos data inicial, data final e usuário são exibidos em todas as fichas, e o restante das informações são mostradas exatamente como na tela de Vínculos, porém em sua respectiva ficha. Portanto, pode-se navegar entre as fichas visualizando-se o período do histórico e o usuário que fez as alterações. Também, é possível executar consultas especificando-se quaisquer campo do histórico mostrado.
Não são permitidas inserções ou alterações, apenas remoção de registros nesta transação.
Com a criação das quatro transações acima, veio também a necessidade de se alterar o menu do Ergon para disponibilizá-las ao usuário.
Outra alteração feita implicou nas quatro transações. Como elas consultam históricos, estes devem permanecer registrados no sistema mesmo que os dados de origem (funcionários, dependentes, pensionistas, vínculos, matrículas) forem removidos. Isto resultou na necessidade de se alterar, nas quatro transações, os cabeçalhos de consulta aos históricos.
Tomemos como exemplo a remoção de determinado funcionário no sistema: seus dados funcionais serão excluídos, mas o seu histórico permanecerá cadastrado. Para que a consulta a este histórico seja possível, é necessário fazê-la diretamente, retornando as informações deste e do funcionário e permitindo também ao usuário remover os respectivos históricos listados.
Seguem abaixo dois exemplos detalhados para melhor esclarecer em que consistiu as alterações feitas nas quatro transações.
1) Se o sistema estiver configurado para trabalhar com identificação por matrícula e ocorrer a situação de existir um funcionário cadastrado com determinada matrícula já usada por outro funcionário, que por sua vez foi removido do sistema. Os históricos cadasstrais do funcionário anterior ainda existem no sistema. Na ocasião do usuário preencher a matrícula, será exibida uma lista mostrando-a duas vezes. Uma será a do funcionário atual, sendo facilmente identificada através de seu nome. A outra será a do funcionário anterior, indicando que este foi removido, e a data do ocorrido.
2) Em caso de o sistema estar configurado para trabalhar com identificação por número funcional e vínculo, e ocorrer a situação de existir um funcionário cadastrado ou removido que possua dois ou mais vínculos com a empresa. Inicialmente uma lista é mostrada. Esta ação já ocorria, com a diferença de que agora também serão listados os vínculos que foram removidos do sistema, mas que ainda possuem um histórico registrado. Eles serão facilmente identificados através da indicação de que o vínculo foi removido.
É importante ressaltar que, ao selecionar um funcionário removido, no lugar de seu nome será mostrada a indicação de remoção e a data do ocorrido.
Detalhes Técnicos:
Quatro transações foram criadas: Histórico de Funcionários - ERG0007; Histórico de Dependentes - ERG0136; Histórico de Pensionistas - ERG0176; Histórico de Vínculos - ERG0227.
1)Transação Histórico de Funcionários (ERG0007):
O form foi derivado da tela de Funcionários, form ERG0074. A diferença está na adição de um BLOCK_FUNC, para selecionar o funcionário pelo numfunc ou matrícula, e de um BLOCK_FILTRO, onde o usuário define o período de consulta ao histórico e o usuário que efetuou as alterações.
Para listar os registros do histórico, os campos DTINI, DTFIM e USUARIO são exibidos na tela em dois records. O restante das informações são mostradas nos TABS, exatamente como no form de Funcionários, porém com apenas um record. Desta forma, pode-se navegar entre os TABS visualizando-se o período do histórico e o usuário que fez as alterações. Também, é possível executar consultas especificando-se qualquer campo do histórico mostrado. Além disso, o histórico da matrícula também é listado neste form, aparecendo somente quando o sistema estiver configurado para identificação funcional por matrícula. São listados os históricos cujo período é concomitante com o período dos históricos do funcionário que foram consultados na transação.
Outra alteração feita foi no bloco que consulta a tabela de histórico do funcionário, chamado ERG_HIST_FUNC, e no bloco do histórico de matrículas do funcionário (bloco ERG_HIST_MATRIC). Eles foram configurados para não permitirem inserções ou alterações, apenas remoções de registros.
2)Transação Histórico de Dependentes (ERG0136):
O form foi derivado da tela de Dependentes, form ERG0068. A diferença está na adição de um BLOCK_FILTRO, para o usuário definir o número do dependente e o período de consulta ao histórico e o usuário que efetuou as alterações. Para listar os registros do histórico, os campos DTINI, DTFIM e USUARIO são mostrados na tela em dois records. O restante das informações são mostradas nos TABS exatamente como no form de Dependentes, porém com apenas um record. Assim, pode-se navegar entre os TABS visualizando-se o período do histórico e o usuário que fez as alterações. Também é possível executar consultas especificando-se qualquer campo do histórico mostrado.
Outra alteração feita foi no bloco que consulta a tabela de histórico do dependente, chamado ERG_HIST_DEP; ele foi configurado para não permitir inserções ou alterações, apenas remoções de registros.
3)Transação Histórico de Pensionistas (ERG0176):
O form foi derivado da tela de Pensionistas, form ERG0179. A diferença está na adição de um BLOCK_FILTRO, para o usuário definir o número do pensionista e o período de consulta ao histórico e o usuário que efetuou as alterações. Para listar os registros do histórico, os campos DTINI, DTFIM e USUARIO são mostrados na tela em dois records. O restante das informações são mostradas na tela exatamente como no form de Pensionistas, porém com apenas um record. É possível executar consultas especificando-se qualquer campo do histórico mostrado.
Outra alteração feita foi no bloco que consulta a tabela de histórico do pensionista, chamado ERG_HIST_PENS; ele foi configurado para não permitir inserções ou alterações, apenas remoções de registros.
4)Transação Histórico de Vínculos (ERG0227):
O form foi derivado da tela de Vínculos, form ERG0261. A diferença esta na adição de um BLOCK_VINC, para selecionar o funcionário pelo (numfunc, numvinc) ou matrícula, e de um BLOCK_FILTRO, onde o usuário define o período de consulta ao histórico e o usuário que efetuou as alterações. Para listar os registros do histórico, os campos DTINI, DTFIM e USUARIO são mostrados na tela em dois records. O restante das informações são mostradas nos TABS exatamente como no form de Vínculos, porém com apenas um record. Portanto, pode-se navegar entre os TABS visualizando-se o período do histórico e o usuário que fez as alterações. Também, é possível executar consultas especificando-se qualquer campo do histórico mostrado.
Outra alteração efetuada foi no bloco que consulta a tabela de histórico do vínculo, chamado ERG_HIST_VINC; ele foi configurado para não permitir inserções ou alterações, apenas remoções de registros.
Com a criação destas quatros transações, para poder mostrá-las, o menu ERGON.MMB também precisou ser alterado .
Além disso, como estas transaçoes consultam históricos e estes devem permanecer registrados no sistema, mesmo que os registros que deram origem (funcionários, dependentes, pensionistas, vínculos, matrículas) foram removidos, foi necessário alterar os cabeçalhos destas quatros transações para consultar os históricos mesmo nesta situação. Tomemos, por exemplo, o seguinte caso: é feita a remoção de determinado funcionário do sistema, mas seu histórico permanecerá cadastrado. Para que a consulta ao histórico deste seja possível, é preciso fazê-la diretamente, retornando as informações do funcionário consultado e permitindo ao usuário remover do sistema os históricos listados. Para esta implementação foi necessário alterar a funcionalidade dos cabeçalhos dessas transações. Porém, estes cabeçalhos são herdados e qualquer alteração neles implicaria na perda da herança. Para que isto não ocorresse, foi feita uma espécie de customização nestes cabeçalhos, a fim de permitir alterações especificas para estas novas transações criadas. Segue abaixo a descrição das modificações realizadas:
As alterações foram feitas no form ERG_CLASS.FMB, mais especificamente nos blocos BLOCK_FUNC (para consulta de telas que não utilizam o número do vínculo) e BLOCK_VINC (para consulta de telas que utilizam o número do vínculo). Foram criados respectivamente para cada bloco as programs units: ACHOU_NO_HISTORICO_FUNC e ACHOU_NO_HISTORICO_VINC, que são duas funções, e retornam FALSE por default. Se retornarem TRUE, elas pulam o código padrão dos blocos alterados acima, e executam o código apenas dentro das funções. A chamada das funções foram colocadas em pontos estratégicos destes blocos, pulando o código que é executado normalmente. Dessa forma, para customizar a execução normal nas quatros transações, foi necessário apenas adicionar o código dentro destas novas funções. Para fazer efeito, as alterações foram inseridas dentro da ERGON.OLB. Portanto, para o BLOCK_FUNC, a alteração foi feita no OBJECT GROUP "OG_FUNCIONARIO" e para o BLOCK_VINC foi feita no "OG_VINCULO".
O "OG_FUNCIONARIO" é utilizado nos forms ERG0007 e ERG0136. Foi codificado um código na ACHOU_NO_HISTORICO_FUNC, criou-se o record group HIST_MATRIC_RG para os dois forms e o RG_DEPENDENTE somente para o form ERG0136. Foram criadas também as LOVs HIST_MATRIC_LOV e a LOV_DEPENDENTE somente para o form ERG0136. O que estas listas de valores fazem é buscar os dados que estão tanto na tabela de origem quanto nas tabelas de históricos. A LOV HIST_MATRIC_LOV é utilizada quando o sistema estiver configurado para trabalhar com identificação por matrícula e ocorrer, por exemplo, a situação de existir um funcionário cadastrado com uma determinada matrícula que já foi usada por outro funcionário removido do sistema, entretanto com o histórico de seu cadastro ainda registrado no Ergon. Quando o usuário preencher a matrícula, será mostrada a LOV listando a matrícula duas vezes. Nesta lista, será fácil identificar o funcionário atual, pois seu nome irá aparecer; e a matrícula que foi removida, pois ao invés do nome será mostrado a indicação de que este foi removido e data do ocorrido.
Se o funcionário removido for selecionado, no lugar de seu nome também será mostrado a indicação da remoção e a data do ocorrido.
O "OG_VINCULO" é utilizado nos forms ERG0176 e ERG0227. Foi codificado um código na ACHOU_NO_HISTORICO_VINC, criou-se os records group HIST_MATRIC_RG e HIST_VINC_RG para os dois forms e o RG_PENSIONISTA somente para o form ERG0176. Foram criadas também as LOVs HIST_MATRIC_LOV, HIST_VINC_LOV e a LOV_PENSIONISTA somente para o form ERG0176. O que estas listas de valores fazem é buscar os dados que estão tanto na tabela de origem quanto nas tabelas de históricos. A LOV HIST_MATRIC_LOV é utilizada como descrito acima. Quanto a LOV HIST_VINC_LOV, quando o sistema estiver configurado para trabalhar com identificação por (NUMFUNC e NUMVINC) e ocorrer, por exemplo, a situação de existir um funcionário, cadastrado ou não, que possua dois ou mais vínculos com a empresa. Neste caso, a LOV é mostrada, como já ocorria antes, porém ela também trará os vínculos que foram removidos do Ergon, e que ainda tem algum histórico registrado no sistema. Quando estes vínculos são listados, é fácil de se identificar o removido, pois é mostrada a indicação da remoção.
Se um funcionário removido for selecionado, ao invés de seu nome também será mostrado a indicação de que ele foi removido e a data da remoção.