
01. VISÃO GERAL
Esta documentação tem como objetivo orientar sobre a funcionalidade NO DAT no Clockin Mobile.
02. O QUE É O NO DAT ?
O NO DAT consiste em mudanças nos aplicativos Mobile para possibilitar a melhoria do reconhecimento facial. Atualmente o processo de reconhecimento envolve a leitura de dados da imagem do funcionário em um arquivo de imagens com extensão "DAT" para o reconhecimento facial.
O fluxo atual do reconhecimento foi modificado para que essa leitura de dados da imagem seja feita através de consulta em banco de dados dentro do próprio aplicativo.
Os dados de imagem gerados para que seja feito o reconhecimento facial são chamados de hashes de imagem que nada mais é do que a codificação dos pontos da face da pessoa.
Com essa nova funcionalidade a geração de Arquivo DAT (nome do processo na Carol - generate_dat_file) foi substituída pelo processo de Geração de Hashes (nome do processo na Carol - hash_db).
Alguns pontos a liberação do NO DAT:
- O NO DAT estará disponível a partir de junho de 2023, na versão 12.1.23020000 (2007) ou superior.
- A atualização poderá ser feita através da loja de aplicativos (Google Play para dispositivos Android e App Store para dispositivos IOS);
- A funcionalidade estará disponível para a versão Mobile.
03. QUAIS SÃO OS BENEFÍCIOS DO NO DAT ?
Segue os benefícios do NO DAT:
04. COMO HABILITAR E EXECUTAR O A GERAÇÃO DE HASHES ?
A Geração dos Hashes é feita por um processo da Plataforma Carol, o processo chama-se “hash_db”, é executado através de agendamento. Para acessar, selecionar Carol Apps, e depois “TOTVS RH Clockin BackOffice”. Conforme print abaixo na Aba Process, temos o processo “hash_db”:

A Geração dos Hashes será concluída quando for demonstrado o status "Complete" na linha do Processo hash_db, conforme print abaixo:

04. COMO CONSULTAR OS HASHES GERADOS ?
Os hashes gerados são facilmente visualizados através do "Data Model Hashes". No Menu lateral esquerdo clica-se em "Data Model", para escolher a opção "Hashes". Segue abaixo um descritivo do que significa cada campo do "Data Model Hashes":
- Image Sequence: é a sequencia de imagem do Data Model Imagem
- Source: qual é a origem do Hash. Aqui podemos ter a origem Clockin que significa que o hash veio de uma marcação. Tmbém podemos ter "hr" que significa que o hash veio de uma foto cadastrada no Cadastro de Imagens
- Sequence: é a sequencia do hash gerada para o Person ID (CPF)
- Image Code: é o Image Code (Código da Imagem) do Data Model Imagem
- Code: é o campo usado para guardar o código do dispositivo que a pessoa efetua a marcação. Esta informação permite buscar os hashes por dispositivo num primeiro momento. Então para pessoas que batem sempre no mesmo dispositivo a busca será bem mais rápida.
- PersonId: é o CPF do Funcionário
- Grouping field: é a informação do funcionário relativa ao grupo usado como separador de imagem. Ex: se o separador de imagem é o campo "mdmgroupsectioncode" então o conteudo do campo Grouped Section Code do Funcionario será gerado nesse campo.
- Active: se o funcionário está ativo ou a data de desligamento do funcionário é futura então este campo fica como Active, Caso o funcionário seja desligado a informação será atualizado como inactive. Os registros inativos são utilizados para atualização no aplicativo quando o funcionário for desligado.
- Image Hash: são os códigos gerados referente aos pontos da face. São utilizados para o reconhecimento facial
- Name: nome do funcionário
- Connector: connector de origem do registros. Como foi gerado pelo processo de HASH_DB as informações são atualizadas por esse connector no Clockin.
- Created: data e hora que o registro foi criado no Data Model Hashes
- Last Updated: ultima atualização do registro
- Record Id: é o campo chave de identificação do registro
Abaixo as regras para ocorrer a Geração de Hashes:
- Funcionários ativos ou com data de desligamento futura.
- São gerados "Hashes" das Imagens válidas do Cadastro de Funcionário do Backoffice (imagens com o indicador verde).
- São gerados "Hashes" das Imagens das últimas cinco marcações do funcionário.
- O processo também gera "hashes" para funcionários desligados porém com o campo "Active" como "False", esses "hashes" são integrados com o aplicativo para indicar que o funcionário foi desligado. Para os demais casos o campo "Active" é gerado como "True".
05. QUAIS OS PASSOS PARA REALIZAR O FLUXO DO NO DAT ?
O fluxo do NO DAT é composto dos seguintes passos:
Passo 1 - Cadastramento da Foto, que pode ser feito de três maneiras:
- Inserir no "Backoffice"
- Associação de Fotos na Marcação
- Integração da Foto via ERP
Passo 2 - Efetuar o agendamento do processo de Geração de "Hashes" ("hash_db"). Este processo gera informações no "Data Model Hashes". Segue abaixo algumas regras:
- Ao efetuarmos a liberação do NO DAT teremos um período em que a funcionalidades de banco de imagem pelo arquivo DAT e NO DAT funcionarão em paralelo enquanto os aplicativos não são todos atualizados para a versão do NO DAT. Desta forma é necessário durante um período que o agendamento do "generate_dat_file" seja mantido para que os arquivos .DAT sejam gerados para usuários que não migraram para o NO DAT.
- Para esse caso o indicado é intercalar o horário das gerações. Exemplo: se a geração de DAT ocorre de 4 em 4 horas, as 00:00, 04:00, 08:00, 12:00, 16:00, 20:00, o agendamento do hash_db poderá ser feito as 02:00, 06:00, 14:00, 18:00 e 22:00. Observar também o tempo que leva em média a geração, talvez seja necessário ajustar um período maior para ser possível intercalar as gerações.
Passo 3 - O aplicativo Mobile realiza a sincronização dos "hashes" e grava as informações em banco de dados de três maneiras:
- No momento do "Login"
- De tempos em tempos através de uma agendamento no aplicativo
- Pelo botão "Sincronizar Funcionários" realiza a sincronização no início e através do botão de sincronização parcial (menu lateral do aplicativo)
Passo 4 - Quando o funcionário se posiciona para realizar a marcação por reconhecimento o aplicativo consulta as informações no banco de dados para realizar o reconhecimento facial. Abaixo as regras que são usados para o buscar o os "hashes" para o reconhecimento:
- O aplicativo faz uma busca de "hashes" que batem nesse dispositivo para otimizar o reconhecimento. Caso não encontre, ele faz a busca nos demais "hashes".