Dúvida lógica automação

AMANDA DE ANDRD
Giga Contributor

Peesoal , preciso fazer uma automação para um campo de uma tabela. (Sou nova em servicenow)

O nome da coluna é Prazo - a lógica será a diferrença entre  a Data Final (outro campo da tabela) e a data de hoje. Preciso que me retorne os dias. 

No gatilho (trigger) - já criei (OCORRENCIAS Created or Updated where (DATE FINAL is not empty);

Na Action - Update OCORRENCIAS Record - Seleciono o Fields Prazo, mas não sei como criar a diferença destas duas datas. 

 

Algém pode me dar um socorro?

 

4 REPLIES 4

Joaquim Pires
Kilo Sage
Kilo Sage

Olá,

Para calcular a diferença de datas use:

dt1 = new GlideDateTime("18-03-2022 00:00:00");
dt2 = new GlideDateTime("20-03-2022 00:00:00");

var dur = new GlideDuration();

dur = GlideDateTime.subtract(dt1,dt2).getDayPart();


O valor armazenado em dur é a diferença em dias que você precisa. 

Se estiver pegando os valores em uma BR pode usar current.nome_do_campo_da_tabela_aqui  


Obrigada pelo script Joaquim, vou fazer o teste. 

 

 

Oi Joaquim, 

    Veja, escrevia BR abaixo, mas como eu pego o valor da variável "dur", para armazenar no campo da tabela "prazo"?

var dt1 = new GlideDateTime(current.data_limite);
var agora = new GlideDateTime();

var dur = new GlideDuration();

dur = GlideDateTime.subtract(dt1,agora).getDayPart();
current.prazo = dur; (acho que isto está errado - como colocar o valor "dur" no campo "prazo") para que ele preencha automaticamnete?

E o Type da variável "prazo " na tabela, tem que estar configurado como script?

 

 

AMANDA DE ANDRD
Giga Contributor

Olá Joaquim, 

  Eu gerei o script abaixo (baseado na sua dica). Estou usando BR:

var dtLimite = new GlideDateTime(current.data_limite);
var agora = new GlideDateTime();

var dur = new GlideDuration();

dur = GlideDateTime.subtract(dtLimite,agora).getDayPart();
current.prazo = dur; (acho que isto aqui está errado - como faço para capturar "dur"e ele aparecer na variável "prazo" da minha tabela automaticamnete, quando "data limite" is not empty)?

 

obrigada