Árvore de páginas


CONTEÚDO

  1. Visão Geral
  2. Tabela auxiliar S043
  3. Tabela auxiliar S049
  4. De X Para de cargos
  5. De X Para de departamentos
  6. Integração com a Feedz
  7. Consulta da integração
  8. Agendamento da integração
  9. Agendamento da consulta da integração
  10. Erros de Validação e seus Códigos
  11. Parametrização exclusiva por filial para múltiplas bases Feedz
  12. Informações técnicas
  13. Demais informações


01. VISÃO GERAL

Explicação do funcionamento da integração com a Feedz.


02. TABELA AUXILIAR S043

Foi criado o campo "Tipo P&M/Feedz" para definir o tipo de desligamento que será enviado a Feedz na integração de funcionários:


03. TABELA AUXILIAR S049

Foi criado o campo "Agrupador P&M/Feedz" para definir o agrupador de contrato que será enviado a Feedz na integração de grupos de contrato e de funcionários:


04. DE x PARA DE CARGOS

Se o cadastro de cargos estiver com modo de acesso Exclusivo, será necessário cadastrar um De x Para através da rotina GPEA944B:


Em Outras Ações, foi disponibilizado a opção "Vincular cargos", onde será possível marcar quais grupos serão vinculados ao cadastro:


Observação

Com o cadastro de De x Para, ao efetuar a integração com a Feedz serão enviados o código e descrição cadastrados nesse cadastro.


05. DE x PARA DE DEPARTAMENTOS

Se o cadastro de departamentos estiver com modo de acesso Exclusivo, será necessário cadastrar um De x Para através da rotina GPEA944C:


Em Outras Ações, foi disponibilizado a opção "Vincular departamentos", onde será possível marcar quais grupos serão vinculados ao cadastro:


Observação

Com o cadastro de De x Para, ao efetuar a integração com a Feedz serão enviados o código e descrição cadastrados nesse cadastro.


06. INTEGRAÇÃO COM A FEEDZ

Foi efetuado a criação da rotina GPEM939 para efetuar a integração com a Feedz dos itens abaixo:

    • Filiais (tabela SM0);
    • Cargos (tabela SQ3);
    • Departamentos (tabela SQB);
    • Grupos de contrato (tabela genérica 1C);
    • Funcionários (tabela SRA);
    • Líder dos Funcionários (tabela SRA);


A rotina é do tipo Wizard e possui cinco passos:

    Essa tela exibe um breve descritivo da rotina e contém um botão que direciona para esta documentação do TDN.


    Essa tela exibe seis perguntas para a configuração da integração:


    1. "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 a Feedz. Ao selecionar a opção "Somente pelo campo campo MSBLQL (se houver)", caso o campo MSBLQL 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, ou seja, funcionários que não sejam demitidos ou que foram demitidos com data de demissão superior à data de corte informada na pergunta abaixo. Saiba mais sobre o campo MSBLQL: Campo Reservado _MSBLQD e _MSBLQL
    2. "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.
    3. "Verificação retorno da integração:": define se a rotina irá aguardar o retorno do processamento da integração pela Feedz ou não.
    4. "Tempo limite (em minutos):": define o tempo máximo que a rotina irá aguardar para obter o status de retorno do processamento pela Feedz.
    5. "Descrição cargo/departamento:": define se no envio do cargo e departamento ocorrerá o envio da descrição contendo o código do registro ao fim, quando o modo de acesso do cadastro for compartilhado.
    6. "Código da visão": define o código da visão que possui a estrutura hierárquica da empresa, quando o parâmetro MV_ORGCFG está configurado com 1 ou 2. Obs.: essa parametrização apenas será utilizada na integração de líder dos funcionários. Saiba mais sobre o parâmetro MV_ORGCFG: https://tdn.totvs.com/x/LYx9Hg https://tdn.totvs.com/x/dfryHQ e https://tdn.totvs.com/pages/releaseview.action?pageId=500300689.


    Observação

    Ao definir que irá aguardar o retorno do processamento da integração pela Feedz, a rotina irá consumir uma API da Feedz 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.

    Observe que na possibilidade da Feedz demorar para processar a integração, a rotina irá ficar "presa" até que toda a integração enviada seja processada pela Feedz ou até o tempo limite ser atingido.

    Essa tela exibe a lista de opções existentes para integração com a Feedz do tipo checkbox e deve ser selecionada as opções que serão integradas. 




    Observação

    Para envio de funcionário, é premissa o envio das entidades: Filiais, cargos, departamentos e grupos de contrato.

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


    Observação

    A integração de grupos de contrato não possui botão para filtro devido tabela genérica 1C possuir poucos registros.

    Essa tela exibe um descritivo e um botão, que ao ser clicado iniciará a integração com a Feedz.



    07. CONSULTA DA INTEGRAÇÃO


    Observação

    • A rotina no menu permanece a mesma, GPEM939B.
    • Essa funcionalidade depende da aplicação da atualização liberada no pacote de expedição do módulo RH a partir de 04/10/2024.


    Tela antiga:

    Foi efetuado a criação da rotina GPEM939B para permitir a visualização das informações dos lotes de integração com a Feedz, bem como consultar manualmente o status de integração.

    A rotina é 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, todos os registros serão selecionados. Ao clicar no botão "Consultar Status", será efetuado consulta do status na Feedz, e ao fim será retornado um log de ocorrências com os status dos lotes, bem como eventuais erros de validação retornados pela Feedz.



    Ao posicionar em um registro e clicar no botão "Visualizar" será aberto as informações detalhadas do lote. Ao clicar no botão "Consultar Inconsistências", será gerado um log com os erros retornados pela Feedz em um formato mais amigável caso o status do lote seja igual a 3.



    Tela nova em PO UI, com a porta Multiprotocolo habilitada:


    Poderá ser realizado filtros de Status e Tipo da API, bem como a data de integração, ao aplicar o filtro, os registros contidos na REF serão listados


    É possível visualizar o registro mais detalhadamente e salvar esses detalhes, ao salvar, será criado um arquivo em PDF.


    Para registro com erro, existe a opção de inconsistência para mostrar os erros detalhados 


    A opção de consulta, irá consultar os registros com status 'Não iniciados' ou 'Executando', ao término da consulta, o status será atualizado na tela


    08. AGENDAMENTO DA INTEGRAÇÃO

    Também foi disponibilizada a rotina GPEM939D para ser possível agendar no Schedule a realização da integração.

    A rotina pode ser cadastrada no Schedule do módulo SIGACFG - Configurador para efetuar a integração automaticamente, conforme exemplo abaixo:

    Observação

    Ao realizar a integração dos cadastros através do schedule, será possível selecionar qual cadastro deseja integrar pela opção de "Parâmetros", conforme imagem acima, porém não será possível filtrar o registro de determinado cadastro para envio.

    Para realizar esse filtro sugerimos enviar o cadastro utilizando o Wizard de integração, rotina GPEM939 conforme descrito no item 6 dessa documentação.

    Para evitar impacto na performance, recomenda-se que o agendamento seja programado para, no máximo, duas vezes ao dia.

    Importante

    Para saber mais como realizar o cadastro do schedule, como o agendamento e configuração da recorrência, acesse a documentação do Framework: Schedule - Como agendar a execução de rotinas


    Exemplo de retorno gerado no console do appserver:


    09. AGENDAMENTO DA CONSULTA DA 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.

    A rotina 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 pela Feedz, conforme exemplo abaixo:


    Exemplo de retorno gerado no console do appserver:


    10. Erros de Validação e seus Códigos 

            Alguns erros podem acontecer durante o processamento do lote enviado ou durante a validação dos itens do lote enviado, sendo eles:

    Código

    Mensagem

    Detalhes

    4998

    Id do processo não encontrado

    Significa que o processId informado na requisição de consulta de lotes está incorreto.

    4999

    Ocorreu um erro inesperado!

    Representa erros genéricos ou inesperados que podem acontecer no servidor ou que podem ser gerados por algum aspecto incorreto não previsto do lote enviado.

    5000

    Token inválido ou expirado! / Bearer token não informado.

    Isso indica que o token não foi informado na requisição ou informado não é válido. É necessário conferir se o token informado é igual à chave API na plataforma Feedz. Em caso afirmativo, é necessário gerar outra chave.

    5000

    Body vazio

    Significa que foi enviada uma requisição para gravar um lote, mas sem nenhum dado.

    5001

    O total de itens enviados no corpo da requisição excede o limite de 100 registros. Todos os registros foram ignorados no processamento.

    Ocorre ao enviar um lote com mais de 100 registros.

    5003

    A pessoa NPE (IntegrationId = IDN) está referenciando um gestor que não existe. Essa pessoa não será importada.

    Esse erro ocorre ao tentar cadastrar um colaborador, vinculando a um gestor que ainda não foi cadastrado.

    5004

    A pessoa NPE (IntegrationId = IDN) está referenciando ela mesmo como chefe. Essa pessoa não será importada.

    Esse erro ocorre ao tentar cadastrar um colaborador, vinculando ela mesma como gestora (integrationId = managerIntegrationId).

    5005

    A pessoa NPE (IntegrationId = IDN) está referenciando um departamento que não existe. Essa pessoa não será importada.

    Esse erro ocorre ao tentar cadastrar um colaborador, vinculando a um departamento que ainda não foi cadastrado.

    5006

    A pessoa NPE (IntegrationId = IDN) está referenciando uma unidade que não existe. Essa pessoa não será importada.

    Esse erro ocorre ao tentar cadastrar um colaborador, vinculando a uma unidade que ainda não foi cadastrada.

    5008

    A pessoa NPE (IntegrationId = IDN) está referenciando um cargo que não existe. Essa pessoa não será importada.

    Esse erro ocorre ao tentar cadastrar um colaborador, vinculando a um cargo que ainda não foi cadastrado.

    5009

    O ID de integração (IntegrationId) é obrigatório e não foi informado para a Pessoa NPE. Essa pessoa não será importada.

    Ocorre ao enviar uma pessoa e não informar se id de integração.

    5011

    O nome (Name) é obrigatório e não foi informado para a Pessoa (IntegrationId = IDN). Essa pessoa não será importada.

    Ocorre ao enviar uma pessoa e não informar seu nome.

    512

    O e-mail (Email) é obrigatório e não foi informado para a Pessoa 'NPE' (IntegrationId = IDN). Essa pessoa não será importada.

    Ocorre ao enviar uma pessoa e não informar seu e-mail.

    5013

    A pessoa 'NPE' (IntegrationId = IDN) possui o mesmo e-mail de outra pessoa da lista de pessoas enviadas ou da base. Essa pessoa não será importada.

    Essa validação existe para evitar cadastrar pessoas duplicadas na base. Assim não é possível cadastrar dois e-mails iguais para integrationIds diferentes e vice versa.

    5014

    A pessoa 'NPE' (IntegrationId = IDN) deve ter o nome digitado somente com caracteres com nome, sobrenome e apenas 1(um) espaço entre eles.

    Esse erro ocorre ao informar um nome inválido.

    5015

    A pessoa 'NPE' (IntegrationId = IDN) não pode ter o apelido igual ao nome.

    Ocorre quando o name é igual ao socialName.

    5016

    O email fornecido 'EML' para a pessoa 'NPE' (IntegrationId = IDN) não está em um formato válido.

    Ocorre ao enviar uma pessoa com o e-mail em formato inválido.

    5017

    O registro com o nome 'NRA' não foi salvo durante o processamento porque o campo 'IntegrationId' não foi informado."

    Ocorre ao enviar qualquer registro auxiliar e não informar o integrationId.

    5018

    O registro com o código 'IDN' não foi salvo durante o processamento porque o campo 'Name' não foi informado.

    Ocorre ao enviar qualquer registro auxiliar e não informar o nome.

    5030

    Quando informado a data de demissão deve ser também informado o motivo (dismissalType).

    Ocorre ao enviar data de demissão e não informar o motivo.

    5031

    Deve ser informado o motivo da demissão (dismissalType) apenas quando for informado a data de demissão.

    Ocorre ao enviar motivo da demissão e não informar a data de demissão.

    5032

    A data de admissão não pode ser maior que a data de demissão.

    Ocorre ao enviar uma data de admissão posterior à data de demissão.

    5048

    O ID de integração do líder (managerIntegrationId = MII) informado para a pessoa (personIntegrationId = IDN) não existe.

    Ocorre ao tentar vincular pessoa e líder pela rota persons-bind e não ter esse líder cadastrado previamente na plataforma.

    5049

    O ID de integração da pessoa (personIntegrationId = IDN) informada não existe.

    Ocorre ao tentar vincular pessoa e líder pela rota persons-bind e não ter esse colaborador cadastrado previamente na plataforma.

    5050

    Uma pessoa (personIntegrationId = IDN) não pode ser líder de sí próprio

    Ocorre ao tentar vincular uma pessoa a ela mesma como líder (personIntegrationId = managerIntegrationId) através da rota persons-bind.


    11. Parametrização exclusiva por filial para múltiplas bases Feedz

           A tabela abaixo apresenta os dois parâmetros utilizados para a integração com a Feedz, nos quais são informados a URL base do ambiente e o token de autenticação.

           Por padrão, esses parâmetros são compartilhados entre filiais.

    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

        Importante: Caso possua restrição em seu firewall, verifique se os endereços acima possuem liberação para conexão externa

        Caso existam múltiplas bases da Feedz para diferentes filiais no Protheus, será necessário criar esses dois parâmetros de forma exclusiva para a filial adicional.

        Exemplo:
        No grupo 01, existem as filiais 01 e 02, sendo que a filial 02 utiliza uma segunda base na Feedz.

        Nesse cenário, é preciso criar os dois parâmetros da tabela acima especificamente para a filial 02, garantindo a correta integração com a base correspondente.


         No configurador, SIGACFG > Ambiente > Cadastros > Parâmetros 

         Veja que possuo os dois parâmetros compartilhados, nesses dois não vou mexer, pois eles continuarão sendo usados para as demais filiais:

     


       Clico em incluir, e incluo os parâmetros exclusivos para a filial 02.

       Com os dois parâmetros criados, será necessário informar a URL e token para os novos parâmetros exclusivos para a filial.

       Veja que no campo filial, informo a filial 02, portanto, esse parâmetro é usado quando você estiver logado na filial 02.


    Observação

    Como as filiais estão dentro do mesmo grupo no Protheus, para que a integração funcione corretamente e os dados de uma filial sejam enviados para a segunda base configurada na Feedz, é necessário estar logado na filial correspondente.

    No nosso exemplo, para integrar os dados na outra base da Feedz, é preciso estar logado na filial 02. Ao acessar a rotina de integração (GPEM939), o ideal é filtrar apenas os dados da filial 02. Caso contrário, se houver filtros que incluam registros da filial 01, esses dados também serão integrados, utilizando a URL e o token configurados para a filial 02.

    Da mesma forma, ao realizar a integração logado na filial 01, não devem ser filtrados dados da filial 02, pois esses registros são utilizados em outra base da Feedz.

    12. INFORMAÇÕES TÉCNICAS

    DT Integração com a Feedz.

    Schedule - Como agendar a execução de rotinas


    13. DEMAIS INFORMAÇÕES

    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