var gr = new GlideRecord(tabela)
GlideRecord
Instancia um GlideRecord sobre a tabela informada. É o ponto de partida de quase toda query server-side.
cheatsheet
Os métodos de GlideRecord, GlideAggregate, GlideDateTime, GlideSystem e do lado cliente que você usa toda semana — com a assinatura, o que faz e a boa prática associada. Filtre por categoria ou busque pelo nome. No fim, um conversor de formato de data.
var gr = new GlideRecord(tabela)
GlideRecord
Instancia um GlideRecord sobre a tabela informada. É o ponto de partida de quase toda query server-side.
gr.addQuery(campo, valor)
GlideRecord
Adiciona uma condição de igualdade (AND por padrão). Aceita também operador: addQuery("priority", "<=", 2).
Sempre filtre antes de query(). Um query() sem addQuery() varre a tabela inteira.
gr.addEncodedQuery(query)
GlideRecord
Aplica uma encoded query inteira de uma vez (a mesma string que aparece na URL da lista).
Nunca concatene input externo direto aqui — é vetor de injeção de query. Valide/whiteliste antes.
gr.addActiveQuery()
GlideRecord
Atalho para addQuery("active", true). Restringe a registros ativos.
gr.orderBy(campo) / orderByDesc(campo)
GlideRecord
Ordena o resultado por um campo, ascendente ou descendente.
gr.setLimit(n)
GlideRecord
Limita a quantidade de registros retornados pela query.
Use sempre que só precisar de alguns registros — evita trazer milhares à toa.
gr.query()
GlideRecord
Executa a query montada. Depois, itere com while (gr.next()).
gr.get(sys_id) / gr.get(campo, valor)
GlideRecord
Carrega um único registro. Retorna true se encontrou. Já posiciona o cursor no registro.
Prefira get() a query()+next() quando espera exatamente um registro.
gr.next()
GlideRecord
Avança o cursor para o próximo registro. Retorna false quando acabam.
gr.getValue(campo)
GlideRecord
Retorna o valor bruto (string) do campo, sem passar por getter de exibição.
Prefira getValue() a acessar gr.campo diretamente — evita coerção surpresa e problemas com referência.
gr.getDisplayValue(campo)
GlideRecord
Retorna o valor de exibição (label do choice, nome do referenciado) em vez do valor interno.
Nunca compare/grave pelo display value — o valor interno é o estável.
gr.setValue(campo, valor)
GlideRecord
Define o valor de um campo antes de insert()/update().
gr.insert()
GlideRecord
Insere o registro e retorna o sys_id gerado (ou null se falhou).
gr.update()
GlideRecord
Grava as alterações do registro atual e retorna o sys_id.
Cada update() dispara a pipeline de Business Rules de novo — cuidado com recursão em loop.
gr.deleteRecord() / deleteMultiple()
GlideRecord
Apaga o registro atual, ou todos os que casam com a query montada.
deleteMultiple() ignora o registro corrente e apaga o conjunto — teste a query antes.
gr.setWorkflow(false)
GlideRecord
Desliga Business Rules, notificações e engines para as próximas operações deste GlideRecord.
Útil para import/migração em massa. Cuidado: pula validações — use com consciência.
gr.autoSysFields(false)
GlideRecord
Impede a atualização automática de sys_updated_on/by ao gravar.
Preserva metadados de auditoria em migrações. Raramente necessário no dia a dia.
gr.setAbortAction(true)
GlideRecord
Aborta a operação de banco em andamento. Só tem efeito em before Business Rule.
Em after BR já não desfaz nada — o dado já foi gravado.
var ga = new GlideAggregate(tabela)
GlideAggregate
Faz contagem/soma/agrupamento no banco, sem trazer os registros para o servidor de aplicação.
Para contar acima de ~100 registros ou tabela que cresce, use GlideAggregate — nunca getRowCount().
ga.addAggregate("COUNT" | "SUM" | "AVG" | "MIN" | "MAX", campo)
GlideAggregate
Declara a função de agregação. COUNT não precisa de campo.
ga.groupBy(campo)
GlideAggregate
Agrupa os resultados por um campo (equivale ao GROUP BY do SQL).
ga.getAggregate("COUNT", campo)
GlideAggregate
Lê o valor agregado do grupo atual, depois de query()+next().
var gdt = new GlideDateTime()
GlideDateTime
Data e hora atuais em UTC (GMT). É o tipo certo para aritmética de data no servidor.
Datas no ServiceNow são armazenadas em UTC; a conversão para o fuso do usuário é na exibição.
gdt.addSeconds(n) / addDays… / add(GlideTime)
GlideDateTime
Soma (ou subtrai, com valor negativo) uma quantidade de tempo à data.
gdt.getNumericValue()
GlideDateTime
Retorna o timestamp em milissegundos — bom para comparar duas datas com segurança.
Comparar datas por getNumericValue() evita bugs de string/fuso.
gs.dateDiff(inicio, fim, true)
GlideDateTime
Diferença entre duas datas (strings). Com o terceiro parâmetro true, retorna segundos como número.
gdt.getDisplayValue()
GlideDateTime
Data formatada no fuso e no formato do usuário atual.
gs.info(msg) / gs.warn(msg) / gs.error(msg)
gs (GlideSystem)
Escreve no log do sistema (syslog) no nível correspondente.
Nunca logue PII ou credencial. Log é lido por muita gente e fica retido.
gs.getUserID()
gs (GlideSystem)
sys_id do usuário logado na sessão atual.
gs.getUser()
gs (GlideSystem)
Objeto GlideUser do usuário atual (roles, grupos, dados de perfil).
gs.hasRole(role)
gs (GlideSystem)
Verdadeiro se o usuário atual tem a role (ou é admin).
admin passa em quase todo hasRole() — teste permissão com um usuário real, não com admin.
gs.getProperty(nome, padrao)
gs (GlideSystem)
Lê uma system property (sys_properties). O segundo parâmetro é o fallback.
Coloque configuração em property, não hardcoded no script.
gs.getSession().putClientData(chave, valor)
gs (GlideSystem)
Guarda um dado na sessão do usuário; recupere com getClientData(chave).
É o jeito documentado de cachear na sessão (ex.: em ACL com script) sem repetir query.
gs.nil(valor)
gs (GlideSystem)
Verdadeiro se o valor é nulo, vazio ou indefinido — o jeito idiomático de checar "vazio" no ServiceNow.
gs.eventQueue(nome, gr, p1, p2)
gs (GlideSystem)
Enfileira um evento customizado no Event Registry para processamento assíncrono.
Bom para desacoplar efeitos colaterais pesados do fluxo síncrono.
g_form.getValue(campo) / setValue(campo, valor)
Client (g_form)
Lê ou define o valor de um campo no formulário, no cliente.
setValue() em campo de referência: passe também o display value para evitar uma chamada extra ao servidor.
g_form.setMandatory(campo, true) / setReadOnly / setVisible
Client (g_form)
Controla obrigatoriedade, somente-leitura e visibilidade de um campo via Client Script.
Se o comportamento pode ser declarativo, prefira UI Policy a Client Script — é mais fácil de manter.
g_form.addErrorMessage(msg) / addInfoMessage(msg)
Client (g_form)
Mostra uma mensagem no topo do formulário.
g_form.getReference(campo, callback)
Client (g_form)
Busca o registro referenciado por um campo. Sempre passe o callback para não travar a UI.
getReference() sem callback é síncrono e congela o navegador — sempre use o callback.
g_user.hasRole(role) / g_user.userID
Client (g_user)
Dados do usuário logado disponíveis no cliente sem ida ao servidor.
g_user.hasRole() no cliente não enxerga roles herdadas de grupo em todos os casos — para decisão de segurança, valide no servidor.
g_scratchpad.campo
Client (g_form)
Dado enviado do servidor para o cliente por uma Display Business Rule, disponível no onLoad sem GlideAjax.
É o jeito mais barato de pré-carregar dado num form — sem round-trip extra.
Nenhum método encontrado.
O ServiceNow formata datas com os tokens do SimpleDateFormat do Java (em system properties como glide.sys.date_format, no getDisplayValue() e em scripts). Digite um padrão e veja como a data e hora de agora ficariam — pré-visualização no seu navegador, nada é enviado.
| token | significado | exemplo |
|---|---|---|
yyyy / yy | ano (4 ou 2 dígitos) | 2026 / 26 |
MM / MMM / MMMM | mês (número / abreviado / por extenso) | 07 / jul / julho |
dd / d | dia do mês (com/sem zero à esquerda) | 05 / 5 |
EEE / EEEE | dia da semana (abreviado / por extenso) | dom / domingo |
HH / hh | hora (24h / 12h, com zero) | 14 / 02 |
mm / ss | minuto / segundo | 08 / 09 |
a | AM/PM | PM |
'texto' | texto literal (entre aspas simples) | de |
Referência ilustrativa em pt-BR: a instância usa o locale do sistema/usuário para os nomes de mês e dia. Tokens como z (fuso) dependem do servidor e não aparecem nesta prévia.