 
					
				
		
- 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
- 697 Views
