/// <summary> /// Altera um Agendamento /// </summary> /// <param name="idSistema">ID do Sistema que terá agendamento de execução de um processo</param> /// <param name="statusAgendamentoProcessamentoExecucao">Status Agendamento Processamento Execucao</param> /// <param name="tipoExecucao">Tipo Execucao</param> /// <param name="horaExecucao">Hora que será feito a execucao do processo</param> /// <param name="dhInclusao">Data Hora Inclusao</param> /// <param name="idAgendamento">ID Agendamento</param> public void Alterar(Int32 idSistema, StatusAgendamentoProcessoExecucao.enmStatusExecucao statusAgendamentoProcessamentoExecucao, Agendamento.enmTipoExecucao tipoExecucao, DateTime horaExecucao, DateTime horaProximaExecucao, DateTime dhInclusao, Int32 idAgendamento) { try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Agendamento está operando em Modo Entidade Only"); } acessoDadosBase.AddParameter("@SIST_ID", idSistema); acessoDadosBase.AddParameter("@STAPE_ST", StatusAgendamentoProcessoExecucao.ObterDBValue_StatusExecucao(statusAgendamentoProcessamentoExecucao)); acessoDadosBase.AddParameter("@AGPROC_TP_EXECUCAO", ObterDBValue_TipoExecucao(tipoExecucao)); acessoDadosBase.AddParameter("@AGPROC_HR_EXECUCAO", horaExecucao); acessoDadosBase.AddParameter("@AGPROC_DH_PROX_EXECUCAO", horaProximaExecucao); acessoDadosBase.AddParameter("@USU_ID_UPD", base.UsuarioManutencao.ID); acessoDadosBase.AddParameter("@AGPROC_DH_USUARIO_UPD", dhInclusao); acessoDadosBase.AddParameter("@AGPROC_ID", idAgendamento); acessoDadosBase.ExecuteNonQuerySemRetorno(CommandType.StoredProcedure, "prAGPROC_UPD"); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } }
/// <summary> /// Atualizar Execução de um Agendamento /// </summary> /// <param name="idAgendamento">ID Agendamento</param> /// <param name="tipoExecucao">Tipo Execucao. Recorrente ou Imediata</param> /// <param name="hrAgendamento">Hora de execução do agendamento</param> /// <param name="intervaloExecucao">Intervalo de tempo a ter o novo agendamento. Sempre em SEGUNDOS. Não obrigatório para Tipo Execução Imediata.</param> public void AtualizarExecucaoAgendamento(Int32 idAgendamento , Agendamento.enmTipoExecucao tipoExecucao , DateTime hrAgendamento , Int32 intervaloExecucao = -1 ) { try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Parametro está operando em Modo Entidade Only"); } if (tipoExecucao == enmTipoExecucao.Recorrente && intervaloExecucao == -1) { throw new ApplicationException("Para execução do tipo Recorrente é necessário informar um intervalo de Execução"); } acessoDadosBase.AddParameter("@AGPROC_ID", idAgendamento); acessoDadosBase.AddParameter("@AGPROC_TP_EXECUCAO", ObterDBValue_TipoExecucao(tipoExecucao)); acessoDadosBase.AddParameter("@INTERVALO", intervaloExecucao); acessoDadosBase.AddParameter("@AGPROC_HR_EXECUCAO", hrAgendamento); acessoDadosBase.ExecuteNonQuerySemRetorno(CommandType.StoredProcedure, "prAGPROC_UPD_EXECUCAO_AGEN"); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } }
/// <summary> /// Inclui um Agendamento com dependência /// </summary> /// <param name="idSistema">ID do Sistema que terá agendamento de execução de um processo</param> /// <param name="codigoSistemaModulo">Código do Módulo do Sistema</param> /// <param name="nome">Nome do processo que está sendo agendado</param> /// <param name="statusAgendamentoProcesso">Status do Agendamento do processo</param> /// <param name="tipoExecucao">Tipo Execucao (IMED = Imediato; DIAR = Diário)</param> /// <param name="horaExecucao">Hora que será feito a execucao do processo</param> /// <param name="dhInclusao">Data Hora Inclusao</param> /// <param name="idAgendamentoDependenciaExecucao">ID do Agendamento que o processo sendo agendendado é dependente de execução. Este agendamento só será executado após a execução com sucesso deste agendamento informado.</param> /// <param name="idAgendamento">Parâmetro de saída com o ID do Agendamento criado</param> public void Incluir(Int32 idSistema, String codigoSistemaModulo, String nome, Agendamento.enmStatus statusAgendamentoProcesso, Agendamento.enmTipoExecucao tipoExecucao, DateTime horaExecucao, DateTime horaProximaExecucao, DateTime dhInclusao, int idAgendamentoDependenciaExecucao, Agendamento.enmTipoProcesso tipoProcesso, Boolean permiteConcorrenciaExecucao, ref Int32 idAgendamento) { try { if (ModoEntidadeOnly) { throw new ApplicationException("Esta Instância da classe Agendamento está operando em Modo Entidade Only"); } idAgendamento = Int32.MinValue; acessoDadosBase.AddParameter("@SIST_ID", idSistema); acessoDadosBase.AddParameter("@SIST_CD_MODULO", codigoSistemaModulo); acessoDadosBase.AddParameter("@AGPROC_NM", nome); acessoDadosBase.AddParameter("@STAGPROC_ST", ObterDBValue_Status(statusAgendamentoProcesso)); acessoDadosBase.AddParameter("@STAPE_ST", StatusAgendamentoProcessoExecucao.ObterDBValue_StatusExecucao(StatusAgendamentoProcessoExecucao.enmStatusExecucao.Agendado)); acessoDadosBase.AddParameter("@AGPROC_TP_EXECUCAO", ObterDBValue_TipoExecucao(tipoExecucao)); acessoDadosBase.AddParameter("@AGPROC_HR_EXECUCAO", horaExecucao); acessoDadosBase.AddParameter("@AGPROC_DH_PROX_EXECUCAO", horaProximaExecucao); acessoDadosBase.AddParameter("@USU_ID_INS", base.UsuarioManutencao.ID); acessoDadosBase.AddParameter("@AGPROC_DH_USUARIO_INS", dhInclusao); acessoDadosBase.AddParameter("@AGPROC_ID_DEPEND_EXEC", idAgendamentoDependenciaExecucao); acessoDadosBase.AddParameter("@AGPROC_TP_PROC", Agendamento.kTipoProcesso_GRUPO); acessoDadosBase.AddParameter("@AGPROC_FL_CONCORRENCIA_EXEC", permiteConcorrenciaExecucao); acessoDadosBase.AddParameter("@AGPROC_ID", Int32.MaxValue, ParameterDirection.InputOutput); idAgendamento = Convert.ToInt32(acessoDadosBase.ExecuteNonQueryComRetorno(CommandType.StoredProcedure, "prAGPROC_INS_DEPEND_EXEC")[0]); } catch (Exception ex) { CaseBusiness.Framework.Log.Log.Logar(CaseBusiness.Framework.TipoLog.Erro, ex.Message, ex.StackTrace, "", "", DateTime.Now, CaseBusiness.Framework.Configuracao.Configuracao.Aplicacao, CaseBusiness.Framework.Tela.Nenhum, 0); throw; } }
/// <summary> /// Inclui um Agendamento /// </summary> /// <param name="idSistema">ID do Sistema que terá agendamento de execução de um processo</param> /// <param name="nome">Nome do processo que está sendo agendado</param> /// <param name="statusAgendamento">Status do Agendamento do processo</param> /// <param name="tipoExecucao">Tipo Execucao (IMED = Imediato; DIAR = Diário)</param> /// <param name="horaExecucao">Hora que será feito a execucao do processo</param> /// <param name="dhInclusao">Data Hora Inclusao</param> /// <param name="idAgendamento">Parâmetro de saída com o ID do Agendamento criado</param> public void Incluir(Int32 idSistema, String nome, Agendamento.enmStatus statusAgendamento, Agendamento.enmTipoExecucao tipoExecucao, DateTime horaExecucao, DateTime horaProximaExecucao, DateTime dhInclusao, ref Int32 idAgendamento) { Incluir(idSistema, String.Empty, nome, statusAgendamento, tipoExecucao, false, horaExecucao, horaProximaExecucao, dhInclusao, Agendamento.kTipoProcesso_GRUPO, ref idAgendamento); }