Serviço de Jornadas
Este serviço permite internalizar a estrutura de jornadas da sua organização.
Exportar Jornadas - Exemplo de Implementação CSV
Para exportar as jornadas cadastrados na sua organização no formato CSV, podemos fazer da seguinte maneira:
Configuração do Arquivo Properties
Definição do Serviço
No arquivo fsense.properties, configure o serviço que será executado ajustando a propriedade service.name para WORKDAY_SERVICE.
# SERVICO A SER EXECUTADO
service.name=WORKDAY_SERVICE
Método do Serviço
Configure o método do serviço para EXPORT_WORKDAYS através da propriedade service.method.
# METODO DO SERVIÇO A SER EXECUTADO
service.method=EXPORT_WORKDAYS
Tipo de Operação
Especifique o tipo de operação desejado através da propriedade operation.type. Defina o como CSV para exportar para um arquivo CSV ou como DATABASE para exportar para um banco de dados. Para esta implementação, defina CSV.
# TIPO DE OPERAÇÃO
operation.type=csv
Parâmetros de Exportação
É possível definir parâmetros opcionais na exportação de jornadas como:
- name - Filtra pelo nome da jornada.
#PARÂMETROS PARA SERVIÇO DE IMPORTAÇÃO/EXPORTAÇÃO DE JORNADA
#Exemplo:[Jornada Padrão]
workday.name=
Execução da Aplicação
Após a configuração dos parâmetros, execute a aplicação.
=========================================================
SELECTED SERVICE [WORKDAY_SERVICE]
=========================================================
OPERATION TYPE: CSV
=========================================================
SELECTED METHOD [EXPORT_WORKDAYS]
=========================================================
export workday
checking if token is valid?: false
=========================================================
Starting authentication process
Getting access token
Token received.
f18d2c7-d0ce-4e3a-8844-6c6b748bdd83
=========================================================
AUTHENTICATION SUCCESS
=========================================================
Nº of records found: 11
Nº of pages found: 2
Getting workdays page: 1/2
Getting workdays page: 2/2
=========================================================
GENERATING CSV
=========================================================
Generated file: workdays.csv
Status saved successfully.
File saved in path: ./files/export/workdays.csv
=========================================================
EXPORT WORKDAYS FINISHED SUCCESSFULLY
=========================================================
End of execution.
Verificação da Operação
Após a execução da aplicação, abra o arquivo gerado para verificar as jornadas exportadas. O arquivo exportado terá uma estrutura semelhante à do exemplo abaixo:
'id','name','isFlexible','ignoreNonFocusLongerThan','workNationalHolidays','workRegionalHolidays','weekday','maxFlexibleDuration','start','end','calendarId'
'74','Geral','false','','false','false','MONDAY','','08:00:00','12:00:00',''
'74','Geral','false','','false','false','MONDAY','','14:00:00','18:00:00',''
'74','Geral','false','','false','false','TUESDAY','','08:00:00','12:00:00',''
'74','Geral','false','','false','false','TUESDAY','','14:00:00','18:00:00',''
'74','Geral','false','','false','false','WEDNESDAY','','08:00:00','12:00:00',''
'74','Geral','false','','false','false','WEDNESDAY','','14:00:00','18:00:00',''
'74','Geral','false','','false','false','THURSDAY','','08:00:00','12:00:00',''
'74','Geral','false','','false','false','THURSDAY','','14:00:00','18:00:00',''
'74','Geral','false','','false','false','FRIDAY','','08:00:00','12:00:00',''
'74','Geral','false','','false','false','FRIDAY','','14:00:00','18:00:00',''
'3051','Jornada Flexível Exemplo','false','','false','false','TUESDAY','07:00:00','06:00:00','22:00:00','342'
'3051','Jornada Flexível Exemplo','false','','false','false','MONDAY','07:00:00','06:00:00','22:00:00','342'
'3051','Jornada Flexível Exemplo','false','','false','false','FRIDAY','07:00:00','06:00:00','22:00:00','342'
'3051','Jornada Flexível Exemplo','false','','false','false','THURSDAY','07:00:00','06:00:00','22:00:00','342'
'3051','Jornada Flexível Exemplo','false','','false','false','WEDNESDAY','07:00:00','06:00:00','22:00:00','342'
'3052','Jornada Fixa Exemplo','false','','true','false','MONDAY','','07:30:00','12:00:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','MONDAY','','13:12:00','17:30:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','TUESDAY','','07:30:00','12:00:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','TUESDAY','','13:12:00','17:30:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','WEDNESDAY','','07:30:00','12:00:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','WEDNESDAY','','13:12:00','17:30:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','THURSDAY','','07:30:00','12:00:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','THURSDAY','','13:12:00','17:30:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','FRIDAY','','07:30:00','12:00:00',''
'3052','Jornada Fixa Exemplo','false','','true','false','FRIDAY','','13:12:00','17:30:00',''
Exportar Jornadas - Exemplo de Implementação de Banco de Dados
Para exportar as jornadas cadastrados na sua organização, fazendo a persistência dos dados no banco, podemos fazer da seguinte maneira:
Configuração do Arquivo Properties
Definição do Serviço
No arquivo fsense.properties, configure o serviço que será executado ajustando a propriedade service.name para WORKDAY_SERVICE.
# SERVICO A SER EXECUTADO
service.name=WORKDAY_SERVICE
Método do Serviço
Configure o método do serviço para EXPORT_WORKDAYS através da propriedade service.method.
# METODO DO SERVIÇO A SER EXECUTADO
service.method=EXPORT_WORKDAYS
Tipo de Operação
Especifique o tipo de operação desejado através da propriedade operation.type. Defina o como CSV para exportar para um arquivo CSV ou como DATABASE para exportar para um banco de dados. Para esta implementação, defina DATABASE.
# TIPO DE OPERAÇÃO
operation.type=DATABASE
Parâmetros de Exportação
É possível definir parâmetros opcionais na exportação de jornadas como:
- name - Filtra pelo nome da jornada.
#PARÂMETROS PARA SERVIÇO DE IMPORTAÇÃO/EXPORTAÇÃO DE JORNADA
#Exemplo:[Jornada Padrão]
workday.name=
Execução da Aplicação
Após a configuração dos parâmetros, execute a aplicação.
=========================================================
SELECTED SERVICE [WORKDAY_SERVICE]
=========================================================
OPERATION TYPE: DATABASE
=========================================================
SELECTED METHOD [EXPORT_WORKDAYS]
=========================================================
export workday
checking if token is valid?: false
=========================================================
Starting authentication process
Getting access token
Token received.
f18d2c7-d0ce-4e3a-8844-6c6b748bdd83
=========================================================
AUTHENTICATION SUCCESS
=========================================================
Nº of records found: 11
Nº of pages found: 2
Getting workdays page: 1/2
Getting workdays page: 2/2
=========================================================
SAVING ON DATABASE
=========================================================
Open database Connection
Saving on tb_workday
UpdateCount: 11
Database connection close
=========================================================
SAVING DATABASE WORKDAYS FINISHED SUCCESSFULLY
=========================================================
End of execution.
Verificação da Operação
Após a execução, abra a ferramenta de banco de dados de sua preferência e faça uma consulta na tabela tb_workday.
SELECT * FROM tb_workday;
A tabela tb_workday terá uma estrutura semelhante à esta:
| id | name | work_national_holidays | work_regional_holidays | is_flexible | ignore_non_focus_longer_than | calendar_id |
|---|---|---|---|---|---|---|
| 74 | Geral | 0 | 0 | 0 | ||
| 3051 | Jornada Flexível Exemplo | 0 | 0 | 0 | 342 | |
| 3052 | Jornada Fixa Exemplo | 1 | 0 | 0 | ||
| 3053 | Jornada Comercial | 1 | 1 | 0 | ||
| 3054 | jornada flexivel | 0 | 0 | 0 |
Para visualizar os dias trabalhados faça uma consulta na tabela tb_workday_schedule.
SELECT * FROM tb_workday_schedule;
| weekday | start_time | end_time | max_flexible_duration | workday_id |
|---|---|---|---|---|
| MONDAY | 08:00:00 | 12:00:00 | 74 | |
| MONDAY | 14:00:00 | 18:00:00 | 74 | |
| TUESDAY | 08:00:00 | 12:00:00 | 74 | |
| TUESDAY | 14:00:00 | 18:00:00 | 74 | |
| WEDNESDAY | 08:00:00 | 12:00:00 | 74 | |
| WEDNESDAY | 14:00:00 | 18:00:00 | 74 | |
| THURSDAY | 08:00:00 | 12:00:00 | 74 | |
| THURSDAY | 14:00:00 | 18:00:00 | 74 | |
| FRIDAY | 08:00:00 | 12:00:00 | 74 | |
| FRIDAY | 14:00:00 | 18:00:00 | 74 | |
| TUESDAY | 06:00:00 | 22:00:00 | 07:00:00 | 3051 |
| MONDAY | 06:00:00 | 22:00:00 | 07:00:00 | 3051 |
| FRIDAY | 06:00:00 | 22:00:00 | 07:00:00 | 3051 |
| THURSDAY | 06:00:00 | 22:00:00 | 07:00:00 | 3051 |
| WEDNESDAY | 06:00:00 | 22:00:00 | 07:00:00 | 3051 |
| MONDAY | 07:30:00 | 12:00:00 | 3052 | |
| MONDAY | 13:12:00 | 17:30:00 | 3052 | |
| TUESDAY | 07:30:00 | 12:00:00 | 3052 | |
| TUESDAY | 13:12:00 | 17:30:00 | 3052 | |
| WEDNESDAY | 07:30:00 | 12:00:00 | 3052 | |
| WEDNESDAY | 13:12:00 | 17:30:00 | 3052 | |
| THURSDAY | 07:30:00 | 12:00:00 | 3052 | |
| THURSDAY | 13:12:00 | 17:30:00 | 3052 | |
| FRIDAY | 07:30:00 | 12:00:00 | 3052 | |
| FRIDAY | 13:12:00 | 17:30:00 | 3052 |
Importar Jornadas
Para importar jornadas, a partir de um arquivo CSV, podemos fazer da seguinte maneira:
Configuração do Arquivo Properties
Definição do Serviço
No arquivo fsense.properties, defina o serviço que será executado ajustando a propriedade service.name para WORKDAY_SERVICE.
# SERVICO A SER EXECUTADO
service.name=WORKDAY_SERVICE
Método do Serviço
Configure o método do serviço para IMPORT_WORKDAY através da propriedade service.method.
# METODO DO SERVIÇO A SER EXECUTADO
service.method=IMPORT_WORKDAY
Tipo de Operação
Especifique o tipo de operação desejado através da propriedade operation.type. Defina o como CSV para exportar para um arquivo CSV ou como DATABASE para exportar para um banco de dados. Para esta implementação, defina CSV.
# TIPO DE OPERAÇÃO
operation.type=csv
Informar o Caminho do Arquivo
É necessário informar o caminho do arquivo CSV contendo as informações das jornadas a serem importadas através da propriedade file.name. Se não houver nenhum arquivo pronto, há um modelo disponível no diretório src/main/resources/import/workday_service_import_workday.csv. Preencha as informações conforme as colunas indicadas no modelo.
# EXEMPLO DE JORNADAS
'id','name','isFlexible','ignoreNonFocusLongerThan','workNationalHolidays','workRegionalHolidays','weekday','maxFlexibleDuration','start','end','calendarId'
'','Jornada Padrão Exemplo','false','','false','false','MONDAY','','07:30:00','11:00:00','342'
'','Jornada Padrão Exemplo','false','','false','false','MONDAY','','12:20:00','17:30:00','342'
'','Jornada Padrão Exemplo','false','','false','false','TUESDAY','','07:30:00','11:00:00','342'
'','Jornada Padrão Exemplo','false','','false','false','TUESDAY','','12:20:00','17:30:00','342'
'','Jornada Padrão Exemplo','false','','false','false','WEDNESDAY','','07:30:00','11:00:00','342'
'','Jornada Padrão Exemplo','false','','false','false','WEDNESDAY','','12:20:00','17:30:00','342'
'','Jornada Padrão Exemplo','false','','false','false','THURSDAY','','07:30:00','11:00:00','342'
'','Jornada Padrão Exemplo','false','','false','false','THURSDAY','','12:20:00','17:30:00','342'
'','Jornada Padrão Exemplo','false','','false','false','FRIDAY','','07:30:00','11:00:00','342'
'','Jornada Padrão Exemplo','false','','false','false','FRIDAY','','12:20:00','17:30:00','342'
'','Jornada Flexível Exemplo', 'true','','false','false','MONDAY','','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo', 'true','','false','false','TUESDAY','','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo', 'true','','false','false','WEDNESDAY','','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo', 'true','','false','false','THURSDAY','','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo', 'true','','false','false','FRIDAY','','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo com Restrição de Horário', 'true','','false','false','MONDAY','06:00:00','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo com Restrição de Horário', 'true','','false','false','TUESDAY','06:00:00','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo com Restrição de Horário', 'true','','false','false','WEDNESDAY','06:00:00','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo com Restrição de Horário', 'true','','false','false','THURSDAY','06:00:00','07:00:00','22:00:00', ''
'','Jornada Flexível Exemplo com Restrição de Horário', 'true','','false','false','FRIDAY','06:00:00','07:00:00','22:00:00', ''
No exemplo acima, vamos tres jornadas diferentes, uma jornada padrão, uma jornada flexível sem restrição de horário, e uma flexível com restrição de horário.
Os dias da Semana do Arquivo modelo a ser preenchido devem ser preenchido em INGLÊS.
Configure o caminho para o diretório onde o arquivo CSV está localizado.
#CAMINHO PARA IMPORTAR O ARQUIVO [O CAMINHO DEVE ESTAR PREVIAMENTE CRIADO]
path.import = ./src/main/resources/files/import
Defina o nome do arquivo CSV que contém as informações das jornadas a serem importadas.
#NOME DO ARQUIVO A SER IMPORTADO [file.name=team_import.csv]
file.name = workday_service_import_workday.csv
Configure o delimitador e o qualificador de texto utilizados no arquivo CSV.
#CONFIGURAÇÕES DO CSV
#UTILIZE [VIRGULA] [PONTO E VIRGULA] OU [VAZIO] PARA O PARAMETRO csv.delimiter
csv.delimiter = ;
#UTILIZE [VAZIO] [ASPAS SIMPLES] OU [ASPAS DUPLAS] PARA O PARAMETRO csv.text.qualifier
csv.text.qualifier = '
Certifique-se que o arquivo CSV esteja no formato correto e que os parâmetros de configurações correspondam ao formato do arquivo.
Execução da Aplicação
Após a configuração dos parâmetros, execute a aplicação.
=========================================================
SELECTED SERVICE [WORKDAY_SERVICE]
=========================================================
OPERATION TYPE: CSV
=========================================================
SELECTED METHOD [IMPORT_WORKDAY]
=========================================================
checking if token is valid?: false
=========================================================
Starting authentication process
Getting access token
Token received.
90d824df-6691-4c12-8c3c-9a29a5c8f4aa
=========================================================
Authentication done successfully
=========================================================
Jornada Padrão Exemplo - Flexible: false
Jornada Flexível Exemplo - Flexible: true
Jornada Flexível Exemplo com Restrição de Horário - Flexible: true
=========================================================
Jornada Padrão Exemplo imported successfully!
=========================================================
Jornada Flexível Exemplo imported successfully!
=========================================================
Jornada Flexível Exemplo com Restrição de Horário imported successfully!
=========================================================
RESULT OF IMPORT OPERATION
=========================================================
Total of requests made 3
Total of requests successfully: 3
Total of requests failed: 0
=========================================================
End of execution.
A aplicação realizará as requisições para importar as jornadas no fSense.
Verificação da Operação
Abra o Painel de Gestão Online do fSense no seu navegador e faça login. Navegue até a seção Jornadas > Jornada para verificar se as jornadas foram inseridas corretamente.
Caso haja algum erro durante a importação, uma mensagem de erro será exibida no console da aplicação. Verifique as mensagens de erro para solucionar possíveis problemas.
Exportar Jornadas por ID
Para exportar uma jornada, buscando pelo ID no formato CSV, podemos fazer da seguinte maneira:
Configuração do Arquivo Properties
Definição do Serviço
No arquivo fsense.properties, configure o serviço a ser executado definindo a propriedade service.name para WORKDAY_SERVICE.
# SERVICO A SER EXECUTADO
service.name=WORKDAY_SERVICE
Método do Serviço
Configure o método do serviço para EXPORT_WORKDAY_BY_ID através da propriedade service.method.
# METODO DO SERVIÇO A SER EXECUTADO
service.method=EXPORT_WORKDAY_BY_ID
Tipo de Operação
Especifique o tipo de operação desejado através da propriedade operation.type. Defina o como CSV para exportar para um arquivo CSV ou como DATABASE para exportar para um banco de dados. Para esta implementação, defina CSV.
# TIPO DE OPERAÇÃO
operation.type=csv
Parâmetros de Exportação
Para essa operação é necessário definir o identificador único da jornada a qual se deseja exportar, através do parâmetro workday.id no arquivo fsense.properties.
#Exemplo=[82]
workday.id=
Como exemplo, vamos buscar pelo id abaixo:
#Exemplo=[82]
workday.id=3051
Execução da Aplicação
Após a configuração dos parâmetros, execute a aplicação.
=============================================================
SELECTED SERVICE [WORKDAY_SERVICE]
=============================================================
OPERATION TYPE: CSV
=============================================================
SELECTED METHOD [EXPORT_WORKDAY_BY_ID]
=============================================================
workday id to be exported: [3051]
checking if token is valid?: false
=============================================================
Starting authentication process
Getting access token
Token received.
e5467634-2d3b-41af-8ec4-86bba853a4b1
=============================================================
Authentication done successfully
=============================================================
export workday by id
Workday founded: [3051]
=============================================================
GENERATING CSV
=============================================================
Generated file: workday_3051.csv
Status: saved successfully.
Path to saved file: ./files/export/workday_3051.csv
=============================================================
EXPORT WORKDAY BY ID FINISHED SUCCESSFULLY
=============================================================
End of execution.
Verificação da Operação
Após a execução da aplicação, abra o arquivo gerado para verificar a jornada exportada. O arquivo exportado terá uma estrutura semelhante à do exemplo abaixo:
'id','name','isFlexible','ignoreNonFocusLongerThan','workNationalHolidays','workRegionalHolidays','weekday','maxFlexibleDuration','start','end','calendarId'
'3051','Jornada Flexível Exemplo','false','','false','false','TUESDAY','07:00:00','06:00:00','22:00:00','342'
'3051','Jornada Flexível Exemplo','false','','false','false','MONDAY','07:00:00','06:00:00','22:00:00','342'
'3051','Jornada Flexível Exemplo','false','','false','false','FRIDAY','07:00:00','06:00:00','22:00:00','342'
'3051','Jornada Flexível Exemplo','false','','false','false','THURSDAY','07:00:00','06:00:00','22:00:00','342'
'3051','Jornada Flexível Exemplo','false','','false','false','WEDNESDAY','07:00:00','06:00:00','22:00:00','342'
Atualizar Jornadas por ID
Para atualizar jornadas cadastradas no fSense a partir de um arquivo CSV, podemos fazer da seguinte maneira:
Configuração do Arquivo Properties
Definição do Serviço
No arquivo fsense.properties, configure o serviço que será executado definindo a propriedade service.name para WORKDAY_SERVICE.
# METODO DO SERVIÇO A SER EXECUTADO
service.name=WORKDAY_SERVICE
Método do Serviço
Configure o método do serviço para UPDATE_WORKDAY_BY_ID através da propriedade service.method.
# METODO DO SERVIÇO A SER EXECUTADO
service.method=UPDATE_WORKDAY_BY_ID
Tipo de Operação
Especifique o tipo de operação desejado através da propriedade operation.type. Defina o como CSV para exportar para um arquivo CSV ou como DATABASE para exportar para um banco de dados. Para esta implementação, defina CSV.
# TIPO DE OPERAÇÃO
operation.type=csv
Informar o Caminho do Arquivo
Para atualizar uma jornada cadastrada no fSense, é preciso especificar o caminho do arquivo CSV contendo as informações das jornadas a serem atualizadas através da propriedade file.name. Se não houver nenhum arquivo pronto, há um modelo disponível no diretório src/main/resources/import/workday_service_update_workday.csv. Preencha as informações conforme as colunas indicadas no modelo.
Os dias da Semana do Arquivo modelo a ser preenchido devem ser preenchido em INGLÊS.
Configure o caminho para o diretório onde o arquivo CSV está localizado.
#CAMINHO PARA IMPORTAR O ARQUIVO [O CAMINHO DEVE ESTAR PREVIAMENTE CRIADO]
path.import = ./src/main/resources/files/import
Defina o nome do arquivo CSV que contém as informações das jornadas a serem atualizadas.
#NOME DO ARQUIVO A SER IMPORTADO [file.name=team_import.csv]
file.name = workday_service_update_workday.csv
Configure o delimitador e o qualificador de texto utilizados no arquivo CSV.
#CONFIGURAÇÕES DO CSV
#UTILIZE [VIRGULA] [PONTO E VIRGULA] OU [VAZIO] PARA O PARAMETRO csv.delimiter
csv.delimiter = ;
#UTILIZE [VAZIO] [ASPAS SIMPES] OU [ASPAS DUPLAS] PARA O PARAMETRO csv.text.qualifier
csv.text.qualifier = '
Certifique-se que o arquivo CSV esteja no formato correto e que os parâmetros de configurações correspondam ao formato do arquivo.