...
Produto: | |
---|
Linha de Produto: | Linhas_totvs |
---|
Segmento | Distribuição |
---|
Region | Construção Projetos |
---|
Linha | Linha Protheus |
---|
|
|
---|
Segmento: | |
---|
Módulo: | SIGAGPE |
---|
Função: | GPEM939 GPEM939A |
---|
Ticket: |
|
---|
Requisito/Story/Issue (informe o requisito relacionado) : | DRHCALCPRT-3734 DRHCALCPRT-4009 DRHCALCPRT-4164 DRHCALCPRT-3736 DRHCALCPRT-3733 DRHCALCPRT-3735 DRHCALCPRT-3737 |
---|
02. SITUAÇÃO/REQUISITO
Criar uma rotina que fará a integração com o P&M (Performance & Metas) dos itens abaixo:
- Filiais (tabela SM0);
- Grupos de cargo (tabela SQ0);
- Cargos (tabela SQ3);
- Departamentos (tabela SQB);
- Funcionários (tabela SRA).
Criar uma rotina que possibilite consultar as informações dos lotes de integrações com o P&M (Performance & Metas).
03. SOLUÇÃO
Foi efetuado a criação da rotina GPEM939 para efetuar a integração com o P&M (Performance & Metas) dos itens abaixo:
- Filiais (tabela SM0);
- Grupos de cargo (tabela SQ0);
- Cargos (tabela SQ3);
- Departamentos (tabela SQB);
- Funcionários .(tabela SRA).
Foi efetuado a criação da rotina GPEM939B para permitir a visualização das informações dos lotes de integração com o P&M (Performance & Metas), bem como consultar manualmente o status de integração. Também foi disponibilizada a rotina GPEM939C para ser possível agendar no Schedule a consulta automática dos lotes de integração.
Aviso |
---|
|
A melhoria depende da aplicação da atualização liberada no pacote de expedição do módulo RH a partir de XXXX/XXXX/2022 e da execução do UPDDISTR com o dicionário diferencial para os releases iguais ou superiores a versão 12.1.27.
Foi efetuado a |
Aviso |
---|
|
A melhoria depende da aplicação da atualização liberada no pacote de expedição do módulo RH a partir de XXXX/XXXX/2022 e da execução do UPDDISTR com o dicionário diferencial para os releases iguais ou superiores a versão 12.1.27. Foi efetuado a criação da tabela REF, conforme estrutura abaixo: X2_CHAVE | X2_NOME | X2_MODO | X2_MODOUN | X2_MODOEMP |
---|
REF | Lote de integração P&M | C | C | C |
Nota |
---|
| O modo de acesso da tabela REF deve ser obrigatoriamente compartilhado. |
Foi efetuado a criação dos índices na tabela REF, conforme estrutura abaixo: INDICE | ORDEM | CHAVE | SHOWPES |
---|
REF | 1 | REF_FILIAL+REF_TIPO+REF_STATUS+DTOS(REF_DATINT)+REF_HORINT | S | REF | 2 | REF_FILIAL+REF_PRCID | N | S | REF | 3 | REF_FILIAL+DTOS(REF_DATINT)+REF_HORINT | S |
Foi efetuado Foi efetuado a criação de campos na tabela REF, conforme estrutura abaixo: X3_ARQUIVO | X3_ORDEM | X3_CAMPO | X3_TIPO | X3_TAMANHO | X3_DECIMAL | X3_TITULO | X3_DESCRIC | HELP |
---|
REF | 01 | REF_FILIAL | C | 2 | 0 | Filial | Filial | Filial do lote | REF | 02 | REF_PRCID | C | 100 | 0 | Process ID | Process ID | Process ID do lote retornado pelo P&M | REF | 03 | REF_TIPO | C | 1 | 0 | Tipo API | Tipo API | Tipo da API | REF | 04 | REF_DATINT | D | 8 | 0 | Data Integr. | Data Integr. | Data da integração | REF | 05 | REF_HORINT | C | 8 | 0 | Hora Integr. | Hora Integr. | Hora da integração | REF | 06 | REF_STATUS | C | 1 | 0 | Status | Status Integração | Status da integração | REF | 07 | REF_LOTE | M | 10 | 0 | Lote | Lote Integração | JSON do lote integrado | REF | 08 | REF_RETORN | M | 10 | 0 | Retorno | Retorno P&M | Retorno do lote pelo P&M | REF | 09 | REF_USER | C | 6 | 0 | Usuário | Usuário | Usuário responsável pela geração do lote | REF | 10 | REF_OJ | C | 2 | 0 | Selecionado? | Selecionado? | Evento selecionado para consulta? |
Foi efetuado a criação de parâmetros, conforme estrutura abaixo: X6_VAR | X6_TIPO | X6_DESCRIC | X6_DESC1 | Exemplo de preenchimento | Observação |
---|
MV_APIPEM0 | C | URL para geração do token de acesso do ambiente | de 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_APIPEM1 | C | URL base do ambiente de integração com o | Performance & Metas | https://{NOME_EMPRESA}.performance.totvs.app/integration-general/ Exemplo: https://empresateste.performance.dev.totvs.app/integration-general/ |
| MV_APIPEM2 | C | ClientId do ambiente de integração com o | Performance & Metas |
|
| MV_APIPEM3 | C | SecretId do ambiente de integração com o | Performance & Metas |
|
| MV_APIPEM4 | N | Tipo de verificação de registro ativo na | integração com o Performance & Metas |
| Não precisa ser configurada no módulo SIGACFG. Será exibida para o usuário na rotina de integração. | MV_MV_APIPEM5 | D | Data de corte da integração com o | Performance & Metas |
| Não precisa ser configurada no módulo SIGACFG. Será exibida para o usuário na rotina de integração. | MV_APIPEM6 | N | Define se espera ou não o retorno da integração | com o Performance & Metas |
| Não precisa ser configurada no módulo SIGACFG. Será exibida para o usuário na rotina de integração. | MV_APIPEM7 | N | MV_APIPEM7 | N | Define o tempo máximo em minutos de espera para | obter o retorno do Performance & Metas |
| Não precisa ser configurada no módulo SIGACFG. Será exibida para o usuário na rotina de integração. |
Nota |
---|
| Somente deve ser efetuado configuração dos Os parâmetros MV_APIPEM0 , MV_APIPEM1, MV_APIPEM2 e MV_APIPEM3; já os parâmetros MV_APIPEM4, MV_APIPEM5, MV_APIPEM6 e MV_APIPEM7 não precisam ser configurados através do módulo SIGACFG porque serão exibidos na rotina GPEM939 para que o usuário possa alterá-los conforme necessidade. Os parâmetros MV_APIPEM0 e MV_APIPEM1 precisam ser configurados conforme o formato de exemplo da tabela acima. e MV_APIPEM1 precisam ser configurados conforme o formato de exemplo da tabela acima. |
|
Nota |
---|
|
Será necessário incluir manualmente um item no menu do módulo SIGAGPE para a rotina GPEM939 e para a rotina GPEM939B. Sugere-se criá-las em um grupo separada, chamado de |
Nota |
---|
|
Será necessário incluir manualmente um item no menu do módulo SIGAGPE para a rotina GPEM939. Sugere-se criar um grupo chamado Performance & Metas em Miscelânea. Além disso, para ser possível realizar a integração com o P&M, é necessário cadastrar que o cadastro grupos de cargo tenha sido realizado através da rotina TRMA030, uma vez que essa informação é obrigatória para o P&M (Performance & Metas), além de vincular os grupos aos cargos cadastrados no sistema. |
A rotina GPEM939 é do tipo Wizard e possui cinco passos:
Deck of Cards |
---|
|
Card |
---|
default | true |
---|
id | wizard1 |
---|
label | 1-Observações |
---|
title | Observações |
---|
| Essa tela exibe um breve descritivo da rotina e contém um botão que direciona para esta documentação do TDN.
|
Card |
---|
id | wizard2 |
---|
label | 2-Configuração |
---|
title | Configuração |
---|
| Essa tela exibe quatro perguntas para a configuração da integração:
Image Added
- "Verificação registro ativo": essa opção tem o intuito de definir como o sistema efetuará a validação se determinado registro está ativo, uma vez que apenas registros ativos serão enviados ao P&M (Performance & Metas). Ao selecionar a opção "Somente pelo campo campo MSBLQL (se houver)", caso o campo MSLBL exista na tabela, será considerado apenas os registros ativos (MSBLQL diferente de 1); se for selecionado a opção "Campo MSBLQL (se houver) + vínculo com registro ativo da SRA", além da verificação do campo MSBLQL diferente de 1, para um registro ser considerado como ativo terá que ter vínculo com registros ativos da tabela SRA contendo cargo que esteja com grupo preenchido cujo cargo não esteja bloqueado através do campo MSBLQL, ou seja, funcionários ativos ou que foram demitidos a partir de determinada com data de demissão superior à data de corte (a data é configurada na pergunta abaixo);
- "Data de corte demissão": define a data de corte de demissão para que um funcionário seja considerado ativo ou não, ou seja, funcionário demitidos a partir da data configurada serão considerados ativos, enquanto que funcionários demitidos antes da data serão considerados como inativos.
- "Verificação retorno P&M:": define se a rotina irá aguardar o retorno do processamento da integração pelo P&M (Performance & Metas) ou não.
- "Tempo limite (em minutos):": define o tempo máximo que a rotina irá aguardar para obter o status de retorno do processamento pelo P&M (Performance & Metas).
Image Removed
Nota |
---|
| A verificação do registro ativo da opção "Campo MSBLQL (se houver) + vínculo com registro ativo da SRA" é diferente para cada opção de integração: - Filiais: uma filial será considerada como ativa se houver funcionários cujo cargo esteja vinculado a um grupo (verificação do campo Q3_GRUPO) sendo pelo menos um funcionário ativo conforme regra explicada acima (verificação dos campos RA_CARGO, RA_SITFOLH e RA_DEMISSA);
- Grupos de cargo: um grupo será considerado como ativo se houver cargos com vínculo ao grupo (verificação do campo Q3_GRUPO) e cujo cargo esteja vinculado a pelo menos um funcionário ativo conforme regra explicada acima (verificação dos campos RA_CARGO, RA_SITFOLH e RA_DEMISSA);
- Cargos: um cargo será considerado ativo se houver grupo preenchido e se houver pelo menos um funcionário ativo vinculado conforme regra explicada acima (verificação dos campos RA_CARGO, RA_SITFOLH e RA_DEMISSA);
- Departamentos: um departamento será considerado ativo se houver pelo menos um funcionário ativo vinculado conforme regra explicada acima (verificação dos campos RA_DEPTO, RA_SITFOLH e RA_DEMISSA);
- Funcionários: um funcionário será considerado ativo se possuir cargo com grupo de cargo preenchido, departamento preenchido e CPF preenchido, além da regra da situação de folha explicado acima.
Ao definir que irá aguardar o retorno do processamento da integração pelo P&M (Performance & Metas), a rotina irá consumir uma API do P&M (Performance & Metas) para verificar o status do processamento do lote, e assim que processado, irá exibir o status das integrações no log. Atente-se que a rotina irá tentar obter o status da integração até o tempo máximo estipulado; atingindo o tempo limite, a rotina irá ser encerrada exibindo o log dos status obtidos até o momento. Havendo erro no processamento do P&M (Performance & Metas), no , no log de ocorrências será exibido o ID do registro enviado ao P&M, contendo o código da validação e sua respectiva mensagem, conforme lista detalhada na documentação: https://tdn.totvs.com/pages/viewpage.action?pageId=676047532. Todas as validações e mensagens são geradas pelo P&M, sendo de responsabilidade do usuário analisar a mensagem da validação e, se necessário, tomar ação para reenviar o registro novamente. Observe que na possibilidade do P&M (Performance & Metas) demorar para processar a integração, a rotina irá ficar "presa" até que toda a integração enviada seja processada pelo P&M ou até o tempo limite ser atingido. |
|
Card |
---|
id | wizard3 |
---|
label | 3-Opções |
---|
title | Opções |
---|
| Essa tela exibe a lista de opções existentes para integração com o Performance P& Metas M do tipo checkbox e deve ser selecionado selecionada as opções que serão integradas. Atualmente, há as seguintes opções para integração: - Filiais;
- Grupos de cargo;
- Cargos;
- Departamentos;
- Funcionários.
Image Removed Nota |
---|
| As informações enviadas para o P&M (Performance & Metas) são geradas de forma diferente para cada opção de integração: - Filiais: "integrationId": M0_CODIGO+M0_CODFIL, "name": M0_FILIAL;
- Grupos de cargo: "integrationId": M0_CODIGO+Q0_FILIAL+Q0_GRUPO, "name": Q0_DESCRI;
- Cargos: "integrationId": M0_CODIGO+Q3_FILIAL+Q3_CARGO, "name": Q3_DESCSUM, "positionGroupIntegrationId": M0_CODIGO+Q0_FILIAL+Q0_GRUPO;
- Departamentos: "integrationId": M0_CODIGO+QB_FILIAL+QB_DEPTO, "name": QB_DESCRIC;
- Funcionários:
|
| Card |
---|
id | wizard4 |
---|
label | 4-Filtro |
---|
title | Filtro |
---|
| Essa tela exibe botões para a definição de filtros para a integração, separados pelos registros que podem ser integrados, ou seja, há um botão de filtro para filiais, outro botão para grupos de cargo, etc.. O botão de filtro de filiais sempre será exibido, independente se a opção de integração de filiais esteja ou não selecionada, pois o filtro de filial será utilizado para a integração de todas as opções. Já os outros botões serão desativados para clique caso a respectiva opção de integração não esteja selecionada. No filtro de filial, será exibido uma MarkBrowse para seleção de filiais, enquanto que nos demais filtros será possível definir um filtro sobre qualquer campo da respectiva tabela, conforme necessidade. Image Removed Card |
---|
id | wizard5 |
---|
label | 5-Processamento |
---|
title | Processamento |
---|
| Essa tela exibe um descritivo e um botão, que ao ser clicado iniciará a integração com o Performance & Metas. Image Removed
|
Nota |
---|
|
Após a geração e envio de um lote de registros para o P&M, será retornado um ID de identificação do lote de processamento e esse ID será salvo na tabela REF conforme exemplo abaixo:
Campo | Conteú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 |
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 |
REF_LOTE | JSON do lote |
REF_RETORN | Retorno do processamento realizado pelo P&M |
REF_USER | Código do usuário responsável pela integração |
A informação do ID será utilizada posteriormente para consultar o status de processamento do lote pelo P&M.
Atente-se que o sistema Protheus não fará controle se determinado registro foi ou não integrado com sucesso ao P&M. Havendo necessidade de reenvio de informações para o P&M, será efetuado envio dos registros de acordo com os filtros criados pelo usuário na rotina de integração, sendo possível reenviar todos os registros novamente ou apenas um ou alguns registros em específico.
A integração somente envia informações da tabela do grupo de empresas que está logado.
Image Added
|
Card |
---|
id | wizard4 |
---|
label | 4-Filtro |
---|
title | Filtro |
---|
| Essa tela exibe botões para a definição de filtros para a integração, separados pelos registros que podem ser integrados, ou seja, há um botão de filtro para filiais, outro botão para grupos de cargo, etc..
Image Added
O botão de filtro de filiais sempre será exibido, independente se a opção de integração de filiais esteja ou não selecionada, pois o filtro de filial será utilizado para efetuar o filtro na integração de todas as opções. Já os outros botões serão desativados para clique caso a respectiva opção de integração não esteja selecionada. No filtro de filial, será exibido uma MarkBrowse para seleção de filiais, enquanto que nos demais filtros será possível definir um filtro sobre qualquer campo da respectiva tabela, conforme necessidade. |
Card |
---|
id | wizard5 |
---|
label | 5-Processamento |
---|
title | Processamento |
---|
| Essa tela exibe um descritivo e um botão, que ao ser clicado iniciará a integração com o Performance & Metas.
Image Added |
|
Nota |
---|
|
As informações enviadas para o P&M são geradas conforme detalhamento abaixo: Deck of Cards |
---|
| Card |
---|
default | true |
---|
id | filiais |
---|
label | Filiais |
---|
title | Filiais |
---|
| "integrationId": M0_CODIGO+M0_CODFIL, "name": M0_FILIAL |
Card |
---|
id | grupos |
---|
label | Grupos de cargo |
---|
title | Grupos de cargo |
---|
| "integrationId": M0_CODIGO+Q0_FILIAL+Q0_GRUPO, "name": Q0_DESCRI |
Card |
---|
id | cargos |
---|
label | Cargos |
---|
title | Cargos |
---|
| "integrationId": M0_CODIGO+Q3_FILIAL+Q3_CARGO, "name": Q3_DESCSUM, "positionGroupIntegrationId": M0_CODIGO+Q0_FILIAL+Q0_GRUPO; |
Card |
---|
id | departamentos |
---|
label | Departamentos |
---|
title | Departamentos |
---|
| "integrationId": M0_CODIGO+QB_FILIAL+QB_DEPTO, "name": QB_DESCRIC; |
Card |
---|
id | funcionarios |
---|
label | Funcionários |
---|
title | Funcionários |
---|
| "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, "departmentIntegrationId": M0_CODIGO+QB_FILIAL+QB_DEPTO, "positionIntegrationId": M0_CODIGO+Q3_FILIAL+Q3_CARGO, "facilityIntegrationId": M0_CODIGO+RA_FILIAL, "managerIntegrationId": M0_CODIGO+RDZ_CODRD0 (o líder é identificado conforme a estrutura de departamentos cadastrada nos campos QB_EMPRESP, QB_FILRESP e QB_MATRESP além dos campos QB_DEPSUP e QB_KEYINI) |
|
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: Campo | Conteú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 | 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_RETORN | Retorno do processamento realizado pelo P&M | REF_USER | Código do usuário responsável pela integração |
- A informação do ID será utilizada posteriormente para consultar o status de processamento do lote no P&M.
- Atente-se que o sistema Protheus não fará controle se determinado registro foi ou não integrado com sucesso ao P&M. Havendo necessidade de reenvio de informações para o P&M, será efetuado envio dos registros de acordo com os filtros criados pelo usuário na rotina de integração, sendo possível reenviar todos os registros novamente ou apenas um ou alguns registros em específico.
- A integração somente envia informações da tabela do grupo de empresas em que está logado.
- Não há controle de restrição de acesso por filiais.
|
A rotina GPEM939B é do tipo MarkBrowse e irá exibir os registros da tabela REF:
Ao efetuar um duplo clique no registro ou ao clicar na coluna de cabeçalho, os registros com o campo REF_STATUS com 0 ou 1 serão selecionados. Ao clicar no botão "Consultar Status", será efetuado consulta do status no P&M, e ao fim será retornado um log de ocorrências com os status dos lotes, bem como eventuais erros de validação retornados pelo P&M.
Ao posicionar em um registro e clicar no botão "Visualizar" será aberto as informações detalhadas do lote. Caso o status seja 3, será exibido em "Outras Ações" o botão Consultar Inconsistências para que seja gerado um log com os erros retornados pelo P&M em um formato mais amigável.
A rotina GPEM939C pode ser cadastrada no Schedule do módulo SIGACFG - Configurador para efetuar a consulta automática de todos os lotes que ainda não tiveram o status retornado pelo P&M, conforme exemplo abaixo:
04. DEMAIS INFORMAÇÕES
Atualizador de dicionário e base de dados - UPDDISTR.
...