Child pages
  • DI Currículos Gupy x TOTVS - Datasul
Skip to end of metadata
Go to start of metadata

INTEGRAÇÃO

Contexto de Negócio (Introdução)   

Cada vez mais o mercado exige que as operações complexas e manipulação de dados ainda mais ágeis e com custos reduzidos. Com o RH não é diferente, os processos cada vez mais complexos e com muitas variáveis a serem analisadas no processo de contratação, os recrutadores precisam de agilidade na análise e uma avaliação mais crítica no momento de contratar um novo recurso.

Com essa necessidade e a importância desta área dentro da empresa, softwares especialistas em Recrutamento e Seleção estão cada vez mais presentes no mercado e foi neste contexto que surgiu a necessidade da criação de uma interface para que possibilite automatizar o cadastro base dos candidatos dentro do ERP através de uma interface de integração.  

Sistemas Envolvidos

  • Datasul (módulo Recrutamento e Seleção): responsável por controlar os processos de Recrutamento e Seleção, auxiliando desde o cadastramento do currículo do candidato até a contratação do funcionário na empresa, vinculado a uma vaga específica.

  • Gupy (sistema de Recrutamento e Seleção): O sistema de recrutamento e seleção com inteligência artificial que ajuda a empresa a estruturar um processo digital engajante e acertar nas contratações.


Integração

O objetivo desta integração é permitir que a área do RH ou área responsável pelo Recrutamento e Seleção do Datasul, recebam os dados básicos de currículo dos candidatos de outros sistemas especializados na área, reduzindo assim o trabalho de inclusão manual de todas as informações dentro do sistema;

  • Benefícios para o Recrutador
    • O recrutador poderá fazer uso de um sistema mais robusto para recrutamento.
    • Não terá um investimento alto de tempo para o cadastramento, pois os dados básicos do currículo serão enviados através da API de Candidatos.
  • Arquitetura (Tecnologia)
    • Toda integração entre o Datasul e o Sistema é feita por intermédio de comunicação direta com os Web Services (que são fixos) REST (Representation State Transfer) utilizando o formato JSON (JavaScript Object Notation) de serialização de dados.

Escopo

Por intermédio desta integração será disponibilizada a seguinte funcionalidade:

  • Ao ser contratado na Gupy, é acionada a integração com o Datasul que cria o Candidato Externo (RS0027), como situação Admitido, já vinculado a uma Requisição de Pessoal (RS0765) e também com situação de Admitido. Esta requisição por sua vez é criada e finalizada, não necessitando nenhuma ação do usuário no Datasul em relação à seleção desta vaga, uma vez que este processo já foi todo feito no Sistema da Gupy. 
  • A partir deste Candidato Externo é também gerada na integração uma Pessoa Física (FP1440), ficando o candidato pronto para ser admitido no RS0278 Candidatos para Admissão que demonstra os candidatos que foram aprovados no processo de seleção e estão disponíveis para serem cadastrados no FP1500 Manutenção de Funcionários. 
  • Ao acionar o botão Admitir do RS0278, é aberto o FP1500 que já sugere as seguintes informações:
    • Estabelecimento (escolhido no site da Gupy para a vaga)
    • Pessoa Física (gerada com as informações preenchidas pelo candidato no site da Gupy) 
    • Carteira de Trabalho (preenchida pelo candidato no site da Gupy) 
    • Lotação (escolhida no site da Gupy para a vaga)
    • Cargo (escolhido no site da Gupy para a vaga)

Abaixo demonstramos um desenho como esta integração se dará:


Fora do escopo

  • Automatização de consultas de currículos ou candidatos.
  • Importação de base cadastral, para que os cadastros que são base para o cadastro de currículo.
  • Informações do candidato que não se enquadram dentro da tabela de Currículo.
  • Atualização de currículo já cadastrado no Datasul.

Pré-requisitos instalação/implantação/utilização

  • Versões mínima do TOTVS/Datasul: 12.1.26
  • Estrutura de rede estável, para que haja trafego de dados sem interrupção
  • Datasul devidamente configurado:
  • Carga das informações de Unidade de Lotação/Cargo do Datasul realizada na Gupy → utilizar programa (prghur/spp/exporta_Gupy.r) para exportar informações do Datasul e importar na GUPY
  • Serviço Rest habilitado em seu server, com acesso à internet. 

Processos

O Sistema requisitante enviará as informações via Json para a interface de integração, desta forma será gerado um novo registro na tabela de currículo no Datasul, caso tenha êxito na geração do registro, será retornado a mesma estrutura de Json confirmando sua gravação, caso contrário enviará as informações de inconsistências citadas nos próximos tópicos.

Limitações / Restrições Gerais

  • Com o objetivo de manter a estrutura e a agilidade da estrutura Rest, o Web Service Rest receberá registro individual de cada currículo de candidato.
  • A integração não contemplará exclusão de registros no Datasul, para isso o usuário deverá acessar o ERP e excluir manualmente o mesmo e seus devidos relacionamentos. 

Como realizar a chamada da API REST

Para realizar a integração com o parceiro TOTVS é necessário as informações básicas para cadastramento do candidato.

  • Preenchimento do EndPoint da API candidates;
  • Utilizar a chamada do método Post e do Serviço candidates;
  • Preenchimento dos parâmetros obrigatórios da API;

Parâmetros de Entrada:

Parâmetro

Valor de Exemplo

Obrigatório

Tipo

Valor Default

Descrição
authorization usuario:senhaSim

header


autenticação é importante para o funcionamento correto da API em casos de ambientes com autenticação Http Basic.
contentrequest da apisimbody

Estrutura json com informações de cadastro do candidato:

Propriedades Obrigatórias:

Dados da Admissão - Serão Sugeridos na Admissão (FP1500):

  • companyId: Empresa que o candidato será admitido.
  • branchId: Estabelecimento que o candidato será admitido.
  • roleId: Cargo que o candidato será admitido.
  • departmentId: Lotação na qual o candidato será admitido. 

Dados de Currículo.

  • cpf:Informação pertinente ao candidato
  • name: Nome do candidato.
  • birth: Data Nascimento do candidato
  • educationalLevel: Grau de instrução do candidato conforme tabela do eSocial. 
  • homeState: Sigla do estado de nascimento
  • nativeCountry: País de nascimento


Parâmetros e Chamada do Método:

Autenticação do tipo básica. 

Método POST.

{protocolo}://{host}/api/rh/v2/candidates

Request da API: Exemplo:

Dados utilizados da API

Por ser uma estrutura única para todos os produtos, há dados que existem em um produto (RM) e não existe no Protheus, desta forma cada produto utilizará os campos pertinentes aos seus ambientes.

Propriedade API RESTCAMPO DATASULDESCRIÇÃOFormato
companyIdcdn_empresaEmpresa que o candidato será admitido.001
branchIdcdn_estabEstabelecimento que o candidato será admitido. 101
roleIdcdn_cargo_basic + cdn_niv_cargoCargo e nível que o candidato será admitido, separados por traço (-).10-0
departmentIdcod_unid_lotacLotação que o candidato será admitido. 110010
namenom_candemprNome do CandidatoJoão da Silva Santos
nickNamenom_abrevNome Abreviado ou ApelidoJão
citynom_cidad_rhCidade (endereço)Santos
statecod_unid_federac_rhEstado (endereço)SP
countrycod_pais_rhPaís (endereço)Brasil
cepcod_cep_rhCep (endereço)12345678
phoneNumber1num_ddd + num_telefoneDDD e Fone1312345678
phoneNumber2num_ddd_contat + num_telefone_contatDDD Fone Contato1399123456
identityNumbercod_id_estad_fisicRG123456789
identityNumberEmitterStatecod_unid_federac_estad_fisicUF RGPR
identityNumberEmitterAgencycod_orgao_emis_estad_fisicÓrgão Emissor RGSSP
identityNumberEmissionDatedat_emis_estad_fisicData Emissão RG2018-07-21
cpfcod_id_federCPF12345678900
workCardcod_cart_trabNum Carteira Trabalho 12345678
workCardSerialNumbercod_ser_cart_trabSérie Carteira Trabalho123
street nom_ender_rhEndereçoAvenida Atlântica
numbercod_enderecoNúmero123
sexidi_sexoSexoF - Feminino;
M - Masculino.
homeStatecod_unid_federac_nascNaturalidade - UFSP
nationalityidi_orig_pessoa_fisicNacionalidadeBrasileiro
naturalnessnom_naturalidadeNaturalidadeCampinas
nativeCountrycod_pais_nascPaís NascimentoBrasil
birthdat_nascimentoData de Nascimento1900-01-01T01:01:01
emailnom_e_mailEmailTESTE@TESTE.COM.BR
disabledlog_livre_1Portador de Necessidades Especiais
Nota: campo da rh_pessoa_fisic. 

True > Sim
False > Não

educationalLevelcdn_grau_instrucGrau de Instrução do candidato conforme tabela do eSocial. Deve existir no FP0120. 08 > Educação Superior incompleta

Situações de Erros Tratados

O envio de dados inesperados nos parâmetros de entrada da API REST pode ocasionar alguns erros. Desta forma, foram criados alguns tratamentos de erros, listados abaixo, cada um com sua respectiva mensagem e solução.

Tratamento de erros de integração Datasul:


Mensagens de Pré-Validação

Erro

Mensagem

Solução

API RESPONSE
1Já existe candidato externo com o CPF informado.Verificar se o CPF (cpf) informado já é um candidato externo no RS0027 ou RS0009 ou pessoa física no FP1440. 
{
   "errorCode": 1,
   "errorMessage": "Já existe candidato externo com o CPF informado."
}

366

Nome deve ser preenchido. 

Verificar se a propriedade json name está preenchida no pacote enviado .

{
   "errorCode": 366,
   "errorMessage": "Nome deve ser preenchido."
}
158

País / UF Nascimento inválido. 

Verificar se as propriedades json nativeCountry e homeState existem. Lembrando que país é o nome do país de nascimento e UF é a sigla da UF de nascimento. Ambos devem existir no FP0100. 
{
   "errorCode": 158,
  "errorMessage": "País/UF Nascimento Inválido para CPF "
}
56Parâmetros Recrutamento e Seleção (RS0006) inexistente para a empresa informada.Verificar se o programa RS0006 foi minimamente preenchido na empresa que o candidato será admitido. Estas informações são necessárias para o correto cadastramento do candidato no Sistema. 
{
   "errorCode": 56,
  "errorMessage": "Parâmetros Recrutamento e Seleção (RS0006) inexistente para a empresa informada."
}
158Funcionário Responsável não foi informado nos Parâmetros Recrutamento e Seleção (RS0006) para a empresa informada.Não foi informado responsável pela requisição no RS0006. Verificar o RS0006 da empresa (companyId) informada. 
{
   "errorCode": 158,
  "errorMessage": "Funcionário Responsável não foi informado nos Parâmetros Recrutamento e Seleção (RS0006) para a empresa informada."
}
158Motivo Requisição Pessoal não foi informado nos Parâmetros Recrutamento e Seleção (RS0006) para a empresa informada.Não foi informado o motivo padrão de solicitação de requisição de pessoal no RS0006. Verificar o RS0006 da empresa (companyId) informada. 
{
   "errorCode": 158,
  "errorMessage": "Motivo Requisição Pessoal não foi informado nos Parâmetros Recrutamento e Seleção (RS0006) para a empresa informada."
}
56Funcionário Responsável Inexistente. Verifique Parâmetros Recrutamento e Seleção (RS0006) da empresa informada.Existe alguma informação de responsável pela requisição no RS0006, porém este funcionário não existe. Verificar o RS0006 da empresa (companyId) informada. 
{
   "errorCode": 56,
  "errorMessage": "Funcionário Responsável Inexistente. Verifique Parâmetros Recrutamento e Seleção (RS0006) da empresa informada."
}
158Grau de Instrução inválido.Verificar se o grau de instrução (educationalLevel) informado para o candidato está relacionado em algum grau de instrução eSocial no FP0120. 
{
   "errorCode": 158,
  "errorMessage": "Grau de Instrução Inválido."
}
158Empresa Parâmetros RH inválida.Verificar se a empresa (companyId) informada é uma empresa de RH e possui registro no FP0500. 
{
   "errorCode": 158,
  "errorMessage": "Empresa Parâmetros RH Inválida."
}


OBS: Estas mensagens de validações serão retornadas sempre que algum campo passado que seja obrigatório ou que algum campo enviado tenha sua origem de dados em outra tabela e não seja localizado na mesma, vale lembrar que são apenas exemplos de mensagens de erros e podendo variar o nome da propriedade enviada.

Checklist de suporte da aplicação

Itens a serem verificados durante o atendimento:

  • Verificar se os pré-requisitos foram atendidos para a chamada da API;
  • Verificar se na chamada da API o EndPoint, o nome do serviço e todos os campos obrigatórios foram informados;
  • Verificar se o retorno da API apresenta algum erro tratado (códigos e mensagens de erro citados neste documento) e consultar a solução na mesma tabela que descreve o erro;
  • Em caso de Erro não tratado, verificar se possui alguma informação de banco de dados, conexão com o servidor, clientlog, log do appServer ou algo que possa identificar a origem do problema.