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 inovações e prestadores de serviços no ramo de benefícios para administrar dentro do RH, empresas e softwares especialistas na administração de benefícios estão cada vez mais presentes no mercado e foi neste contexto que surgiu a necessidade da criação de uma interface que torne possível automatizar o envio dos dados que hoje são realizados manualmente do ERP para o softwares especialista, seja feito através de uma interface de integração.
O objetivo desta integração é permitir que a área do RH ou área responsável pelos beneficiários, enviem seus dados para o sistema da DIVICOM e assim reduz o trabalho de inclusão manual de todas as informações dentro do sistema.
Por intermédio desta integração estará disponível a seguinte funcionalidade:
Imagem
Fora do escopo
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 teste tópico são:
Por padrão esta integração estará em repositório, porém demanda realizar a devida configuração conforme abaixo:
Exige que os seguintes pontos sejam revisados:
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.
O suporte aos recursos da Integração será de responsabilidade da linha MicroSiga Protheus, onde será analisada pela equipe de suporte da Totvs.
Esta integração traz a funcionalidade exclusivamente de cadastro de Beneficiários.
Esta integração contempla apenas a consulta e envio dos dados de cadastro de Beneficiários.
A DIVICOM realizará o consumo da API com dados básicos que serão utilizados como parâmetros para consultar a base de beneficiários e retornar um conjunto de informações pertinentes ao Cadastro de Beneficiários(GPEA001) e retornar os dados para o requisitante.
Para realizar a integração com o parceiro TOTVS é necessário as informações básicas de consulta para retorno dos beneficiários desejados.
As Entradas e Saídas de dados tipo data(Date) acompanham o formato padrão YYYY-MM-DDThh:mm
Parâmetros de Entrada:
Parâmetro | Valor de Exemplo | Obrigatório | Tipo | Parâmetro | Valor Default | Descrição |
page | 1 | Sim | Integer | query | Página que está sendo requisitada. | |
pageSize | 1 | Não | Integer | query | 100 | Quantidade de beneficiários por página. |
product | PROTHEUS | Sim | String | query | ||
datemodified | 2019-01-01T00:00:00 | Não | String | query | Data que será utilizada como filtro para trazer beneficiários com data de alteração (RHK_USERGA e RHL_USERGA) maior ou igual ao informado. | |
branchId | D MG 01 | Sim | String | query | ||
companyId | T1 | Sim | String | query | ||
authorization | não será informado pelos parâmetros REST | Sim | String | header | Configuração do parâmetro Security = 1 no arquivo appserver.ini |
Página do Serviço REST:
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:
Estrutura: {protocolo}://{host:porta}/{rest}/{api}/rh/v1/BeneficiariesDataContent/
Exemplo: http://localhost:8034/rest/api/rh/v1/BeneficiariesDataContent/
Retorno da API:
{ "items": [ { "identityNumber": "", "MaritalState": "", "BenefitCPF": "10084068809", "companyKey": "T1|D MG 01 ", "IdentityNumberEmitterAgency": "", "ContractNumberCode": "", "BenefitVendorSegmentCode": "1", "branch": "D MG 01 ", "BenefitCode": "01", "BeneficiaryTall": "", "beginDate": "012015", "BenefitVendorInternalId": "", "code": "01", "FinalDate": " ", "Birth": "2000-01-01T00:00:00", "MotherName": "", "BornAlive": "1", "DentalAssistanceCardCode": " ", "EmployeeInternalId": "", "BenefitsVendorCode": "001", "Name": "DEPENDENTE 001 ", "SUSCardCode": "1267778459364 ", "Gender": "M", "DegreeOfRelatedness": "F", "EmployeeCode": "000006", "RegistryType": "", "MedicalAssistanceCard": "96845712333 ", "BeneficiaryWeight": "", "BenefitInternalId": "", "ContractNumberInternalId": "", "FoodCardsCode": "", "id": "D MG 01 |000006|01|1|001|1|01", "MealCardsCode": "" } ], "hasNext": true, "total": 10 } |
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.
CAMPOS PROTHEUS | PROPRIEDADES API REST | DESCRIÇÃO |
---|---|---|
SM0->M0_CODIGO + "|" + RHK->RHK_FILIAL | companyKey | Agrupamento de Empresa, Unidade de negócio e Filial |
Se for Titular usa o campo RHK->RHK_FILIAL e se for Dependente usa o campo RHL->RHL_FILIAL | branch | Filial do Beneficiário |
Se for Titular usa o Default "00" e se for Dependente usa o campo RHL->RHL_CODIGO | code | Código do Beneficiário |
id | Chave única do funcionário | |
BenefitsVendorCode | Identificador do Fornecedor de Benefícios | |
BenefitVendorInternalId | Identificador Interno do Fornecedor de Benefícios | |
BenefitVendorSegmentCode | Código do tipo de segmento do fornecedor do Benefício: 1 - Assistência Médica | 2 - Assistência Odontológica | |
BenefitCode | Código do Benefício | |
BenefitInternalId | Identificador Interno do Benefício | |
beginDate | Início da vigência do Benefício ao beneficiário | |
FinalDate | Fim da vigência do Benefício ao beneficiário | |
ContractNumberCode | Código do Contrato | |
ContractNumberInternalId | Identificador interno do Contrato | |
EmployeeCode | Identificado do Funcionário | |
EmployeeInternalId | Identificado interno do Funcionário | |
RegistryType | Tipo do Registro do Beneficiário | |
DegreeOfRelatedness | Grau de parentesco do dependente com o Titular: T - Titular, C - Casado, D - desquitado, E - União Estável, I - Divorciado, O - Outros, P - Separado, S - Solteiro, V - Viúvo | |
Name | Tipo do Registro do Beneficiário | |
BenefitCPF | CPF do Beneficiário | |
MotherName | Nome da Mãe do beneficiário titular | |
Gender | Sexo do beneficiário: M - Masculino, F - Feminino | |
MaritalState | Estado Civil C - Casado | D - Desquitado | E - União Estável | I - Divorciado | O - Outros | P - Separado | S - Solteiro | V - Viúvo | |
Birth | Data de aniversário do beneficiário | |
identityNumber | Identidade da pessoa (RG) | |
IdentityNumberEmitterAgency | Orgão emissor da identidade da pessoa (RG) | |
MedicalAssistanceCard | Número do Cartão de Assistência Médica | |
DentalAssistanceCardCode | Número do Cartão de Assistência Odontológica | |
FoodCardsCode | Número do Cartão para Alimentação | |
MealCardsCode | Número do Cartão para Refeição | |
SUSCardCode | Número do Cartão do SUS | |
BornAlive | Flag que determina se o beneficiário foi nascido vivo: 1 - Nascido Vivo , 0 - Não Nascido Vivo | |
BeneficiaryWeight | Peso em (gr) do Beneficiário | |
BeneficiaryTall | Altura em (cm) do beneficiário |
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 Protheus:
Mensagens de Pré-Validação
Erro | Mensagem | Solução | API RESPONSE | |
400 | "Os campos RHK_USERGA, RHL_USERGA, RHK_MATSAU, RHK_MATODO, RHK_CNS, RHL_MATSAU, RHL_MATODO e RHL_CNS são obrigatórios e não foram encontrados. | Habilitar pelo configurador os campos citados na mensagem de Erro. | ||
400 | O parâmetro product é obrigatório. | Preencher o parâmetro product. |
| |
400 | O parâmetro branchId é obrigatório | Preencher o parâmetro branchId. |
| |
400 | O parâmetro companyId é obrigatório. | Preencher o Parâmetro companyId. |
| |
400 | Se preenchido, o parâmetro datemodified deve estar no formato: '2019-05-01T18:25:43'. | Preencher o Parâmetro datemodified no formato padrão. |
| |
400 | Filial não encontrada para os valores informados de empresa e Filial: XX X XX XX | Preencher uma filial válida. |
|
Mensagens de Pós-Validação
Erro | Mensagem | Solução | API RESPONSE | |
404 | Nenhum registro localizado. | Informar uma data(datemodified) que contenham registros alterados(RHK_USERGA e RHL_USERGA). |
|
Tratamento de Erros Inesperados(TRY/CATCH):
{ "code": 500, "detailedMessage": "", "helpUrl": "http://tdn.totvs.com/x/Uzh_HQ", "message": "Ocorreu uma falha no retorno da informação.\r\nErro ao preparar o ambiente com a Empresa e Filial informados!\r\nSaída no final: Falha de conexão com o banco de dados\r\nContacte o administrador do sistema" } |
Itens a serem verificados durante o atendimento: