01. DADOS GERAIS

Produto:

TOTVS RH

Linha de Produto:

Linha Protheus 

Segmento:

RH 

Módulo:GESTÃO DE PESSOAS (SIGAGPE)
Função:

GPEA944B

GPEA944C

GPEM939

GPEM939A

GPEM939B

GPEM939C

Ticket:
Requisito/Story/Issue (informe o requisito relacionado) :

DRHCALCPRT-8181

DRHCALCPRT-8161

DRHCALCPRT-8176

DRHCALCPRT-8709

DRHCALCPRT-8710

DRHCALCPRT-9268

DRHCALCPRT-9326

DRHCALCPRT-9510


02. 
SITUAÇÃO/REQUISITO

Criar uma rotina que fará a integração dos cadastros do Protheus com a Feedz e uma rotina que possibilite consultar as informações dos lotes de integrações com a Feedz.


03. SOLUÇÃO

Efetuado o desenvolvimento da integração com Feedz.

A melhoria depende da aplicação da atualização liberada no pacote de expedição do módulo RH a partir de 09/06/2023 e da execução do UPDDISTR com o dicionário diferencial para os releases iguais ou superiores a versão 12.1.033.

Clique aqui para exibir ou esconder o conteúdo.

Foi efetuado a criação de campos no dicionário SX3 conforme estrutura abaixo:

X3_ARQUIVOX3_ORDEMX3_CAMPOX3_TIPOX3_TAMANHOX3_TITULOX3_DESCRICHELP
REF01REF_FILIALC2FilialFilial

Filial do lote

REF02REF_PRCIDC100Process IDProcess ID

Process ID do lote retornado pelo P&M

REF03REF_TIPOC1Tipo APITipo API

Tipo da API

REF04REF_DATINTD8Data Integr.Data Integr.

Data da integração

REF05REF_HORINTC8Hora Integr.Hora Integr.

Hora da integração

REF06REF_STATUSC1StatusStatus Integração

Status da integração

REF07REF_LOTEM10LoteLote Integração

JSON do lote integrado

REF08REF_RETORNM10RetornoRetorno P&M

Retorno do lote pelo P&M

REF09REF_USERC6UsuárioUsuário

Usuário responsável pela geração do lote

REF10REF_OKC2Selecionado?Selecionado?

Evento selecionado para consulta?

REF11REF_TPINTC1Tipo Int.Tipo IntegraçãoTipo da Integração


Foi efetuado a criação de parâmetros no dicionário SX6, conforme estrutura abaixo:

X6_VARX6_TIPOX6_DESCRICExemplo de preenchimento
MV_APIFEE1CURL base do ambiente de integração com a Feedz

Ambiente Produção: https://integrations.feedz.com.br/protheus-feedz-etl/

Ambiente Homologação:  https://integrations.feedz.dev/protheus-feedz-etl/

MV_APIFEE2CToken de autenticação para integração com a Feedz

O parâmetro MV_APIFEE1 e MV_APIFEE2 devem ser preenchidos com base na informação gerada na aplicação da Feedz.

A chave na Feedz é obtida em: Configurações > Integrações > Chave Integração (API 2.0). Caso o campo esteja vazio, clicar em Gerar Token.

Para mais informações sobre o Token e URL entre em contato com o seu Customer Sucess Feedz.

Importante: O parâmetro MV_APIFEE1  deve ser configurado conforme o formato de exemplo da tabela acima.


Considerações importantes:


As informações enviadas para a Feedz são geradas conforme o detalhamento abaixo:

Será enviado informações a partir da tabela SM0, conforme filiais selecionadas no botão "Filtro de Filiais".

As seguintes informações serão enviadas:


"integrationId": M0_CODIGO+M0_CODFIL,

"name": M0_FILIAL.

Será enviado informações a partir da tabela SQ3, conforme filiais selecionadas no botão "Filtro de Filiais" e filtro realizado através do botão "Filtro de Cargos".

As seguintes informações serão enviadas:


  • Se modo de acesso compartilhado, será enviado os dados abaixo:

"integrationId": M0_CODIGO+Q3_FILIAL+Q3_CARGO,

"name": Q3_DESCSUM, ou Q3_DESCSUM+M0_CODIGO+Q3_FILIAL+Q3_CARGO, caso configurada opção de envio de descrição + código.

"positionGroupIntegrationId": M0_CODIGO+Q0_FILIAL+Q0_GRUPO.


  • Se modo de acesso exclusivo, será enviado os dados abaixo (conforme cadastro do De X Para):

"integrationId": M0_CODIGO+REN_FILIAL+REN_CODIGO,

"name": REN_DESC.


Será enviado informações a partir da tabela SQB, conforme filiais selecionadas no botão "Filtro de Filiais" e filtro realizado através do botão "Filtro de Departamentos".

As seguintes informações serão enviadas:


  • Se modo de acesso compartilhado, será enviado os dados abaixo:

"integrationId": M0_CODIGO+QB_FILIAL+QB_DEPTO,

"name": QB_DESCRIC, ou Q3_DESCSUM+M0_CODIGO+QB_FILIAL+QB_DEPTO, caso configurada opção de envio de descrição + código.


  • Se modo de acesso exclusivo, será enviado os dados abaixo (conforme cadastro do De X Para):

"integrationId": M0_CODIGO+REN_FILIAL+REN_CODIGO,

"name": REN_DESC.

Será enviado informações a partir da tabela SX5, da tabela genérica 1C.

As seguintes informações serão enviadas:


"integrationId": M0_CODIGO+X5_FILIAL+X5_CHAVE,

"name": X5_DESCRI;

Será enviado informações a partir da tabela SRA, conforme filiais selecionadas no botão "Filtro de Filiais" e filtro realizado através do botão "Filtro de Funcionários".

As seguintes informações serão enviadas:


"integrationId": M0_CODIGO+RDZ_CODRD0,

"name": RA_NOMECMP ou RA_NOME,

"socialName": RA_NSOCIAL,

"email": RA_EMAIL,

"admissionDate", RA_ADMISSA,

"lastRaiseDate": R3_DATA,

"birthDate": RA_NASC,

"demissionDate": RA_DEMISSA,

"experienceEndDate": RA_VCTEXP2 ou RA_VCTOEXP,

"dismissalType": de acordo com o campo "Tipo P&M" da tabela S043;

"hiringTypeIntegrationId": de acordo com o campo "Agrupador P&M" da tabela S049, 

"departmentIntegrationId": M0_CODIGO+QB_FILIAL+QB_DEPTO, se tabela SQB em modo compartilhado, ou M0_CODIGO+REN_FILIAL+REN_CODIGO, se tabela SQB em modo exclusivo conforme cadastro do De x Para,

"positionIntegrationId": M0_CODIGO+Q3_FILIAL+Q3_CARGO, se tabela SQ3 em modo compartilhado, ou M0_CODIGO+REN_FILIAL+REN_CODIGO, se tabela SQ3 em modo exclusivo conforme cadastro do De x Para,

"facilityIntegrationId": M0_CODIGO+RA_FILIAL.

Será enviado informações a partir da tabela SRA, conforme filiais selecionadas no botão "Filtro de Filiais" e filtro realizado através do botão "Filtro de Funcionários".

As seguintes informações serão enviadas:


"personIntegrationId": M0_CODIGO+RDZ_CODRD0,

"managerIntegrationId": M0_CODIGO+RDZ_CODRD0.


A estrutura hierárquica possui a mesma configuração que é utilizada no Portal de Gestão de Capital Humano e no Meu RH, através da configuração de departamentos, postos e visão.

Para mais informações, consulte as documentações a seguir: https://tdn.totvs.com/x/LYx9Hghttps://tdn.totvs.com/x/dfryHQ e https://tdn.totvs.com/pages/releaseview.action?pageId=500300689.


As opções de integração irão consumir as seguintes APIs da Feedz:

OpçãoAPI Feedz
Filiais

/api/v1/auxiliary-records/facilities

Cargos/api/v1/auxiliary-records/positions
Departamentos/api/v1/auxiliary-records/departments
Grupos de contrato/api/v1/auxiliary-records/hiring-types
Funcionários/api/v2/persons
Líder dos funcionários/api/v1/persons/bind


Após a geração e envio de um lote de registros para a Feedz, será retornado para o Protheus um UUIID de identificação do lote de processamento e esse ID será salvo na tabela REF conforme exemplo abaixo:

CampoConteúdo
REF_FILIAL

Sempre em branco

REF_PRCID

Process ID do lote retornado pela Feedz

REF_TIPO

Tipo da API:

1=Filiais

3=Cargos

4=Departamentos

5=Funcionários

6=Grupos de contrato

D=Líder dos funcionários

REF_DATINT

Data da integração

REF_HORINT

Hora da integração

REF_STATUS

Status da integração:

0=Não iniciado

1=Executando

2=Concluído

3=Houve erro de validação

X=Não encontrado

REF_LOTE

JSON do lote

REF_RETORNRetorno do processamento realizado pela Feedz
REF_USERCódigo do usuário responsável pela integração
REF_TPINT2=Feedz


04. DEMAIS INFORMAÇÕES

Atualizador de dicionário e base de dados - UPDDISTR.

Schedule - Como agendar a execução de rotinas.

Integração com a Feedz.

Vídeos How To:

How To | MP - SIGAGPE integração com a Feedz Parte 1

How To | MP - SIGAGPE integração com a Feedz Parte 2

How To | MP - SIGAGPE integração com a Feedz Parte 3

How To | MP - SIGAGPE integração com a Feedz Parte 4

How To | MP - SIGAGPE integração com a Feedz Parte 5

05. ASSUNTOS RELACIONADOS

        Não se aplica




<style>
div.theme-default .ia-splitter #main {
    margin-left: 0px;
}
.ia-fixed-sidebar, .ia-splitter-left {
    display: none;
}
#main {
    padding-left: 10px;
    padding-right: 10px;
    overflow-x: hidden;
}

.aui-header-primary .aui-nav,  .aui-page-panel {
    margin-left: 0px !important;
}
.aui-header-primary .aui-nav {
    margin-left: 0px !important;
}

.aui-tabs.horizontal-tabs>.tabs-menu>.menu-item.active-tab a::after { 
	background: #FF9900; !important 
}

.menu-item.active-tab { 
	border-bottom: none !important; 
}

</style>