Script Includes: Como usar?

code, coding, computer, data, developing, development, ethernet, html, programmer, programming, screen, software, technology, work, code, code, coding, coding, coding, coding, coding, computer, computer, computer, computer, data, programming, programming, programming, software, software, technology, technology, technology, technology

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):

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:

  1. Acesse Studio > Create Application File
  2. Selecione Script Include
  3. Dê um nome significativo (ex: CalculadoraFinanceira)
  4. Marque Client Callable se for usar com GlideAjax
  5. Escreva o método dentro do protótipo da classe, herdando de AbstractAjaxProcessor
  6. 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

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *