
- Post History
- Subscribe to RSS Feed
- Mark as New
- Mark as Read
- Bookmark
- Subscribe
- Printer Friendly Page
- Report Inappropriate Content
on 12-22-2021 02:56 AM
|
DD-MM-YYYY HH:MM:SS
YYYY = Ano, MM = Mês, DD = Dia, HH = Hora, MM= Minuto, SS = Segundo |
Uma maneira de garantir que a comparação está correta é converter os dois valores para objetos do tipo GlideDateTime.
Abaixo está o exemplo de uma função que converte dois valores para GlideDateTime e realiza a comparação entre a data fornecida e a data atual.
var DateUtil = Class.create();
DateUtil.prototype = {
initialize: function() {
},
// Usage: new DateUtil().hasDatePassed(current.getValue('state_date'))
hasDatePassed : function(dateFieldValue) {
var now = new GlideDateTime();
var startDt = new GlideDateTime(dateFieldValue);
if (startDt.getNumericValue() < now.getNumericValue())
return true;
return false;
},
type: 'DateUtil'
};
Outro caso de Uso:
Imagine que você tem um formulário de pedido aonde os funcionários podem, por exemplo, solicitar um novo notebook.
No seu formulário há um campo do tipo date/time chamado "para_quando".
Você pode criar uma Business Rule para garantir que o colaborador não informe uma data anterior a data atual, evitando assim que dados inconsistentes sejam gravados no pedido.
- Crie uma Business Rule em System Definition > Business Rules;
- Clique em New;
- Name: Para Quando Precisa Disso;
- Table: (Selecione a sua tabela que contém o campo para_quando);
- Marque o checkbox Advanced;
- Aba When to run: Before Update
- Utilize o código abaixo na aba Advanced:
(function executeRule(current, previous /*null when async*/) {
// agora armazena a data/hora atual
var agora = new GlideDateTime();
// Cria um objeto GlideDateTime para quando você precisa do item de catálogo
var paraQuando = new GlideDateTime(current.para_quando);
// Se o item de catálogo for solicitado para uma data anterior a data atual, não grava o registro e exibe mensagem de erro na tela.
if(paraQuando.before(agora)){
gs.addErrorMessage("A data do campo Para Quando Precisa Disso não pode estar no passado. O seu pedido não foi salvo no banco de dados.");
current.setAbortAction(true);
}
})(current, previous);
- Clique em Update.
Pronto. Agora é só testar o formulário informando uma data anterior a data atual.
________________________
Carlos Camacho
https://www.linkedin.com/in/camachojunior
- 674 Views