cheatsheet

referência rápida de APIs Glide

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.

categoria:

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.

→ artigo relacionado

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.

→ artigo relacionado

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.

→ artigo relacionado

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.

→ artigo relacionado

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.

→ artigo relacionado

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.

→ artigo relacionado

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().

→ artigo relacionado

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.

→ artigo relacionado

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.

→ artigo relacionado

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.

→ artigo relacionado

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.

→ artigo relacionado

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.

→ artigo relacionado

conversor de formato de data

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.

exemplos:
tabela de tokens
tokensignificadoexemplo
yyyy / yyano (4 ou 2 dígitos)2026 / 26
MM / MMM / MMMMmês (número / abreviado / por extenso)07 / jul / julho
dd / ddia do mês (com/sem zero à esquerda)05 / 5
EEE / EEEEdia da semana (abreviado / por extenso)dom / domingo
HH / hhhora (24h / 12h, com zero)14 / 02
mm / ssminuto / segundo08 / 09
aAM/PMPM
'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.