01. DADOS GERAIS

Produto:

Linha de Produto:

Segmento:

Módulo:SIGAGPE
Função:

GPEA430

GPEA944A

GPEA944B

GPEA944C

GPEM939

GPEM939A

GPEM939B

GPEM939C

GPTABBRA

Ticket:


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

DRHCALCPRT-3734

DRHCALCPRT-4009

DRHCALCPRT-4164

DRHCALCPRT-3736

DRHCALCPRT-3733

DRHCALCPRT-3735

DRHCALCPRT-3737

DRHCALCPRT-4380

DRHCALCPRT-4375

DRHCALCPRT-4452

DRHCALCPRT-4504

DRHCALCPRT-4518

DRHCALCPRT-4374

DRHCALCPRT-4376

DRHCALCPRT-4377

DRHCALCPRT-4378

DRHCALCPRT-4400

DRHCALCPRT-4381

DRHCALCPRT-4401

DRHCALCPRT-5010

DRHCALCPRT-6427


02. SITUAÇÃO/REQUISITO

Criar uma rotina que fará a integração dos cadastros do Protheus com o P&M (Performance & Metas) e uma rotina que possibilite consultar as informações dos lotes de integrações com o P&M (Performance & Metas).

03. SOLUÇÃO

Efetuado o desenvolvimento da integração com o P&M (Performance & Metas).


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


Clique aqui para exibir ou esconder o conteúdo.

Foi efetuado a criação de índices no dicionário SIX, conforme estrutura abaixo:

INDICEORDEMCHAVESHOWPES
REF1REF_FILIAL+REF_TIPO+REF_STATUS+DTOS(REF_DATINT)+REF_HORINT       S
REF2REF_FILIAL+REF_PRCIDN
REF3REF_FILIAL+DTOS(REF_DATINT)+REF_HORINT       S
REN1REN_FILIAL+REN_TIPO+REN_CODIGOS
RET1RET_FILIAL+RET_TIPO+RET_CODIGOS
RET2RET_FILIAL+RET_TIPO+RET_FILCAD+RET_CODCAD S


Foi efetuado a criação de tabelas no dicionário SX2, conforme estrutura abaixo:

X2_CHAVEX2_NOMEX2_MODOX2_MODOUNX2_MODOEMP
REFLote de integração P&MCCC
RENCadastros P&MCCC
RETVínculos Cadastros P&MCCC

O modo de acesso das tabelas REF, REN e RET devem ser obrigatoriamente compartilhado.


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

X3_ARQUIVOX3_ORDEMX3_CAMPOX3_TIPOX3_TAMANHOX3_TITULOX3_DESCRICHELP
RCMZZRCM_TIPOPMC1Tipo P&MTipo P&MInforme o tipo de afastamento para o P&M
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?

REN01REN_FILIALC2FilialFilialFilial do registro
REN02REN_TIPO  C1TipoTipoTipo do cadastro para o P&M
REN03REN_CODIGOC20CódigoCódigoCódigo do cadastro no P&M
REN04REN_DESC  C100DescriçãoDescriçãoDescrição do cadastro no P&M
RET01RET_FILIALC2FilialFilialFilial do registro
RET02RET_TIPO  C1TipoTipoTipo do cadastro para o P&M
RET03RET_CODIGOC20CódigoCódigoCódigo do cadastro no P&M
RET04RET_FILCADC2Fil. CadFilial CadastroFilial do cadastro
RET05RET_CODCADC20Cód. Cadast.Código CadastroCódigo do cadastro


Foi efetuado a criação de tabela genérica no dicionário SX5, conforme estrutura abaixo:

X5_TABELAX5_CHAVEX5_DESCRI
1C1Empregado e Trabalhador Temporário
1C2Avulso
1C3Agente Público 
1C4Cessão
1C7Contribuinte Individual 
1C9Bolsista


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

X6_VARX6_TIPOX6_DESCRICX6_DESC1Exemplo de preenchimento
MV_APIPEM0CURL para geração do token de acesso do ambientede integração com o Performance & Metas

https://{TENANT}.rac.{ENVIRONMENT}.totvs.app/totvs.rac/connect/token

Exemplo: https://admin.rac.totvs.app/totvs.rac/connect/token

MV_APIPEM1CURL base do ambiente de integração com oPerformance & Metas

https://{NOME_EMPRESA}.performance.totvs.app/integration-general/

Exemplo: https://empresateste.performance.dev.totvs.app/integration-general/

MV_APIPEM2CClientId do ambiente de integração com oPerformance & Metas
MV_APIPEM3CSecretId do ambiente de integração com oPerformance & Metas

Os parâmetros MV_APIPEM0 e MV_APIPEM1 precisam ser configurados conforme o formato de exemplo da tabela acima.

As informações a serem preenchidas conforme o exemplo acima nas variavéis {TENANT}, {ENVIRONMENT} e {NOME_EMPRESA}  devem ser solicitada ao responsável do contrato do P&M (Perfomance e Metas)


Foi efetuado a criação de relacionamentos no dicionário SX9, conforme estrutura abaixo:

X9_DOMX9_IDENTX9_CDOMX9_EXPDOMX9_EXPCDOMX9_LIGDOMX9_LIGCDOMX9_CONDSQLX9_USEFIL
REN001RETREN_TIPO+REN_CODIGORET_TIPO+RET_CODIGO1N
S
SQ0001RETQ0_FILIAL+Q0_GRUPORET_FILCAD+RET_CODCAD1N#RET_TIPO  ='1'N
SQ3001RETQ3_FILIAL+Q3_CARGORET_FILCAD+RET_CODCAD1N#RET_TIPO  ='2'N
SQB001RETQB_FILIAL+QB_DEPTORET_FILCAD+RET_CODCAD1N#RET_TIPO  ='3'N


Foi efetuado a criação de consultas padrão no dicionário SXB, conforme estrutura abaixo:

XB_ALIASXB_TIPOXB_SEQXB_COLUNAXB_DESCRIXB_CONTEM
RCMTPA101RETipo afastamento
RCMTPA20101
GP430TpA(.T.)
RCMTPA501

VAR_IXB
S04328101RETipo desligamento
S0432820101
GPS04328(.T.)
S04328501

VAR_IXB


Considerações importantes:



As informações enviadas para o P&M 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 SQ0, conforme filiais selecionadas no botão "Filtro de Filiais" e filtro realizado através do botão "Filtro de Grupos de cargo".

As seguintes informações serão enviadas:


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

"integrationId": M0_CODIGO+Q0_FILIAL+Q0_GRUPO,

"name": Q0_DESCRI.


  • 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 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,

"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.



No Protheus não é tratado Níveis de Cargo, desta forma, não será possível realizar o controle desta informação.

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.


  • 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 SRE, conforme filiais selecionadas no botão "Filtro de Filiais" e filtro realizado através do botão "Filtro de Movimentação de filiais".

As seguintes informações serão enviadas:


"integrationId":  M0_CODIGO+RE_FILIALP+RE_MATP+RE_DATA,

"personIntegrationId": M0_CODIGO+RDZ_CODRD0,

"facilityIntegrationId": M0_CODIGO+RE_FILIALP,

"changeDate": RE_DATA.


O histórico de movimentação de filiais será enviado ao P&M quando houver transferência de grupo de empresas e/ou de filial.

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

As seguintes informações serão enviadas:


"integrationId":  M0_CODIGO+R7_FILIAL+R7_MAT+R7_DATA+R7_SEQ,

"personIntegrationId": M0_CODIGO+RDZ_CODRD0,

"positionGroupIntegrationId": M0_CODIGO+Q0_FILIAL+Q3_GRUPO, 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,

"changeDate": R7_DATA.


O histórico de movimentação de grupo de cargo será enviado ao P&M quando houver alteração de cargo e o novo cargo estiver vinculado a um grupo de cargo diferente do anterior.

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

As seguintes informações serão enviadas:


"integrationId":  M0_CODIGO+R7_FILIAL+R7_MAT+R7_DATA+R7_SEQ,

"personIntegrationId": M0_CODIGO+RDZ_CODRD0,

"positionIntegrationId": M0_CODIGO+Q3_FILIAL+R7_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,

"changeDate": R7_DATA.


O histórico de movimentação de cargos será enviado ao P&M quando houver alteração de cargo.

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

As seguintes informações serão enviadas:


"integrationId":  M0_CODIGO+RE_FILIALP+RE_MATP+RE_DATA,

"personIntegrationId": M0_CODIGO+RDZ_CODRD0,

"positionIntegrationId": M0_CODIGO+QB_FILIAL+RE_DEPTOP, 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,

"changeDate": RE_DATA.


O histórico de movimentação de departamentos será enviado ao P&M quando houver transferência de departamento.

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

As seguintes informações serão enviadas:


"integrationId":  M0_CODIGO+R8_FILIAL+R8_MAT+R8_DATAINI,

"personIntegrationId": M0_CODIGO+RDZ_CODRD0,

"type": RCM_TIPOPM,

"startDate": R8_DATAINI,

"endDate": RE_DATAFIM.

Será enviado informações a partir da tabela SRD, conforme filiais selecionadas no botão "Filtro de Filiais" e filtro realizado através do botão "Filtro de Faltas" para as verbas dos IDs de cálculo 0054, 0055, 0203, 0242 ou 0243.

As seguintes informações serão enviadas:


"integrationId":  M0_CODIGO+RD_FILIAL+RD_MAT+RD_DATARQ,

"personIntegrationId": M0_CODIGO+RDZ_CODRD0,

"year": RD_DATARQ,

"month": RD_DATARQ,

"daysNotWorked": RD_HORAS.


As verbas do histórico que estejam em horas serão convertidas para dias conforme a configuração do campo RA_HRSDIA.

A quantidade de faltas enviada ao P&M será a quantidade inteira. Por exemplo, se houver 5,5 dias de faltas, será integrado ao P&M 5 dias.

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 do P&M:

OpçãoAPI P&M
Filiais

/api/v1/auxiliary-records/facilities

Grupos de cargo/api/v1/auxiliary-records/position-groups
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
Movimentação de filiais/api/v1/facility-history
Movimentação de grupos de cargo/api/v1/position-group-history
Movimentação de cargos/api/v1/position-history
Movimentação de departamentos/api/v1/department-history
Afastamentos/api/v1/absences
Faltas/api/v1/days-not-worked
Líder dos funcionários/api/v1/persons/bind


Após a geração e envio de um lote de registros para o P&M, 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 pelo P&M

REF_TIPO

Tipo da API:

1=Filiais

2=Grupos de cargo

3=Cargos

4=Departamentos

5=Funcionários

6=Grupos de contrato

7=Movimentação de cargos

8=Movimentação de departamentos

9=Movimentação de filiais

A=Movimentação de grupos de cargo

B=Afastamentos

C=Faltas

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 pelo P&M
REF_USERCódigo do usuário responsável pela integração



04. DEMAIS INFORMAÇÕES

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

Incluindo Campos Reservados (CFGX034 - SIGACFG).

Integração de cadastros básicos de pessoas.

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

Premissas para Integração P&M.

Integração com o P&M (Performance & Metas).


05. ASSUNTOS RELACIONADOS

Não há.




<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>