Histórico da Página
INTEGRAÇÃO GPEAADIAPI
Contexto de negócio (Introdução)
Cada vez mais o mercado exige que operações complexas e manipulação de dados sejam mais ágeis e com custos reduzidos. Com o RH não é diferente, os processos cada vez mais complexos, com muitas variáveis a serem analisadas na 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 especializados em gestão de pessoal estão cada vez mais presentes no mercado e foi neste contexto que surgiu a necessidade da criação de uma interface que possibilite automatizar o cadastro do período de estabilidade dos funcionários dentro do ERP através de uma interface de integração.Controle de Adicionais - additional - INTEGRAÇÃO GPEAADIAPI
Sistemas Envolvidos
Protheus (módulo Gestão de Pessoal): Módulo responsável pela gestão dos dados dos funcionários, folha de pagamento e dentre outros cadastros pertinentes aos colaboradores.
- Quírons - NG
Integração
O objetivo desta integração é permitir que o RH ou área responsável pelo Gestão de Pessoal do Protheus, receba os dados dos do Controle de Adicionais dos funcionários de outros sistemas especializados, reduzindo assim o trabalho de inclusão/alteração/exclusão manual dessas informações dentro do sistema;
- Benefícios
- Não terá um investimento alto de tempo para o cadastramento, pois os dados já serão enviados, editados ou excluídos através da integração a cada requisição do sistema especialista através da API de Adicionaisde Adicional.
- A informação será atualizada de forma automática, facilitando que conferência e confiabilidade dos dados recebidos.
- Arquitetura (Tecnologia)
Toda integração entre o Protheus 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, onde através da ativação do serviço do REST do Protheus esteja disponível para utilizar o serviço.
Escopo
Por intermédio desta integração será disponibilizada a seguinte funcionalidade:
- Atualização dos Adicionais de Periculosidade e Insalubridade do funcionário no módulo SIGAGPE;
Fora do escopo
- Automatização de consultas dos adicionais do funcionariofuncionário
- Importação de base cadastral - dados do Funcionário,
Pré-requisitos instalação/implantação/utilização
- Versões mínimas do Protheus: 12.1.3023
- Possuir acesso à Internet, caso o sistema que venha a utilizar a integração com a aplicação Protheus.
- Estrutura de rede estável, para que haja tráfego de dados sem interrupção.
- Protheus devidamente configurado e serviço Rest habilitado em seu server.
Instalação/Atualização
Este tópico tem por objetivo orientar a instalação da integração, visando o seu funcionamento completo.
Instalação de produtos ou ferramentas necessárias podem referenciar outros documentos existentes, desde que estejam disponíveis no repositório de documentação da TOTVS ou sejam enviados junto com o documento da integração em si.
As informações mínimas necessárias para este tópico são:
Ativação/Desativação da integração
Por padrão esta integração estará em repositório, porém demanda realizar a devida configuração conforme abaixo:
- Configuração de Webservice Rest no Protheus no formato apresentado na seguinte documentação (Exemplo de Configuração de Webservice REST)
Controle de Ambiente
Exige que os seguintes pontos sejam revisados:
- Protheus com sua arquitetura devidamente estruturada.
- Módulo de Recrutamento e Seleção Gestão de Pessoal (SIGAGPE) com suas entidades base, devidamente populadas por dados que no momento da integração serão utilizados na criação do registro de currículoadicional. (Para melhor compreensão, analise o cadastro de currículo disponível dentro do sistema e verifique os campos que possuem consultas em outras tabelas se as mesmas estão com os seus dados devidamente cadastrados).
Controle de Versão
O grupo TOTVS, representado por suas marcas, irá administrar as demandas de evolução dos layouts e demais ajustes, acordando junto aos solicitantes o prazo de liberação de release.
Todas as evoluções programadas deverão ser discutidas e aprovadas pelas marcas antes do início do desenvolvimento e somente serão desenvolvidas em caso de concordância das marcas e alinhamento com as diretivas definidas pelo Comitê de Integração TOTVS.
Suporte
O suporte aos recursos da Integração será de responsabilidade da linha Microsiga Protheus, onde será analisada pela equipe de suporte da Totvs.
Fluxo das Informações
Esta integração traz a funcionalidade exclusivamente à área de Gestão de Pessoal, no processo de alteração dos adicionais do funcionario.
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 Período de Estabilidade serão atualizados os dados de periculosidade e insalubridade dentro do cadastro do funcionário no Protheus, caso tenha êxito na geração do registro, será retornado retornada a mesma estrutura de json confirmando json recebida, acompanhada de uma nova tag chamada id, que será uma chave única composta de informações da entidade dentro do sistema. Desta forma será confirmada sua gravação, caso contrário enviará as informações de inconsistências que serão 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á o registro individual dos adicionais de cada funcionarioA integração não contemplará exclusão de registros no Protheus, para isso o usuário deverá acessar o ERP e excluir manualmente o mesmode cada funcionário.
Como realizar a chamada da API REST
Para realizar a integração com o parceiro TOTVS é necessário são necessárias as informações básicas de consulta para retorno dos funcionários desejadosdo funcionário desejado.
- Preenchimento do EndPoint da API GPEAADIPI;
- Utilizar a chamada do método Put e do Serviço Additional additional;
- Preenchimento dos parâmetros obrigatórios da API.
Situações Tratadas
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.
Mensagens Validação
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.
Estrutura json com informações de cadastro do currículo:
Dados de Período de Estabilidade:
endDate: Data do Final do Período de Estabilidade.Totvs custom tabs box | ||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| ||||||||||||||||||||||||||||||||||||
Parâmetros e Chamada do Método: Para a realização de testes foi utilizado a ferramenta POSTMAN e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo: {protocolo}://{host}/{api}/rh/v1/StabilityControl Request da API:
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 REST | CAMPO PROTHEUS | DESCRIÇÃO | Formato | |||||||||||||||||||||||||||||||||
companyId | Informações de acesso ao sistema, campo contém informação do grupo de empresa | |||||||||||||||||||||||||||||||||||
branchId | RFX_FILIAL | Informações de acesso ao sistema, campo compõe Empresa+Unidade de Negócio+ Filial | "D MG 01 " | |||||||||||||||||||||||||||||||||
employeeId | RFX_MAT | Matrícula do Funcionário | "000001" | |||||||||||||||||||||||||||||||||
startDate | RFX_DATAI | Data de Início do Período | "20200101" | |||||||||||||||||||||||||||||||||
stabilityCode | RFX_TPESTB | Tipo de Estabilidade | "S01" | |||||||||||||||||||||||||||||||||
Erro | Mensagem | Solução | API RESPONSE | |||||||||||||||||||||||||||||||||
201 | Registro criado. |
| ||||||||||||||||||||||||||||||||||
400 | Erro na validação do recebimento da mensagem. | Verificar se as propriedades json companyId ou branchId estão preenchidas com conteúdo válido. |
| |||||||||||||||||||||||||||||||||
400 | Erro na validação do recebimento da mensagem. | Verificar se a propriedade json employeeId possui informações válidas. |
| |||||||||||||||||||||||||||||||||
400 | Erro na validação do recebimento da mensagem. | Verificar se a propriedade json startDate está no formato correto. |
| |||||||||||||||||||||||||||||||||
400 | Erro na validação do recebimento da mensagem. | Verificar se a propriedade json startDate está com conteúdo existente na tabela S053 - Tipos de Estabilidade do Protheus. |
| |||||||||||||||||||||||||||||||||
400 | Erro na validação do recebimento da mensagem. | Verificar se as propriedades json obrigatórias (companyID , branchId , employeeId, startDate, stabilityCode) estão preenchidas. |
| |||||||||||||||||||||||||||||||||
500 | Ocorreu uma falha no retorno da informação. | É necessário avaliar se o servidor está funcionando corretamente. |
| |||||||||||||||||||||||||||||||||
Totvs custom tabs box items | ||||||||||||||||||||||||||||||||||||
| ||||||||||||||||||||||||||||||||||||
Parâmetros de Entrada PUT: | ||||||||||||||||||||||||||||||||||||
Parâmetro | Valor de Exemplo | Obrigatório | Tipo | Valor Default | Descrição | |||||||||||||||||||||||||||||||
authorization | usuario:senha | Sim | header | "" | autenticação é importante para o funcionamento correto da API em casos de ambientes com autenticação Http Basic. | |||||||||||||||||||||||||||||||
stabilityId | T1|D MG 01 |T1|D MG 01 |000001|2020-01-01T18:25:43|S01 | Sim | request | "" | Composição da string a ser enviada, deve ser ser composta por "GRUPO DE EMPRESA|RFX_FILIAL|RFX_MAT|RFX_DATAI|RFX_TPESTB". | |||||||||||||||||||||||||||||||
content | layout json | sim | body | "" |
Parâmetros e Chamada do Método:
Para a realização de testes foi utilizado a ferramenta POSTMAN e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo:
{protocolo}://{host}/{api}/rh/v1/StabilityControl
Request da API:
Bloco de códigolanguage | bash |
---|---|
theme | Eclipse |
title | Exemplo de Request da API |
linenumbers | true |
additional/{additionalId}
Exemplo: http://localhost:5192/api/rh/v1/additional/T1;M SP 01 ;T1|M SP 01 |600001
{ "endDate": "2020-01-15T18:30:43" }
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 todas as linhas, cada linha utilizará os campos pertinentes aos seus ambientes.
Propriedade API REST | CAMPO PROTHEUS | DESCRIÇÃO | Formato |
---|---|---|---|
companyId | M0_CODIGO | Informações de acesso ao sistema, campo contém informação do grupo de empresa | |
branchId |
RA_FILIAL | Informações de acesso ao sistema, campo compõe Empresa+Unidade de Negócio+ Filial | |
employeeId |
RA_MAT |
Chave do Funcionário. |
Empresa|Filial|Matrícula | |||
dangerousness | RA_ADCPERI | Periculosidade | "1" |
unhealthyDegree | RA_ADCINS | Insalubridade Grau | "2" |
Situações Tratadas
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.
Mensagens Validação
Erro | Mensagem | Solução | API RESPONSE |
200 | Atualizado com sucesso. | Registro |
Parâmetros de Entrada DELETE:
Parâmetro
Valor de Exemplo
Obrigatório
TipoValor Default
Descriçãoauthorization usuario:senhaSimheader
""autenticação é importante para o funcionamento correto da API em casos de ambientes com autenticação Http Basic.stabilityIdT1|D MG 01 |T1|D MG 01 |000001|2020-01-01T18:25:43|S01
Simquery""Composição da string a ser enviada, deve ser ser composta por "GRUPO DE EMPRESA|RFX_FILIAL|RFX_MAT|RFX_DATAI|RFX_TPESTB".
Parâmetros e Chamada do Método:
Para a realização de testes foi utilizado a ferramenta POSTMAN e após a configuração do server protheus a API Rest, a requisição deverá ser semelhante a imagem abaixo:
{protocolo}://{host}/{api}/rh/v1/StabilityControl
Situações Tratadas
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.
Mensagens Validação
Erro
Mensagem
Solução
API RESPONSE204Sem conteúdo.Registro foi deletado com sucesso.Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"code": "204",
} |
alterado com sucesso. |
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"code": "204",
} |
400
Erro na validação do recebimento da mensagem.
Verificar se as propriedade json stabilityId está preenchida e com dados válidos no pacote enviado.
- Dados de Empresa e Filial,
- Dados de Filial e Matrícula,
- Formato da Data de Início,
- Tipo de Estabilidade.
Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"code": 400,
"detailedMessage": "Informação stabilityId ausente ou inválida.",
"helpUrl": "https://tdn.totvs.com/x/ZYNvI",
"message": "Erro na validação do recebimento da mensagem."
} |
Ocorreu uma falha no retorno da informação.
É necessário avaliar se o servidor está funcionando corretamente.Bloco de código | ||||||
---|---|---|---|---|---|---|
| ||||||
{
"errorCode": 500,
"errorMessage": "Ocorreu uma falha no retorno da informação."
} |
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.
Totvs custom tabs box itemsdefault | no |
---|---|
referencia | DELETE |
{ "id": "T1;D MG 01 ; T1|D MG 01 | 160001" } | |||
400 | Erro na validação do recebimento da mensagem. | Verificar se as propriedade |
URL Parameters additionalId está preenchida e com dados válidos no pacote enviado.
|
|
|
| |
500 |
Ocorreu uma falha no retorno da informação. | É necessário avaliar se o servidor está funcionando corretamente. |
|
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 ou algo que possa identificar a origem do problema.