Esse documento tem por objetivo explicar o motivo da criação desse novo campo na tabela de Participantes(RD0), sua usabilidade e funcionalidade.
O conceito de compartilhamento de tabelas no Protheus é para que, caso uma empresa/filial possua cadastros em comum, elas consigam utilizar esse mesmo cadastro.
Quando uma tabela é definida como exclusiva, por exemplo, o conceito é que essa tabela somente será válida para aquela empresa/filial. Neste sentido, uma outra empresa/filial não terá acesso a esse cadastro.
Contudo, é sabido que no módulo Configurador do Protheus é possível definir que um determinado usuário consiga acessar tabelas de todas as empresas/filiais ao mesmo tempo.
Algumas tabelas do Protheus são obrigatoriamente exclusivas. Exemplo : SRA ( Funcionários), enquanto que outras são obrigatoriamente compartilhadas. Exemplo: RD0 (Participantes).
Resumidamente, a estrutura do login do MeuRH consome os dados das tabelas RD0 e AI3. Neste link é possível conferir a amarração de usuários: Passo 2: Amarrações de usuários
O Login é o ponto de partida, ou seja, é a partir do login que temos as informações do funcionário que está acessando o aplicativo, como filial e matrícula.
Ocorre que em um determinado cenário, o login no MeuRH não era executado. Esse cenário era quando a tabela AI3 estava configurada como exclusiva e não havia registros de usuários da AI3 na primeira filial do arquivo de empresas (sigamat).
Exemplificando.
Tomamos por exemplo uma empresa de nome fictício Teste S/A e essa empresa possui uma Matriz e uma Filial. A Matriz está cadastrada no Protheus com código 0101 e a Filial com código 0102.
Na empresa Matriz não existem funcionários cadastros, mas somente na Filial.
Ao tentar efetuar o login no MeuRH com um usuário qualquer da Filial (0102), o MeuRH irá buscar o usuário da primeira filial do cadastro de empresas do Protheus. Como nesse cenário não há usuários na Matriz, mas somente na Filial, o login não era executado.
Isso se dava pelo fato da AI3 ser exclusiva e na RD0 não possuir a informação da filial do participante (Pois a tabela RD0 é totalmente compartilhada).
Para contornar essa situação, fazia-se necessário replicar todos os usuários cadastrados na Filial (0102) para a Matriz (0101).
Abaixo um pequeno trecho do código fonte.
If MsSeek(xFilial("AI3")+RD0→RD0_PORTAL)
//Continuação do código.....
Devido à ocorrência citada no item 03 deste documento, foi realizado um estudo e foi proposto a criação de um novo campo na tabela RD0, onde este campo seria utilizado para identificar de qual filial o participante é.
Dessa forma, temos
Participante João pertence a filial 0102. O campo RD0_FILRH deverá ser preenchido com 0102.
Participante José pertence a filial 0103. O campo RD0_FILRH deverá ser preenchido com 0103.
E assim por diante.
Dessa forma, ao realizar o login, seria possível identificar a filial do participante e buscar os registros na tabela AI3 conforme a filial.
Isso possibilita utilizar a AI3 exclusiva sem a necessidade de replicar os cadastros para a primeira filial cadastrada no cadastro de empresas (sigamat).
Abaixo um pequeno trecho do código fonte.
If MsSeek(xFilial( "AI3", RD0→RD0_FILRH )+RD0→RD0_PORTAL )
//continuação do código......
Visando melhorar a experiência dos usuários e facilitar o preenchimento desse novo campo, foi disponibilizada uma pequena melhoria no cadastro de participantes, onde é possível realizar o preenchimento em lote do campo RD0_FILRH. Neste link é possível saber mais sobre esse assunto: 9621743 DRHGCH-20880 DT Atualização do campo RD0_FILRH
Essa melhoria está localizada no botão Ações Relacionadas do cadastro de participantes (Modulo 53 - Avaliação e Pesquisa de Desempenho).
Em ações relacionadas, clicar no botão Alt.Usuário Portal.
Como os campos devem ser preenchidos.
As perguntas Filial De e Filial Até devem ser limitadas ao campo Filial Usuário Portal.
Dessa forma, somente os usuários vinculados à filial D MG 01 terão seu campo RD0_FILRH preenchidos com D MG 01.
Como os campos não devem ser preenchidos.
Se as perguntas Filial De e Filial Até forem preenchidas da forma abaixo, ou for escolhida alguma filial diferente da Filial do Usuário do Portal, as permissões dos usuários no MeuRH ficarão incorretas.
O processo de permissões será detalhados nos tópico 06 deste documento.
Outra forma possível de realizar o preenchimento em lote desse campo é informar o relacionamento no arquivo MSRELRDZ.INI, localizado dentro da pasta system. Para saber mais sobre esse arquivo, acesse: https://centraldeatendimento.totvs.com/hc/pt-br/articles/360028250412-MP-APD-Como-criar-relacionamento-entre-o-cadastro-de-funcion%C3%A1rio-x-participantes
Exemplo:
Dessa forma, ao relacionar um funcionário com um participante, esse campo já irá preenchimento automaticamente.
Importante: O campo RD0_FILRH somente deverá ser preenchido caso a AI3 for exclusiva. Se esta tabela for compartilhada, o campo RD0_FILRH deverá ser vazio.
Para o correto funcionamento das permissões, a tabela RJD deve estar na mesma estrutura de compartilhamento da tabela AI3, tendo em vista que na RJD é vinculado o usuário da AI3.
É possível saber mais alguns detalhes das permissões do MeuRH nesse documento: Permissao de funcionalidade do Meu RH - Protheus
É importante ressaltar que o Login e o Permissionamento no MeuRH são processos distintos. Somente após efetuar o login, o MeuRH carregará as permissões daquele usuário, ou seja, as funcionalidades que aquele usuário pode ou não acessar.
O MeuRH carregará as permissões conforme o usuário logado no aplicativo.
Isso se faz necessário para que, caso a empresa possua filiais decentralizadas, cada filial poderá ter sua política de acessos.
Em casos de funcionários com múltiplos vínculos, o Permissionamento também será carregado conforme a filial do vínculo.
Exemplo.
Tabela AI3 exclusiva.
Usuário 00001 da Matriz (0101) possui apenas acesso a recibo de pagamento
Usuário 00001 da Filial (0102) possui apenas acesso ao espelho de ponto.
Funcionário João é múltiplo vínculo e está registrado tanto na 0101 quanto na 0102.
Caso ele acesse o MeuRH com o vinculo da 0101, visualizará apenas o recibo de pagamento. Caso acesse com o vínculo da 0102, visualizará apenas o espelho de ponto.
Importante: O exemplo citado acima não se aplica para ambientes em que a tabela AI3 é compartilhada totalmente. Neste caso, existirá apenas um único usuário de código 00001 na tabela AI3.
P: Se no cadastro da participantes eu posso escolher qualquer filial para vincular no campo RD0_FILRH, não seria mais correto permitir vincular somente usuários da filial logado no Protheus?
R: Isto tornaria o processo mais difícil caso o vínculo fosse feito manualmente, tendo em vista que a tabela RD0 é totalmente compartilhada e o usuário não consegue saber de qual filial aquele participante é.
P: Com a criação do campo RD0_FILRH, não é mais correto verificar as permissões também conforme esse campo?
R: Não, pois se for verificada conforme esse campo e não conforme o usuário logado no aplicativo, as permissões poderão ficar incorretas. Isso é exemplificado no item 06.