Com o crescimento da adoção da plataforma ServiceNow em empresas de diferentes segmentos e portes, cresce também a responsabilidade dos desenvolvedores e administradores técnicos em construir soluções escaláveis, eficientes e sustentáveis. Muito além de fazer “funcionar”, é essencial seguir boas práticas que garantam qualidade, performance e facilidade de manutenção a longo prazo.
Neste artigo, reunimos as principais diretrizes que devem orientar o desenvolvimento na plataforma, com foco em práticas recomendadas e em erros comuns que devem ser evitados por quem atua com ServiceNow de forma profissional.
Práticas que você deve seguir
1. Modularize seu código com Script Includes
Centralizar lógica de negócio em Script Includes reutilizáveis facilita manutenção, evita duplicidade de código e promove clareza. Sempre que a mesma regra ou ação for usada em mais de um lugar, crie um método específico.
Exemplo correto:
var MyUtils = Class.create();
MyUtils.prototype = {
getPriorityDescription: function(priority) {
if (priority == 1) return "Alta";
if (priority == 2) return "Média";
return "Baixa";
},
type: 'MyUtils'
};
Evite replicar essas condições em múltiplos scripts.
2. Use GlideRecord e GlideAggregate de forma consciente
Evite GlideRecord
desnecessários em loops ou consultas não otimizadas. Use addQuery()
, setLimit()
, addActiveQuery()
e evite trazer colunas que não serão utilizadas.
Quando precisar contar registros ou extrair estatísticas, prefira GlideAggregate
.
3. Utilize UI Policies sempre que possível
Quando a lógica envolver visibilidade, obrigatoriedade ou bloqueio de campos, use UI Policies ao invés de Client Scripts. Elas são mais performáticas, fáceis de manter e não exigem código.
4. Teste em ambientes separados
Sempre desenvolva e teste em ambientes de desenvolvimento ou homologação, nunca diretamente em produção. Utilize o Application Picker, revisões em Branches (se Scoped), e o Update Set de forma controlada.
5. Documente seu código e scripts
Comentar código não é opcional. Explique a lógica de trechos importantes, indique onde scripts estão sendo chamados e use a descrição dos registros (UI Actions, Client Scripts, Script Includes) para informar o objetivo daquela configuração.
6. Controle de acesso com ACLs e roles bem definidas
Evite lógica de permissão em scripts. Use Access Control Rules (ACLs) para limitar leitura, escrita e criação de registros com base em funções. Combine com gs.hasRole()
apenas quando realmente necessário.
7. Pense no usuário final
Antes de desenvolver uma solução, pense na experiência do usuário final. Campos desnecessários, formulários desorganizados, fluxos confusos e ausência de mensagens de erro claras podem impactar mais do que problemas técnicos.
Práticas que você deve evitar
1. Evitar lógica de negócio em Client Scripts
Client Scripts devem ser usados apenas para lógica de apresentação ou interação no front-end. Qualquer validação importante ou cálculo sensível deve ocorrer no servidor (via Business Rule ou Script Include).
2. Não deixar scripts longos e sem modularização
Business Rules ou Script Includes com centenas de linhas dificultam manutenção. Sempre que possível, separe funções auxiliares e divida a lógica por responsabilidade.
3. Evitar múltiplos scripts para o mesmo evento/campo
Ter três Client Scripts onChange
para o mesmo campo, ou várias Business Rules before insert
com lógicas sobrepostas, gera confusão e risco de comportamento inesperado. Consolidar lógicas e nomear claramente os scripts é essencial.
4. Não usar GlideRecord diretamente em Script Includes Client Callable
Evite expor consultas sensíveis ou dados em chamadas client-side via GlideAjax. Utilize abstrações, validações e restrições para evitar vazamento de dados ou acesso indevido.
5. Não ignorar o padrão de nomenclatura
Padronizar nomes de tabelas, campos, scripts e aplicações facilita entendimento, evita conflitos e torna o projeto mais acessível a outros desenvolvedores. Use prefixos coerentes (ex: x_app_
), nomes autoexplicativos e separados por underscore.
6. Evitar hardcodes e valores fixos
Evite valores fixos no código, como sys_ids, nomes de grupos ou usuários. Prefira buscar por variáveis de sistema, propriedades ou fazer queries com base em critérios dinâmicos. Isso garante maior portabilidade e manutenção do código.
7. Não confiar apenas em validações de formulário
Validações importantes devem estar no backend (Business Rule ou Flow), pois Client Scripts podem ser desativados ou burlados por usuários avançados.
Conclusão
Boas práticas em ServiceNow não são apenas recomendações técnicas: são instrumentos de qualidade, segurança e previsibilidade. Em ambientes corporativos, onde a plataforma é crítica para a operação de TI, RH, atendimento ao cliente e outras áreas, seguir essas diretrizes é o que diferencia uma entrega funcional de uma entrega profissional.
Desenvolver com responsabilidade, clareza e foco em manutenção é o caminho para soluções sustentáveis, confiáveis e valorizadas pelo negócio.
No responses yet