Configurações > Cadastros
Através desta tela, é possível cadastrar ações que serão executadas em intervalos periódicos de tempo, configurados pelo usuário. Este comportamento está fundamentado no funcionamento do quartz (Agendador), que é uma infraestrutura preparada para configurar o agendamento de tarefas. As expressões podem ser configuradas como intervalos de tempo, em segundos, minutos ou horas, ou ainda como expressões do quartz.
Aba Geral Aba Configurar expressão
Botão Outras Opções Ações Agendadas - Exemplo
Inicialmente para configuração de uma Ação Agendada, temos o preenchimento do campo "Nro. único", que pode ser alimentado de forma manual ou automática; esta definição é feita através do botão "Configurações", opção "Numeração", localizado no lado superior direito da tela.
A marcação "Ativo" representa que a ação está ou não operante. Quando demarcada, será apresentada logo à frente da marcação a descrição "A ação está desativada"; ao ser assinalada, tem-se os dizeres "A ação está ativa".
Aba Geral
Neste aba, realize a configuração do fundamento da ação. Devem ser informados os seguintes campos:
No campo "Nome", informe o nome da ação que está sendo criada; este nome será apresentado no log de execução da ação.
Preencha em "Descrição", a definição da ação; caso seja informada, também será exibida no log de execução da ação.
Determine o "Tipo de ação", que está sendo configurada, são elas:
- Proc. Banco de dados: Por esta opção, o nome da procedure criada na base, que será executada conforme o agendamento;
- Java: Selecionando esta opção, você deve cadastrar um módulo JAVA na tela Módulo Java, com um arquivo.jar que contenha uma classe que implemente a interface ScheduledAction do arquico Cuckoo.jar, disponível na api_outros.
Indique em "Cód. módulo", o código do módulo Java cadastrado, do qual será carregada a classe Java executada conforme o agendamento.
Selecione no campo "Ação", a ação de acordo com o módulo ao qual ela pertence, ou seja, scheduledAction, que contenha a ação que o usuário deseja desempenhar; ou caso seja procedure, o nome da procedure.
Caso a ação necessite de uma sessão do sistema para desempenhar sua tarefa, informe no campo "Usuário Logado", o usuário com o qual será feito o login. Nesse caso, devem ser levadas em consideração as permissões do usuário, de acordo com a ação a ser desempenhada.
Indique no campo "Fonte de dados", a fonte de dados registrada no sistema, na qual serão efetuadas as modificações da ação; sendo procedure, a base onde irá rodar esta procedure.
A marcação "Transação automática" quando realizada, indica que a ação irá utilizar transação automática de banco de dados; se desmarcada, não irá utilizar.
Observação: Ao criar uma ação agendada, o sistema poderá realizar uma consulta ao Serasa com um CNPJ, CPF ou Prospect automaticamente para um parceiro, de acordo a personalização que você definirá.
Aba Configurar expressão
Nesta aba, temos as configurações acerca da frequência na qual serão rodadas as ações que forem criadas. É necessário preencher os seguintes dados:
No campo "Tipo de gatilho", defina a forma como será tratada a sequência de execução das ações. Temos duas opções:
- Intervalo de tempo: Você pode definir um intervalo homogêneo de segundos, minutos ou horas para ser executada a ação;
- Expressão CRON: É a maneira de configuração que permite um ajuste mais fino do intervalo de tempo, possibilitando a inserção manual no campo uma expressão do cron.
O campo "Expressão de gatilho" é preenchido a medida que os intervalos dispostos em forma de Lista de opções (segundos, minutos, horas, dias, meses, dias da semana) forem definidos.
Ainda sobre a Lista de Opções, tem-se as seguintes considerações:
Cada lista de opções equivale a um dos caracteres gerados no campo "Expressão de gatilho", ao passo que qualquer modificação em uma das listas ou suas opções, irá refletir em uma atualização no referido campo;
- O caractere '*' (asterisco) significa "todos". No caso, uma lista vazia gera um asterisco e significa que o agendamento irá rodar em todos os valores para aquela determinada lista de opções;
- Pode-se especificar um "dia" ou "dia da semana" para a execução, mas não os dois simultaneamente, pois tal configuração poderia ser inconsistente;
- O caractere '?' (interrogação) significa "não importa". No caso, utilizado para dias ou dias da semana. Caso seja selecionado um ou mais dias para executar o agendamento, obrigatoriamente o dia da semana será preenchido com interrogação no campo Expressão do gatilho. Caso sejam selecionados dias da semana, os dias serão configurados com interrogação no campo "Expressão do gatilho";
- Caso a marcação "Intervalo?" não esteja realizada, e sejam selecionados vários valores na lista, serão incluídos no campo os valores selecionados separados por vírgulas, indicando que o agendamento será executado para cada valor selecionado;
- Efetuando a marcação Intervalo? em alguma das listas, e esta esteja com mais de um valor selecionado, o valor gerado será substituído pelo primeiro e o último valor selecionados, separados por um hífen ( - ) no campo Expressão do gatilho, indicando que o agendamento será executado para todos os valores contidos no intervalo;
- O botão
de uma determinada lista, limpa a seleção da lista e troca o valor referente à mesma por um asterisco, indicando que o agendamento será executado para todos os valores desse intervalo;
- Já o botão
, limpa a seleção de todas as listas, possibilitando o reinício da seleção dos valores desejados para a configuração;
- O botão
, analisa a expressão e caso ocorra algum erro, exibe na tela; não havendo erro, o horário da próxima execução é exposto para o usuário.
![]() |
O botão ![]() |
Botão Outras Opções
Localizado no lado superior central da tela, temos o botão Outras Opções... que ao ser acionado, possibilita a geração do log dos jobs; ele possui duas opções, sendo elas:
- Ações ativas: Escolhendo esta opção, será exibido um pop-up denominado "Lista de jobs cadastrados", na qual será apresentado o log relacionado às ações ativas.
- Ações em execução no momento: Por esta opção, será aberto o pop-up "Lista de jobs em execução", contendo o log das ações em execução no momento.
Ações Agendadas - Exemplo
Trabalhando na Configuração do Arquivo de Remessa, é possível gerar o arquivo de configuração de forma automática, a partir de Ações Agendadas. Isso é feito em um ambiente de desenvolvimento Java. Considere o exemplo abaixo:
package br.com.sankhya.servicedesk;
import java.math.BigDecimal;
import java.sql.CallableStatement;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import org.cuckoo.core.ScheduledAction;
import org.cuckoo.core.ScheduledActionContext;
import com.sun.jmx.snmp.Timestamp;
import br.com.sankhya.extensions.actionbutton.AcaoRotinaJava;
import br.com.sankhya.extensions.actionbutton.ContextoAcao;
import br.com.sankhya.jape.dao.JdbcWrapper;
import br.com.sankhya.modelcore.PlatformService;
import br.com.sankhya.modelcore.PlatformServiceFactory;
import br.com.sankhya.modelcore.PlatformServiceFactory.ServiceDescriptor;
import br.com.sankhya.modelcore.util.EntityFacadeFactory;
public class ScheduleGeraEDI implements ScheduledAction {
public void onTime(ScheduledActionContext contexto) {
try{
//Para que seja possível preencher os parâmetros sem a interface com o usuário
//criamos uma colection e preenchemos essa colection com cada parâmetro de cada
//"registro" (chamo de registro a configuração de linha do arquivo).
Collection<Map<String, Object>> params = new ArrayList<Map<String, Object>>();
//O primeiro "registro" é o 1.02.00, ele usa duas variáveis: "DATA INICIO" e "DATA FINAL"
params.add(buildParam(10200, "DATA INICIO", "01/04/2016"));
params.add(buildParam(10200, "DATA FINAL", "30/04/2016"));
//O segundo "registro" é o 1.03.00, esse usa "DATData Inicial" e "DATData Inicial"
params.add(buildParam(10300, "DATData Inicial", "01/04/2016"));
params.add(buildParam(10300, "DATData Final", "30/04/2016"));
//e segue...
params.add(buildParam(10400, "DATData Inicial", "01/04/2016"));
params.add(buildParam(10400, "DATData Final", "30/04/2016"));
params.add(buildParam(10500, "DATData Inicial", "01/04/2016"));
params.add(buildParam(10500, "DATData Final", "30/04/2016"));
params.add(buildParam(10600, "DATData Inicial", "01/04/2016"));
params.add(buildParam(10600, "DATData Final", "30/04/2016"));
PlatformService ps = PlatformServiceFactory.getInstance().lookupService(
"@core:edi.comercial.service");
ps.set("codLayout", new BigDecimal(10000));
ps.set("parametros", params);
ps.set("caminhoRepositorio", "IntercambioEletronico/relatorio10000");
ps.set("emails", "hamir@hamir.com.br,jose@jose.com.br");
/*Descomente se for usar FTP
ps.set("caminhoFTP", "arquivos/edi/relatorio10000");
ps.set("enderecoFTP", "ftp://meuftp.com.br");
ps.set("usuarioFTP", "hamir");
ps.set("senhaFTP", "123456");
*/
ps.execute();
} catch (Exception e){
RuntimeException re = new RuntimeException(e);
throw re;
}
}
//Esse método serve só pra agilizar a criação da Map, pois como cada parâmetro
//precisa de 3 informações, ficaria extenso escrever linha a linha
private Map<String, Object> buildParam(long codigo, String nome, Object valor){
Map<String, Object> param = new HashMap<String, Object>();
param.put("codigo", new BigDecimal(codigo));
param.put("nome", nome);
param.put("valor", valor);
return param;
}
}
Comentários
2 comentários
Gostaria de configurar ação agendada para executar um dashboard criado, é possível?
Boa tarde Alexandre, Como vai?
Não é possível criar ações agendadas para execução de dashboards, pois elas as ações não possuem interação com os usuários.
Por favor, entre para comentar.