Script Includes são trechos de código reutilizáveis escritos em JavaScript que rodam no lado do servidor no ServiceNow. Eles são utilizados para encapsular lógicas que podem ser chamadas por outros scripts dentro da plataforma. Representam uma forma eficiente de manter o código organizado, reutilizável e mais fácil de manter.
Por que são importantes?
- Promovem reutilização de código
- Facilitam a manutenção
- Melhoram a organização da lógica de negócio
- Tornam o sistema mais performático e seguro
Capítulo 2: Quando e Como Utilizar Script Includes
Tipos de Script Includes:
- Client Callable: Permitem que sejam invocados a partir de scripts do lado do cliente utilizando GlideAjax.
- Global: Disponíveis para todo o escopo da instância, requerem atenção com performance.
- Scoped: Associados a um escopo de aplicação, promovem encapsulamento e segurança.
Estrutura Básica:
var MeuScriptInclude = Class.create();
MeuScriptInclude.prototype = {
initialize: function() {},
minhaFuncao: function(param) {
return 'Resultado: ' + param;
},
type: 'MeuScriptInclude'
};
Exemplo com GlideAjax (Client Callable):
var MeuScriptInclude = Class.create();
MeuScriptInclude.prototype = Object.extendsObject(AbstractAjaxProcessor, {
saudarUsuario: function() {
var nome = this.getParameter('sysparm_nome');
return 'Olá, ' + nome + '!';
},
type: 'MeuScriptInclude'
});
No Client Script:
var ga = new GlideAjax('MeuScriptInclude');
ga.addParam('sysparm_name', 'saudarUsuario');
ga.addParam('sysparm_nome', 'João');
ga.getXMLAnswer(function(response) {
alert(response);
});
Capítulo 3: Melhores Práticas
- Nomeie suas classes com clareza
- Evite hardcoded values
- Use
this
com cautela - Documente com JSDoc ou comentários padronizados
- Divida funcionalidades em métodos pequenos e coesos
- Ao usar GlideAjax, sempre valide parâmetros e evite retornar informações sensíveis
Capítulo 4: Exemplos Práticos
Em um Client Script (usando GlideAjax):
var ga = new GlideAjax('ConversorTemperatura');
ga.addParam('sysparm_name', 'celsiusParaFahrenheit');
ga.addParam('sysparm_valor', '25');
ga.getXMLAnswer(function(response) {
console.log('Resultado: ' + response);
});
Script Include:
var ConversorTemperatura = Class.create();
ConversorTemperatura.prototype = Object.extendsObject(AbstractAjaxProcessor, {
celsiusParaFahrenheit: function() {
var c = parseFloat(this.getParameter('sysparm_valor'));
return (c * 9/5 + 32).toFixed(2);
},
type: 'ConversorTemperatura'
});
Em um Flow (Script Action):
var utils = new MeuScriptInclude();
outputs.resultado = utils.calcularResultado(inputs.valor);
Capítulo 5: Casos de Uso Comuns e Avançados
Comuns:
- Validações complexas
- Cálculo de valores
- Formatação de mensagens
- Comunicação com scripts do cliente via GlideAjax
Avançados:
- Integrações com APIs
- Manipulação de grandes volumes de dados
- Lógica reutilizável entre aplicações
Capítulo 6: Erros Comuns e Como Evitá-los
- Esquecer do
type: 'NomeClasse'
- Não herdar de
AbstractAjaxProcessor
em Script Includes Client Callable - Tentar acessar dados do lado cliente diretamente no servidor
- Não validar parâmetros recebidos no servidor
Capítulo 7: Dicas de Desempenho e Segurança
- Use caches para queries repetitivas
- Prefira scoped includes sempre que possível
- Não exponha lógica sensível em includes Client Callable
- Valide sempre os parâmetros recebidos por GlideAjax
Capítulo 8: Guia para Iniciantes
Passo a Passo:
- Acesse Studio > Create Application File
- Selecione Script Include
- Dê um nome significativo (ex:
CalculadoraFinanceira
) - Marque Client Callable se for usar com GlideAjax
- Escreva o método dentro do protótipo da classe, herdando de
AbstractAjaxProcessor
- Crie um Client Script para testá-lo
Capítulo 9: Exercícios
Exercício 1:
Crie um Script Include chamado ConversorTemperatura
com dois métodos:
celsiusParaFahrenheit(celsius)
fahrenheitParaCelsius(fahr)
Use GlideAjax no Client Script para chamar cada um.
Exercício 2:
Utilize um Script Include para buscar o nome completo de um usuário baseado no sys_id
, usando GlideRecord
e GlideAjax.
Exercício 3:
Implemente um Script Include Client Callable que receba um nome e retorne “Olá, [nome]!” via GlideAjax.
Considerações Finais
Dominar Script Includes, especialmente com GlideAjax, é essencial para qualquer desenvolvedor que deseje criar soluções robustas e reutilizáveis na plataforma ServiceNow. Com organização, boas práticas e experiência, Script Includes se tornam uma das ferramentas mais poderosas à disposição do desenvolvedor.
No responses yet