Mapeando o nome social na Totvs Carol

 

Um garoto sentado em frente às telas e botões de um computador robótico

🤖🤖🤖

Eis mais um dos meus memorandos técnicos. Ele é indicado para quem já está familiarizado com o meio; no caso com o ERP Protheus e com a plataforma Totvs Carol. Nós usamos aqui na empresa a plataforma Totvs Carol por causa do "Clock in", um sistema que permite o registro do ponto dos funcionários via app no celular ou tablet. Com essas ferramentas é realizado o registro de ponto através de reconhecimento facial.


Caso você não tenha familiaridade com essas plataformas, seus termos e não tenha acesso à mesma para editar a configuração, contate a equipe técnica responsável (ao persistir os sintomas procure um médico... kkk, brincadeira).

Enfim, vamos ao memorando: Vou fazer um lembrete de como alterar o mapeamento de campos na plataforma Totvs Carol; neste caso em específico para exibir o nome social (campo RA_NSOCIAL) ao invés do nome (RA_NOME), quando o primeiro não está vazio (esta foi uma solicitação do RH daqui da empresa, para atender aos funcionários que usam o nome social em lugar do seu nome de registro).

Primeiramente, acesse a plataforma Carol e, no menu à esquerda, passe o mouse sobre a opção Connectors. Após o menu se expandir, escolha a opção TOTVS Protheus (conforme imagem abaixo).

Tela do passo a passo do tutorial


Em seguida, você deve escolher as tabelas desejadas para alterar o mapeamento dos campos.
No meu caso, em que quero alterar o mapeamento do campo nome, devo escolher duas tabelas: sra_employee e sra_user.

Vou começar com a tabel sra_employee. Após passar o mouse sobre o nome da tabela, é só clicar no botão Map para editar o mapeamento.


Tela do passo a passo do tutorial


Na sequência, é só buscar pelo campo desejado. No meu caso é o campo nome (exibido como Name). Após localizar o campo, é só passar o mouse sobre o mesmo e depois clicar no botão de edição (que possui, na atual versão da plataforma, a aparência de um lápis). Segue abaixo o print:


Tela do passo a passo do tutorial


Em seguida você pode criar o mapeamento desejado. No meu caso, vou editar o mapeamento de modo que quando o campo RA_NSOCIAL estiver preenchido, a plataforma escolha o mesmo ao invés do campo RA_NOME, porém caso o campo RA_NSOCIAL esteja vazio, a plataforma escolherá o campo RA_NOME.

Vamos por partes. No meu caso a configuração já está feita. Mas vamos fingir que não e começar excluindo a configuração que está lá (conforme o print abaixo):

Tela do passo a passo do tutorial

Após passar o Mouse pelo nome da regra (no exemplo acima a regra numero 1), aparece um botão no formato de uma pequena lixeira. Clicando na lixeira a regra é eliminada.

Após excluir todas as regras, teremos apenas um botão de mais para incluir as regras que desejamos (conforme o print):


Tela do passo a passo do tutorial


Além disso, para iniciar o mapeamento, devemos nos certificar de que os campos do banco de dados desejados estejam selecionados na linha "Select one or more sources".
Para remover os campos que já estão nesta linha (caso não sejam desejados) é só clicar no "x" que há em cada um deles (conforme o print abaixo):

Tela do passo a passo do tutorial

No meu caso estes campos estão corretos. Porém vou excluir os mesmos apenas para demonstrar como vai ficar e depois como incluímos esses campos (processo bem simples).

Após apagar tudo (regras e campos) teremos uma tela completamente vazia para o mapeamento do campo Name (confore print abaixo):

Tela do passo a passo do tutorial


Agora que está tudo vazio, vamos começar.

Primeiramente vamos escolher os campos desejados em "Select one or more Sources". Para isso, basta clicar na linha e digitar o nome do campo e, após o mesmo aparecer em uma lista suspensa, é só clicar sobre ele (conforme o print abaixo):

Tela do passo a passo do tutorial


Os campos que desejamos escolher são RA_NOME e RA_NSOCIAL. Após escolher a ambos e clicar neles, a tela ficará assim:
Tela do passo a passo do tutorial


Agora é hora de começar a cadastrar as regras desejadas.
Primeiro vamos criar uma regra que deixa o conteúdo dos campos com letra maiscula. Essa é na verdade a segunda regra, mas vamos inseri-la primeiro para explicar como arrastar as regras a fim de mudar sua ordem.

Para simplificar: primeiro use a regra captalize, depois a regra função javascript, depois arraste a regra captalize para segunda posição. Caso você já queira deixar as coisas na ordem certa, insera primeiro a função JavaScript e depois a função Captalize.

Vamos por partes. Primeiro, vamos clicar no sinal de mais para inserir uma regra.
Tela do passo a passo do tutorial


Na sequência vamos escolher a opção Capitalize text.

Tela do passo a passo do tutorial

Incluindo a regra captalize, teremos o seguinte resultado:

Tela do passo a passo do tutorial


Devemos clicar na linha que está em vermelho (Variable) e escolher qual informação desejamos deixar Captalizado (ou seja, qual variável possui o texto que queremos deixar com a primeira letra Maiúscula). Porém, isso não vai ser possível agora, visto que não queremos deixar nenhuma das variáveis atuais e sim a função que criaremos a seguir. No momento, só estão disponíveis os campos que escolhemos anteriormente (ra_nome e ra_nsocial):

Tela do passo a passo do tutorial


Ainda que você escolha um desses campos agora, não tem problema, pois você pode trocar depois.

Agora vamos para a próxima regra (que será a primeira depois de arrastarmos a mesma para a primeira posição). Essa regra é do tipo função em Java Script. Basta passar o mouse logo abaixo da regra numero 1 clicar no sinal de mais que vai aparecer (conforme o print a seguir):

Tela do passo a passo do tutorial


Note que se você não posicionar o mouse onde está a flexa vermelha no print anterior, o sinal de mais desaparece.

Após clicar no sinal, você deverá digitar o nome do tipo de regra desejado, no meu caso é Generic JavaScript:

Tela do passo a passo do tutorial


Após isso a tela ficará conforme o print abaixo, com um bloco de código que poderemos editar. Mas antes, vamos clicar nos pontinhos que aparecem do lado esquerdo do numero da regra e vamos arrastar para deixar cada regra na devida ordem, ou seja, a função JavaScript deverá ir para cima, onde passará a ser a regra numero 1.


Tela do passo a passo do tutorial


Feito isso, poderemos clicar no campo "Function" e dar um nome para a função JavaScript que vamos criar. No meu caso vou chamar de NomeSocial e depois, no campo "to" vou digitar o mesmo nome, ou seja "NomeSocial". Feito isso, ficara conforme o print abaixo:


Tela do passo a passo do tutorial


Notem no print acima que a regra 1 agora é a função JavaScript, que já está com o nome que eu digitei "NomeSocial".

Agora vamos criar a função propriamente dita, para isso basta clicar na linha 2 e começar a digitar. No meu caso, depois de pronta, a função ficará conforme abaixo:

function NomeSocial() {
if (ra_nsocial != "") // verifica se o campo ra_nsocial é diferente de vazio, isto é, o campo é sim preenchido com alguma informação
return ra_nsocial // Caso seja verdade que o campo ra_nsocial é diferente de vazio, a função retorna o conteúdo do próprio campo ra_nsocial
else
return ra_nome //Mas, se não for verdade que o campo ra_nsocial é vazio, é retornado o conteúdo do campo ra_nome
}

//Desse modo, a plataforma Totvs Carol irá exibir o Nome Social do colaborador sempre que esse campo ra_nsocial for preenchido na tabela SRA. Quando esse campo não estiver preenchido, então a plataforma exibirá o nome informado no campo de costume, isso é: ra_nome.
Podemos ver como ficou no print abaixo:


Tela do passo a passo do tutorial


Agora, por fim, podemos clicar no campo Variable da regra numero 2 (que está destacado em vermelho, indicando que ainda está vazio) e escolher a variável desejada. No caso, vamos escolher a função NomeSocial, ao invés de uma variável, de modo que o retorno dessa função, seja qual for, é que será capitalizado.


Tela do passo a passo do tutorial


Após feita essa configuração, a nossa regra ficará conforme abaixo:


Tela do passo a passo do tutorial


Mas a função ainda não está pronta. Precisamos indicar para ela a existencia das variáveis ra_nsocial e ra_nome. Para isso, precisamos clicar no botão de mais ao lado do nome da função e incluir esses campos lá, de modo que eles passem a ser parâmetros disponíveis para a função.

Tela do passo a passo do tutorial



Clicando no sinal de mais, os campos que podemos adicionar como parâmetros da função apareceram em uma lista suspensa (conforme o print abaixo):


Tela do passo a passo do tutorial


Agora sim a nossa função está completa:


Tela do passo a passo do tutorial


Por fim, podemos subir a barra de rolagem e clicar no botão "Save & Test" caso desejamos testar o mapeamento realizado. E, após isso, devemos clicar no botão "Back to mapping summary" para publicar o mapeamento na plataforma, de modo que esse mapeamento passe a ser realizado de fato pela plataforma Totvs Carol.


Tela do passo a passo do tutorial


Clicando no botão Save & Test, será exibida uma janela para testarmos o funcionamento da regra. Conforme o print abaixo, veja que preenchendo o campo RA_NOME e deixando o campo RA_NSOCIAL, a plataforma identifica que deve exibir o conteúdo do campo RA_NOME com a primeira letra em maiúsculo:


Tela do passo a passo do tutorial


Agora, se preenchermos o campo ra_nsocial e clicarmos no botão rocho para testar, veremos que conforme a regra criada, será exibido o nome social com a primeira letra em maiúsculo (no caso do exmeplo abaixo o nome Silva será exibido).


Tela do passo a passo do tutorial


Após os testes serem realizados, é só fechar a janela de teste (conforme o print acima) e depois publicar a regra. Para publicar, clique no botão "Back to mapping summary" e depois em "Publish" conforme o print abaixo:


Tela do passo a passo do tutorial


A plataforma irá questionar se você deseja mesmo publicar a regra conforme o próximo print. Clique em "Confirm" e a regra será enfim publicada.


Tela do passo a passo do tutorial


Finalizo dizendo que eu já havia realizado esse mapeamento, mas a plataforma Totvs Carol tem o péssimo hábito de sumir com o mapeamento customizado quando recebe atualizações. Irei registrar um chamado junto a Totvs para saber o que é possível fazer para evitar que isso ocorra no futuro.