Agenda de Ações
Agenda de Ações
Agenda de Ações
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 que quando informada,
também será exibida no log de execução da ação.
Determine o "Tipo de ação" a ser configurada. Esta poderá ser:
• Proc. Banco de dados: por esta opção, o nome da procedure criada na
base, que será executada conforme o agendamento;
• Java: ao selecionar essa 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.
• 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;
• Você poderá 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", ele pode ser utilizado
para dias ou dias da semana. Dessa forma, quando 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, mas vários valores na
lista foram selecionados, serão incluídos no campo os valores
selecionados separados por vírgulas, indicando que o agendamento será
executado para cada valor selecionado;
• Quando a marcação Intervalo? for habilitada em alguma das listas, e esta
estiver 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, o que indicará que o agendamento será
executado para todos os valores contidos no intervalo;
Nota: o botão Limpar será apresentado somente na versão flex dessa tela.
[voltar ao topo]
[voltar ao topo]
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 us
uá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", "[email protected],[email protected]");
/*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;
}
}