Totvs custom tabs box items |
---|
|
Primeiro, devemos adicionar a nova tela ao menu. Como sugestão, posicionar dentro do menu Miscelânea no módulo SIGAGPE → Cadastrar o grupo 'Integração Ahgora' e o item 'Integração'
Grupo
Novo Item 'Integração' com a rotina GPEM929 dentro do grupo 'Integração Ahgora'
Clicar em Gerar, preencher com SIGAGPE e clicar em Gerar
|
Totvs custom tabs box items |
---|
| Navegação e Opções em tela
Ao acessar o novo menu criado, abre-se uma nova tela. Nessa nova tela, será exibido o menu para integração dos funcionários, afastamentos e exclusões dos afastamento com a Ahgora Image Added
Deck of Cards |
---|
| Card |
---|
id | IntegAhgoraLista |
---|
label | Integração Funcionário |
---|
| - Integração dos funcionários
Inicialmente a tela abre vazia esperando que sejam informados os filtros. Na tela inicial o filtro é genérico com filial, admissão de/até e qual status da integração deseja filtrar. Para mais filtros, é necessário acessar a opção de 'Filtros Avançados' Ao aplicarmos os filtros será apresentada a seguinte tela: Lista de FuncionáriosAo obter a lista de funcionários, temos as colunas: - Status → Correspondente ao status do registro.
- Legenda verde, Tag 'NI' - Integrados - Legenda azul, Tag 'IN' - Não integrados - Legenda vermelha, Tag 'CI' - Com Inconsistências - Legenda laranja, Tag 'AR' - Aguardando Retorno Image Removed - Matrícula Ahgora → Matrícula composta por Empresa + Filial + Matrícula do funcionário no GPE, campo RA_MAT;
- Nome → Nome do funcionário, campo RA_NOME;
- Dt. Admissão → Campo RA_ADMISSA;
- Dt. Demissão → Campo RA_DEMISSA;
- Turno → Turno do funcionário, campo RA_TNOTRAB;
- Função → Função do funcionário, campo RA_CODFUNC;
- Movimento → Inclusão/Alteração;
- Dt. Movimento → Data da movimentação;
Como sugestão, a 'Data Admissão De' vem preenchida com um mês anterior que a data atual e a 'Data Admissão Até' com a data atual. Filtros de 'Filial' e 'Data Admissão De' são obrigatórios. Image Added
Filtro 'Filial' aceita multivalores Image Added Image Added
Na opção de 'Filtros Avançados', é possível realizar mais alguns filtros específicos além dos filtros já apresentados na primeira tela. Image Added Image Added Image Added
Selecionando os filtros na tela de filtros avançados ou na tela inicial, e ao clicar no botão 'Aplicar Filtros', o sistema buscará as informações dos funcionários. Ao aplicarmos os filtros será apresentada a seguinte tela: Lista de FuncionáriosAo obter a lista de funcionários, temos as colunas: - Status → Correspondente ao status do registro.
- Legenda verde, Tag 'NI' - Integrados - Legenda azul, Tag 'IN' - Não integrados - Legenda vermelha, Tag 'CI' - Com Inconsistências - Legenda laranja, Tag 'AR' - Aguardando Retorno Image Added - Matrícula Ahgora → Matrícula composta por Empresa + Filial + Matrícula do funcionário no GPE, campo RA_MAT;
- Nome → Nome do funcionário, campo RA_NOME;
- Dt. Admissão → Campo RA_ADMISSA;
- Dt. Demissão → Campo RA_DEMISSA;
- Turno → Turno do funcionário, campo RA_TNOTRAB;
- Função → Função do funcionário, campo RA_CODFUNC;
- Movimento → Inclusão/Alteração;
- Dt. Movimento → Data da movimentação;
Serão listados 100 registros por página, ao final da página será mostrado o botão para carregar mais resultados. Image Added Image Added
Selecionando um registro para integração. Image Added
Ao integrar o registro, se ocorrer tudo certo, o registro será alterado para 'Aguardando Retorno'. Image Added
Com o registro com status com legenda laranja, 'Aguardando Retorno', será necessário atualizar o status para que seja feita a consulta com o sistema Ahgora, para que possamos saber se o registro foi aceito ou não. Image Added
Image Added
Ao final da atualização do status, o registro será alterado, nesse caso alterou para 'IN' - Integrado, ou seja, o registro foi integrado com sucesso. Image Added
Registro com erro fica com a legenda em vermelho, e você pode consultar o erro, na opção status que está localizada ao clicar nos 3 pontinhoa na parte direita da tabela. Image Added
Image Added Status Nesse caso, o retorno do erro para o registro foi o E-mail já cadastrado, erro esse enviado pela Ahgora, ou seja, ela não aceitou o registro, pois o e-mail já está cadastrado em outro funcionário. Image Added
Consulta lote A segunda opção é a consulta do lote de envio para o ahgora. Ao abrir a tela do lote, é possível salvar o arquivo .json. Image Added
Aviso |
---|
| - Atualizar Status só irá consultar registros com
| Aviso |
---|
| - Atualizar status só irá consultar registros co status 'AR' - Aguardando retorno;
- Botão Integrar funcionários só ficará habilitado quando houver registro selecionado;
- Registros com status 'AR' - Aguardando retorno e 'IN' - Integrados, não serão integrados novamente, para integrar novamente um registro já integrado, ele precisará sofrer alguma alteração no cadastro;
- Opção de consultar lote só estará disponível para registros com status diferente de 'NI' - Não integrados;
- Após integração, a consulta do retorno com o sistema da Ahgora fica disponível por 1 hora, ou seja, é de extrema importância que após a integração, seja feita a consulta do status para obter o retorno;
|
|
Card |
---|
id | IntegAhgoraAfast |
---|
label | Integração Afastamento |
---|
|
|
Card |
---|
id | IntegAhgoraExclu |
---|
label | Integração Exclusão Afastamento |
---|
|
|
|
|
Totvs custom tabs box items |
---|
default | no |
---|
referencia | dicionario |
---|
| Dicionário
|
Totvs custom tabs box items |
---|
| Este detalhamento tem como objetivo registrar os endpoints da interface da integração com Ahgora, desenvolvida utilizando PO-UI.
Deck of Cards |
---|
| Card |
---|
id | IntegAhgoraLista |
---|
label | Integração Funcionário |
---|
| Objetivo: Busca dos dados para listagem dos funcionários e envio dos funcionários selecionados para o back-end.
Tipo de requisição: GET/POST Endpoint: /api/rh/v1/ahgora/funcionarios
Get: Query Params: Nome | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | Sim | 1 | pageSize | Tamanho da página | number | Sim | 100 | dataAdmissaoDe | Data de Admissão De | string | Sim | "2023-01-02T16:37:02-03:00" | dataAdmissaoAte | Data de demissão do funcionário Até | string | Não | "2024-01-02T16:37:02-03:00" | branchCode | Filial (Multi Valores separados por vírgula) | string | Sim | “D MG 01,D MG 02” | matCode | Matrícula De | string | Não | 000001 | matCodeAte | Matrícula Até | string | Não | 000004 | situacao | Situação do funcionário (Multi Valores separados por vírgula) | string | Não | N,A | categoria | Categoria do funcionário (Multi Valores separados por vírgula) | string | Não | M,E | tipostatus | Tipo do status (Multi Valores separados por vírgula) | string | Não | 0,6 | codCC | Centro de custo De | string | Não | 001 | codCCAte | Centro de Custo Até | string | Não | 001 | codFuncao | Função De | string | Não | 001 | codFuncaoAte | Função Até | string | Não | 001 | codDepto | Departamento De | string | Não | 000000061 | codDeptoAte | Departamento Até | string | Não | 000000061 | turnoCode | Turno De | string | Não | 001 | turnoCodeAte | Turno Até | string | Não | 001 |
Estrutura de Retorno: Campo | Tipo | Exemplo | statusAhgora(obrigatório) | string | NI(Não Integrado), IN(Integrado), CI(Com inconsistência), AR(Aguardando retorno) | matricula(obrigatório) | string | 0101000001 | dataAdmissao(obrigatório) | string | 2024-01-01 | dataDemissao | string | "" | escala_padrao | string | 001 | cargo | string | 001 - BIOMEDICO ASSIST. II | departamento | string | 001 - Departamento RH | centroCusto | string | 001 - CC Tecnologia | codInterno(obrigatório) | string | 01|01|040924 | tpMovimento(obrigatório) | string | I(Inclusão), A(Alteração) | dtMovimento(obrigatório) | string | 2024-09-05 |
Exemplo de Requisição: GET: api/rh/v1/ahgora/funcionarios?page=1&pageSize=100&dataAdmissaoDe=2024-01-01T17:29:41-03:00&dataAdmissaoAte=2024-09-05T17:29:41-03:00&branchCode=01,02&situacao= N,A&categoria=M,E&tipostatus=0,6&codCC=001%20%20%20%20%20%20&codCCAte=001%20%20%20%20%20%20&codFuncao=001%20%20&codFuncaoAte=001%20%20&turnoCode=001&turnoCodeAte=001 Se atentar com a paginação. Expandir |
---|
| { "items": [ { "statusAhgora": "NI", "matricula": "0101040924", "nome": "John Doe", "dataAdmissao": "2024-01-01", "dataDemissao": "", "escala_padrao": "001", "cargo": "001 - BIOMEDICO ASSIST. II", "departamento": "", "centroCusto": "001 - CC Tecnologia da Informac", "codInterno": "01|01|040924", "tpMovimento": "I", "dtMovimento": "2024-09-05" }, { "statusAhgora": "NI", "matricula": "0101999557", "nome": "Jane Doe", "dataAdmissao": "2024-01-01", "dataDemissao": "", "escala_padrao": "001", "cargo": "001 - BIOMEDICO ASSIST. II", "departamento": "", "centroCusto": "001 - CC Tecnologia da Informac", "codInterno": "01|01|999557", "tpMovimento": "I", "dtMovimento": "2024-09-05" } ], "hasNext": false } |
Post: /api/rh/v1/ahgora/funcionarios Nome | Descrição | Tipo | Obrigatório | Exemplo | codInterno | Código interno do funcionário | string | Sim | 01|01|210824 | dtMovimento | Data do movimento | string | Sim | 2024-09-05 | tpMovimento | Tipo do movimento | string | Sim | I(Inclusão) |
A partir do filtro realizado, ao clicar em integrar funcionário, os dados serão enviados para o back-end. Expandir |
---|
| { "items": [ { "codInterno":"01|01|210824", "tpMovimento":"I", "dtMovimento":"2024-09-05" } ] } |
Com os dados postados, o back-end se encarregará de montar o body para requisição de envio para o Ahgora: https://api.ahgora.com.br/people Expandir |
---|
title | Exemplo de envio para Ahgora |
---|
| [ { "matricula": "0101210824", "nome": "John Doe", "pis": "", "matricula_esocial": "010121082420240821162913 ", "dataAdmissao": "2024-01-01", "dataDemissao": "", "localizacoes": "", "escala_padrao": "001", "lastChangeDefaultSchedule": "", "tipo_escala": "", "ctps": " ", "cargo": "001 - BIOMEDICO ASSIST. II", "departamento": "", "sexo": "M", "email": " ", "cpf": " ", "rg": " ", "cnpj": "53113791000122", "dataCnpj": "", "centroCusto": "001", "regimeTrabalho": "CLT", "dataNascimento": "1990-01-01", "dataCargo": "", "carga_horaria": 220, "bate_ponto": "Ponto Obrigatorio", "data_troca_elegibilidade_ponto": "2024-01-01", "matricula_chefia": "", "nome_chefia": "", "email_chefia": "", "codSindicato": "01", "dataCodSindicato": "", "telefone": " ", "sem_pis": true, "codInterno": "01|01|210824", "matricula_anterior": "" } ] |
Retorno do código unique de processamento retornado pela Ahgora Expandir |
---|
title | Rertorno do unique criado pela Ahgora |
---|
| { "company":"a148176", "message":"Employee's Integration on progress", "unique":"b6ca283f" } |
Devolver o retorno para o POUI com o status da integração para que seja atualizado a lista, nesse caso 'AR' (Aguardando retorno), pois ainda não foi feita a consulta do unique. Estrutura de Retorno: Campo | Tipo | Exemplo | codInterno | string | 01|01|210824 | statusAhgora | string | AR |
Expandir |
---|
title | Rertorno da integração para o POUI |
---|
| { "items": [ { "codInterno":"01|01|210824", "statusAhgora":"AR" } ] } |
Card documentos |
---|
Informacao | Com o código unique em mãos, será necessário consultar o status do processamento na Ahgora. Pode ser feito após o envio antes do retorno para o POUI ou através do botão 'Atualizar Status' que está disponível na tela |
---|
Titulo | Importante |
---|
|
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
id | IntegAhgoraAfast |
---|
label | Integração Afastamento |
---|
| Objetivo: Busca dos dados para listagem dos afastamentos e envio dos afastamentos selecionados para o back-end.
Tipo de requisição: GET/POST Endpoint: /api/rh/v1/ahgora/afastamentos
Get: Query Params: Nome | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | Sim | 1 | pageSize | Tamanho da página | number | Sim | 100 | dataAfastDe | Data Afastamento De | string | Sim | "2019-01-02T16:37:02-03:00" | dataAfastAte | Data Afastamento Até | string | Não | "2024-01-02T16:37:02-03:00" | branchCode | Filial (Multi Valores separados por vírgula) | string | Sim | "01,02" | matCode | Matrícula De | string | Não | 000004 | matCodeAte | Matrícula Até | string | Não | 000004 | situacao | Situação do funcionário (Multi Valores separados por vírgula) | string | Não | N,A | categoria | Categoria do funcionário (Multi Valores separados por vírgula) | string | Não | M,E | tipostatus | Tipo do status (Multi Valores separados por vírgula) | string | Não | 0,6 | codCC | Centro de custo De | string | Não | 001 | codCCAte | Centro de Custo Até | string | Não | 001 | codFuncao | Função De | string | Não | 001 | codFuncaoAte | Função Até | string | Não | 001 | codDepto | Departamento De | string | Não | 000000061 | codDeptoAte | Departamento Até | string | Não | 000000061 | turnoCode | Turno De | string | Não | 001 | turnoCodeAte | Turno Até | string | Não | 001 |
Estrutura de Retorno: Campo | Tipo | Exemplo | statusAhgora(obrigatório) | string | NI(Não Integrado), IN(Integrado), CI(Com inconsistência), AR(Aguardando retorno) | matricula(obrigatório) | string | 0101000001 | nome | string | John Doe | motivo | string | 004 - Afastamento Temporário por Doença | inicio | string | 2019-01-01 | fim | string | 2019-01-02 | cod_interno(obrigatório) | string | 01.01.000004.001 | tpMovimento(obrigatório) | string | I(Inclusão) | dtMovimento(obrigatório) | string | 2024-09-06 |
Exemplo de Requisição: GET: api/rh/v1/ahgora/afastamentos?page=1&pageSize=100&dataAfastDe=2000-01-01T08:39:02-03:00&dataAfastAte=2024-09-06T08:39:02-03:00&branchCode=01& matCode=&matCodeAte=&situacao=&categoria=&tipostatus=&codCC=&codCCAte=&codFuncao=&codFuncaoAte=&codDepto=&codDeptoAte=&turnoCode=&turnoCodeAte= Se atentar com a paginação. Expandir |
---|
| { "items": [ { "statusAhgora": "NI", "matricula": "0101000004", "nome": "John Doe", "motivo": "004 - Afastamento Temporário por Doença", "inicio": "2019-01-01", "fim": "2019-01-02", "cod_interno": "01.01.000004.001", "tpMovimento": "I", "dtMovimento": "2024-09-06" }, { "statusAhgora": "NI", "matricula": "0101000962", "nome": "John Doe", "motivo": "004 - Afastamento Temporário por Doença", "inicio": "2023-01-01", "fim": "2023-01-02", "cod_interno": "01.01.000962.003", "tpMovimento": "I", "dtMovimento": "2024-09-06" } ], "hasNext": true } |
Post: /api/rh/v1/ahgora/afastamentos Nome | Descrição | Tipo | Obrigatório | Exemplo | cod_interno | Código interno do afastamento | string | Sim | 01.01.000004.001 | dtMovimento | Data do movimento | string | Sim | 2024-09-06 | tpMovimento | Tipo do movimento | string | Sim | I(Inclusão) |
A partir do filtro realizado, ao clicar em integrar afastamento, os dados serão enviados para o back-end. Expandir |
---|
| { "items": [ { "cod_interno":"01.01.000004.001", "tpMovimento":"I", "dtMovimento":"2024-09-06" } ] } |
Com os dados postados, o back-end se encarregará de montar o body para requisição de envio para o Ahgora: https://api.ahgora.com.br/absences Obs* Caso não exista data fim, enviar uma fictícia, exemplo: 31/12/2099 Expandir |
---|
title | Exemplo de envio para Ahgora |
---|
| [ { "matricula": "0101000004", "motivo": "004", "inicio": "2019-01-01", "fim": "2019-01-02", "cod_interno": "01.01.000004.001", "operation": "INS" } ] |
Retorno do código unique de processamento retornado pela Ahgora Expandir |
---|
title | Rertorno do unique criado pela Ahgora |
---|
| { "company":"a148176", "message":"Employee's Integration on progress", "unique":"c5ga345h" } |
Devolver o retorno para o POUI com o status da integração para que seja atualizado a lista, nesse caso 'AR' (Aguardando retorno), pois ainda não foi feita a consulta do unique. Estrutura de Retorno: Campo | Tipo | Exemplo | codInterno | string | 01.01.000004.001 | statusAhgora | string | AR |
Expandir |
---|
title | Rertorno da integração para o POUI |
---|
| { "items": [ { "codInterno":"01.01.000004.001", "statusAhgora":"AR" } ] } |
Card documentos |
---|
Informacao | Com o código unique em mãos, será necessário consultar o status do processamento na Ahgora. Pode ser feito após o envio antes do retorno para o POUI ou através do botão 'Atualizar Status' que está disponível na tela |
---|
Titulo | Importante |
---|
|
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
id | IntegAhgoraExclu |
---|
label | Integração Exclusão Afastamento |
---|
| Objetivo: Busca dos dados para listagem dos afastamentos excluídos e envio dos afastamentos excluídos selecionados para o back-end.
Tipo de requisição: GET/POST Endpoint: /api/rh/v1/ahgora/afastamentos/exclusao
Get: Query Params: Nome | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | Sim | 1 | pageSize | Tamanho da página | number | Sim | 100 | dataExcDe | Data Exclusão De | string | Sim | "2019-01-02T16:37:02-03:00" | dataExcAte | Data Exclusão Até | string | Não | "2024-01-02T16:37:02-03:00" | branchCode | Filial (Multi Valores separados por vírgula) | string | Sim | "01,02" | matCode | Matrícula De | string | Não | 000002 | matCodeAte | Matrícula Até | string | Não | 000002 | situacao | Situação do funcionário (Multi Valores separados por vírgula) | string | Não | N,A | categoria | Categoria do funcionário (Multi Valores separados por vírgula) | string | Não | M,E | tipostatus | Tipo do status (Multi Valores separados por vírgula) | string | Não | 0,6 | codCC | Centro de custo De | string | Não | 001 | codCCAte | Centro de Custo Até | string | Não | 001 | codFuncao | Função De | string | Não | 001 | codFuncaoAte | Função Até | string | Não | 001 | codDepto | Departamento De | string | Não | 000000061 | codDeptoAte | Departamento Até | string | Não | 000000061 | turnoCode | Turno De | string | Não | 001 | turnoCodeAte | Turno Até | string | Não | 001 |
Estrutura de Retorno: Campo | Tipo | Exemplo | statusAhgora(obrigatório) | string | NI(Não Integrado), IN(Integrado), CI(Com inconsistência), AR(Aguardando retorno) | matricula(obrigatório) | string | 0101000001 | nome | string | John Doe | motivo | string | 004 - Afastamento Temporário por Doença | inicio | string | 2019-01-01 | fim | string | 2019-01-02 | cod_interno(obrigatório) | string | 01.01.000004.001 | tpMovimento(obrigatório) | string | E(Inclusão) | dtMovimento(obrigatório) | string | 2024-09-06 |
Exemplo de Requisição: GET: api/rh/v1/ahgora/afastamentos/exclusao?page=1&pageSize=100&dataExcDe=2000-01-01T09:03:57-03:00&dataExcAte=2024-09-06T09:03:57-03:00& branchCode=01&matCode=&matCodeAte=&situacao=&categoria=&tipostatus=&codCC=&codCCAte=&codFuncao=&codFuncaoAte=&codDepto=&codDeptoAte=&turnoCode=&turnoCodeAte= Se atentar com a paginação. Expandir |
---|
| { "items": [ { "statusAhgora": "NI", "matricula": "0101000002", "nome": "Jane Doe", "motivo": "004 - Afastamento Temporário por Doença", "inicio": "2024-08-01", "fim": "2024-08-10", "cod_interno": "01.01.000002.001", "tpMovimento": "E", "dtMovimento": "2024-08-29" } ], "hasNext": false } |
Post: /api/rh/v1/ahgora/afastamentos/exclusao Nome | Descrição | Tipo | Obrigatório | Exemplo | cod_interno | Código interno do afastamento | string | Sim | 01.01.000002.001 | dtMovimento | Data do movimento | string | Sim | 2024-08-29 | tpMovimento | Tipo do movimento | string | Sim | E(Exclusão) |
A partir do filtro realizado, ao clicar em integrar afastamento, os dados serão enviados para o back-end. Expandir |
---|
| { "items": [ { "cod_interno":"01.01.000002.001", "tpMovimento":"E", "dtMovimento":"2024-08-29" } ] } |
Com os dados postados, o back-end se encarregará de montar o body para requisição de envio para o Ahgora: https://api.ahgora.com.br/absences Expandir |
---|
title | Exemplo de envio para Ahgora |
---|
| Poderá ser enviado dessa forma [ { "matricula": "0101000002", "motivo": "004", "inicio": "2024-08-01", "fim": "2024-08-10", "cod_interno": "01.01.000002.001", "operation": "DEL" } ]
Ou enviar apenas o código interno e a operação [ { "cod_interno": "01.01.000002.001", "operation": "DEL" } ] |
Retorno do código unique de processamento retornado pela Ahgora Expandir |
---|
title | Rertorno do unique criado pela Ahgora |
---|
| { "company":"a148176", "message":"Employee's Integration on progress", "unique":"d6jb378d" } |
Devolver o retorno para o POUI com o status da integração para que seja atualizado a lista, nesse caso 'AR' (Aguardando retorno), pois ainda não foi feita a consulta do unique. Estrutura de Retorno: Campo | Tipo | Exemplo | codInterno | string | 01.01.000002.001 | statusAhgora | string | AR |
Expandir |
---|
title | Rertorno da integração para o POUI |
---|
| { "items": [ { "codInterno":"01.01.000002.001", "statusAhgora":"AR" } ] } |
Card documentos |
---|
Informacao | Com o código unique em mãos, será necessário consultar o status do processamento na Ahgora. Pode ser feito após o envio antes do retorno para o POUI ou através do botão 'Atualizar Status' que está disponível na tela |
---|
Titulo | Importante |
---|
|
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
id | status |
---|
label | Status/Consulta |
---|
| Totvs custom tabs box items |
---|
default | no |
---|
referencia | status |
---|
| Deck of Cards |
---|
| Card |
---|
id | status |
---|
label | Atualizar Status |
---|
| Objetivo: Obter o status da integração
Tipo de requisição: POST Endpoint: /api/rh/v1/ahgora/status/ Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | cApi | Tipo da API: 1-People; 2-Absences; | string | SIM | 1 |
Ao selecionar os registros com status 'Aguardando retorno' e clicar no botão atualizar Status, os registros serão enviados para o back-end. Exemplo de Requisição: POST: api/rh/v1/ahgora/status/?cApi=1 Expandir |
---|
| { "items": [ { "codInterno":"01|01|000002" } ] } |
POST: api/rh/v1/ahgora/status/?cApi=2 Expandir |
---|
| { "items": [ { "codInterno":"01.01.000002.001" } ] } |
Com o código interno em mãos, será necessário encontrar o código unique gravado anteriormente para fazer o get na API da Ahgora: https://api.ahgora.com.br/v2/process/?unique=0b8ef0cc Retorno do status da Ahgora para o unique pesquisado. Veja que nesse caso o retorno veio com 2 erros, que devem ser gravados para posterior consulta na tela. Os erros precisam ser gravados separados por pipe quando existir mais de um, exemplo: Centro de custo inválido | CNPJ inválido Expandir |
---|
title | Rertorno do status da integração pela Ahgora |
---|
| { "data": { "errors": [ { "identifier": "0101000004", "message": [ "Centro de custo inválido", "CNPJ inválido" ] } ] }, "company": "a148176", "unique": "0b8ef0cc", "status": "error", "progress": { "done": "1", "total": "1" } } |
Estrutura de Retorno para o POUI: Campo | Tipo | codInterno | string | statusAhgora | string |
Como o retorno está com inconsistência, devolvo com status 'CI' Expandir |
---|
| { "items": [ { "codInterno": "01.01.000004.001", "statusAhgora":"CI" } ] } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
id | registro |
---|
label | Status do registro |
---|
| Objetivo: Consulta status do registro com inconsistência posicionado na linha
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/status/:codInterno Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | cApi | Tipo da API: 1-People; 2-Absences; | string | SIM | 1 |
Estrutura de Retorno:
Exemplo de Requisição: GET: api/rh/v1/ahgora/status/010100004?cApi=1 Buscamos o status do registro com inconsistência, no retorno da Ahgora caso exista mais de um erro deve ser separado por pipe conforme explicado na seção 'Atualizar Status' Expandir |
---|
| { "items": [ { "status":"Centro de custo inválido | CNPJ inválido" } ] } |
O pipe é necessário para a quebra de linha e visualização em tela conforme imagem abaixo. Obs* A numeração é feita pelo POUI.
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
| Objetivo: Consulta do lote de envio
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/lote/:codInterno Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | cApi | Tipo da API: 1-People; 2-Absences; | string | SIM | 2 |
Estrutura de Retorno: Campo | Tipo | lote | string | data | string | hora | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/lote/01.01.125803.001?cApi=2 Passamos o código interno do funcionário e o tipo da API para que possam encontrar o lote salvo anteriormente para o registro. Expandir |
---|
| { "items": [ { "lote": "[{\"matricula\": \"0101125803\",\"motivo\": \"001\",\"inicio\": \"2024-01-29\",\"fim\": \"2024-02-17\",\"cod_interno\": \"01.01.125803.001\",\"operation\": \"INS\"}]", "data": "2024-08-30", "hora": "19:44:02" } ] } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
|
|
|
Card |
---|
| Totvs custom tabs box items |
---|
default | no |
---|
referencia | filtros |
---|
| Deck of Cards |
---|
| Card |
---|
| Objetivo: Listagem de Filiais
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/branches Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o código ou nome da filial | string | Não | “Filial X” |
Estrutura de Retorno: Para conseguirmos abranger todas as áreas, utilizamos a nomenclatura abaixo. Campo | Tipo | branchCode | string | branchName | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/branches?filter=&page=1&pageSize=50 Expandir |
---|
| { "items": [ { "branchCode": "01", "branchName": "Matriz" }, { "branchCode": "02", "branchName": "Suporte-Suporte" }, { "branchCode": "03", "branchName": "Santos" }, { "branchCode": "04", "branchName": "São Vicente" } ], "hasNext": false } |
É possível também digitar no campo sem entrar no lookup para buscar uma filial. Get: api/rh/v1/ahgora/branches/01 Expandir |
---|
| { "items": [ { "branchCode": "01", "branchName": "Matriz" } ] } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
id | matricula |
---|
label | Matrícula |
---|
| Objetivo: Listagem das Matrículas
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/matricula Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar a matrícula | string | Não | “Matrícula X” | branchCode | Código da filial que está no filtro | string | Não | 04 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro da matrícula caso queira retornar apenas as matrículas das filiais selecionadas.
Estrutura de Retorno: Para conseguirmos abranger todas as áreas, utilizamos a nomenclatura abaixo. Campo | Tipo | branchCode | string | branchName | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/matricula?filter=&page=1&pageSize=50&branchCode=04 Expandir |
---|
| Como passei a filial 04 que está no filtro, optei por carregar apenas matrículas dessa filial { "items": [ { "filMat": "04", "matCode": "000001", "matName": "John Doe" }, { "filMat": "04", "matCode": "152062", "matName": "Jane Doe" } ], "hasNext": false } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
| Objetivo: Listagem dos Turnos
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/turno Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o turno | string | Não | “Turno X” | branchCode | Código da filial que está no filtro | string | Não | 02 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro do turno caso queira retornar apenas os turnos das filiais selecionadas.
Estrutura de Retorno: Campo | Tipo | filTurno | string | turnoCode | string | turnoDesc | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/turno?filter=&page=1&pageSize=50&branchCode=02 Expandir |
---|
| Como passei a filial 02 que está no filtro, optei por carregar apenas os turnos dessa filial { "items": [ { "filTurno": "02", "turnoCode": "001", "turnoDesc": "001" } ], "hasNext": false } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
id | ccusto |
---|
label | Centro de Custo |
---|
| Objetivo: Listagem dos Centros de Custo
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/ccusto Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o C.Custo | string | Não | “CCusto X” | branchCode | Código da filial que está no filtro | string | Não | 02 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro do centro de custo caso queira retornar apenas os centros de custo das filiais selecionadas.
Estrutura de Retorno: Campo | Tipo | filCC | string | codCC | string | ccDesc | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/ccusto?filter=&page=1&pageSize=10&branchCode=02 Expandir |
---|
| Como a tabela de Centro de Custo é compartilhada, mesmo com a filial, eu retorno todos { "items": [ { "filCC": " ", "codCC": "000000003", "ccDesc": "03" }, { "filCC": " ", "codCC": "000000010", "ccDesc": "010" }, { "filCC": " ", "codCC": "000000022", "ccDesc": "22" }, { "filCC": " ", "codCC": "00001 ", "ccDesc": "TESTE TITULO" }, { "filCC": " ", "codCC": "012 ", "ccDesc": "CONC 012" } ], "hasNext": true } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
| Objetivo: Listagem das Funções
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/funcao Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o C.Custo | string | Não | “Funcao X” | branchCode | Código da filial que está no filtro | string | Não | 02 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro da função caso queira retornar apenas as funções das filiais selecionadas.
Estrutura de Retorno: Campo | Tipo | filFuncao | string | codFuncao | string | funcaoDesc | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/funcao?filter=&page=1&pageSize=10&branchCode=02 Expandir |
---|
| Como passei a filial 02 que está no filtro, optei por carregar apenas as funções dessa filial { "items": [ { "filFuncao": "02", "codFuncao": "00001", "funcaoDesc": "CP038" }, { "filFuncao": "02", "codFuncao": "00002", "funcaoDesc": "65456" } ], "hasNext": false } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
| Objetivo: Listagem dos Departamentos
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/departamento Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | page | Número da página | number | SIM | 1 | pageSize | Tamanho da página | numer | SIM | 50 | filter | Campo automático do lookup. Pode filtrar o C.Custo | string | Não | “Funcao X” | branchCode | Código da filial que está no filtro | string | Não | 02 |
Obs* O filtro da filial é obrigatório, ele vai estar no filtro da função caso queira retornar apenas os departamentos das filiais selecionadas.
Estrutura de Retorno: Campo | Tipo | filDepto | string | codDepto | string | deptoDesc | string |
Exemplo de Requisição: GET: api/rh/v1/ahgora/departamento?filter=&page=1&pageSize=10&branchCode=02 Expandir |
---|
| Como passei a filial 02 que está no filtro, optei por carregar apenas os departamentos dessa filial { "items": [ { "filDepto": "02", "codDepto": "000000060", "deptoDesc": "DEP MAT 002042" }, { "filDepto": "02", "codDepto": "000000061", "deptoDesc": "DEP DELETADO" }, { "filDepto": "02", "codDepto": "0002 ", "deptoDesc": "Depto Vendas" } ], "hasNext": false } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
Card |
---|
id | sitcateg |
---|
label | Situação/Categoria |
---|
| Objetivo: Listagem da situação do funcionário e categoria
Tipo de requisição: GET Endpoint: /api/rh/v1/ahgora/opcoes Query Params: Campo | Descrição | Tipo | Obrigatório | Exemplo | tipo | Tipo da Busca: 1-Categora, 2-Situação | string | Sim | 1 | filter | Campo automático do lookup. Pode filtrar a situação | string | Não | “Mensalista” |
Obs* Embora esteja sendo passado o tipo, sempre será retornado os dois conjuntos de dados na requisição, estou usando o tipo para validação na busca individual no lookup.
Estrutura de Retorno: Para o retorno, utilizamos a forma abaixo. Campo | Tipo | label | string | value | string |
Exemplo de Requisição: GET api/rh/v1/ahgora/opcoes?filter=&tipo=1 ou api/rh/v1/ahgora/opcoes?filter=&tipo=2 O retorno precisa ser uma lista com a propriedade 'opcoes', com os dois arrays 'SitOptions' para a situação e 'catOptions' para as categorias. Expandir |
---|
| { "opcoes": { "sitOptions": [ { "value": "N", "label": "SITUACAO NORMAL" }, { "value": "A", "label": "AFASTADO TEMP." }, { "value": "D", "label": "DEMITIDO" }, { "value": "F", "label": "FERIAS" }, { "value": "T", "label": "TRANSFERIDO" } ], "catOptions": [ { "value": "A", "label": "AUTONOMO" }, { "value": "H", "label": "HORISTA" }, { "value": "M", "label": "MENSALISTA" }, { "value": "P", "label": "PRO-LABORE" }, { "value": "S", "label": "SEMANALISTA" } ] } } |
Para o retorno de erro, seguir a estrutura abaixo. Campo | Tipo | code | number | message | string | detailedMessage | string | type | string (“error”, “warning”, “success”) |
Expandir |
---|
| { "code": 500, "detailedMessage": "", "message": "Internal Server Error", "type": "error" } |
|
|
|
|
|
|
|