Dúvida lógica automação
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2022 04:19 PM
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?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2022 06:23 PM
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-23-2022 07:57 PM
Obrigada pelo script Joaquim, vou fazer o teste.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-12-2022 10:55 PM
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?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
04-13-2022 12:24 AM
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