Inclusões de script

  • Versão de lançamento: Zurich
  • Atualizado 31 de jul. de 2025
  • 10 min. de leitura
  • Inclusões de script são usadas para armazenar JavaScript executado no servidor.

    Crie inclusões de script para armazenar funções e classes JavaScript para uso por scripts de servidor. Cada inclusão de script define uma classe de objeto ou uma função.

    Considere usar inclusões de script em vez de regras de negócios globais porque as inclusões de script são carregadas somente mediante solicitação. Para obter mais informações, consulte Configurações de privacidade em inclusões de script habilitadas para Glide AJAX e Inclusões de script da Descoberta.

    Para obter exemplos adicionais de scripts, consulte Scripts úteis.

    Formulário de inclusão de script

    As inclusões de script têm um nome, uma descrição e um script. Eles também especificam se estão ativos ou não e se podem ser chamados a partir de um client script. Exiba a inclusão de script existente ou crie uma nova inclusão usando o formulário Inclusão de script.

    Para acessar inclusões de script, navegue até Tudo > Definições do Sistema > Inclusões de script.

    Tabela 1. Formulário de inclusão de script
    Campo Descrição
    Nome O nome da inclusão de script. Se você estiver definindo uma classe, ela deverá corresponder ao nome da classe, do protótipo e do tipo. Se você estiver usando uma inclusão de script sem classe (sob demanda), o nome deverá corresponder ao nome da função.
    Nome da API O nome interno da Inclusão de script. Usado para chamar a Inclusão de script de aplicações fora do escopo.
    Glide AJAX habilitado (ou Cliente chamável) A inclusão de script está disponível para scripts de cliente, filtros de lista/relatório, qualificadores de referência ou, se especificado como parte da URL. As inclusões de script habilitadas para Glide AJAX são invocadas de GlideAjax E exigem que os usuários atendam a uma ACL associada à inclusão de script. Quando selecionado, o Controles de acesso O link relacionado está disponível. Para obter mais informações, consulte Configurações de privacidade em inclusões de script habilitadas para Glide AJAX.
    Celular chamável A inclusão de script está disponível para scripts de cliente chamados de dispositivos móveis.
    Área restrita habilitada A inclusão de script está disponível para scripts invocados na área restrita de script, como uma condição de consulta.
    Importante:
    As inclusões de script só devem ser disponibilizadas para a área restrita de script se necessário.

    Para obter informações sobre a área restrita de script, consulte Sandbox de script.

    Aplicação A aplicação em que esta inclusão de script reside.
    Acessível de
    Define quais aplicações podem acessar este script incluem:
    Todos os escopos de aplicação
    Pode ser acessado de qualquer escopo da aplicação.
    Somente este escopo da aplicação
    Só pode ser acessado a partir do escopo da aplicação atual.
    Ativo Habilita a inclusão de script quando selecionado. Desmarque o campo ativo para desabilitar a inclusão de script.
    Descrição Fornece conteúdo descritivo sobre a inclusão de script.
    Script Define o script do lado do servidor a ser executado quando chamado de outros scripts.

    O script deve definir uma única classe JavaScript ou uma função global. O nome da classe ou função deve corresponder a. Nome campo.

    Pacote O pacote que contém esta inclusão de script.
    Criada por O usuário que criou esta inclusão de script.
    Atualização de O usuário que atualizou mais recentemente esta inclusão de script.
    Política de proteção
    Define o nível de proteção para a inclusão de script:
    Nenhum(a)
    Permite que qualquer pessoa leia e edite esta inclusão de script baixado ou instalado.
    Somente leitura
    Permite que qualquer pessoa leia valores desta inclusão de script baixado ou instalado. Ninguém pode mudar os valores de script na instância em que eles baixam ou instalam a inclusão de script.
    Protegido
    Fornece proteção de propriedade intelectual para desenvolvedores de aplicações. Os clientes que baixam a inclusão de script não podem ver o conteúdo do campo de script. O script é criptografado na memória para impedir que usuários não autorizados o vejam em texto sem formatação.
    Listas relacionadas na exibição de formulário:
    Versões Mostra todas as versões da inclusão de script. Use esta lista para comparar versões ou reverter para uma versão anterior. Consulte Versões .
    Controles de acesso Fica disponível quando Glide AJAX habilitado está selecionado e está oculto das inclusões de script padrão. Use para proteger uma inclusão de script contra uso não autorizado quando o acesso público não é concedido.

    Use inclusões de script

    Inclusões de script são encontradas em Definição do sistema ou IU do sistema. Você pode chamar inclusões de script existentes a partir de um script ou criar uma nova inclusão de script.

    Para criar uma inclusão de script totalmente nova, você pode seguir o formato de qualquer uma das inclusões de script existentes. Neste exemplo, o nome da inclusão de script é NoIncluir e há uma única função chamada MyFunction . É importante que o nome da inclusão de script corresponda ao nome da classe, do protótipo e do tipo. Quando você cria uma nova inclusão de script e dá um nome a ela, o sistema fornece um snippet de código com a classe e o protótipo configurados corretamente.

    var NewInclude =Class.create();
     
    NewInclude.prototype={
      initialize :function(){},
     
      myFunction :function(){<Put function code here>},
     
      type :'NewInclude'};

    Em seguida, você pode usar MyFunction linha como esta:

    var foo =new NewInclude();
    foo.myFunction();

    Script habilitado para Glide AJAX .

    Inclusões de script habilitadas para o Glide AJAX tornam a inclusão de script disponível para scripts de cliente, filtros de lista/relatório, qualificadores de referência ou, se especificado como parte do URL.

    Antes de Iniciar

    Função necessária: administrador

    Procedimento

    1. Navegar até Definição do Sistema > Inclusões de script.
    2. Selecione Novo ou selecione uma inclusão de script existente para exibição ou edição.
      Consulte Use inclusões de script para obter informações adicionais sobre como escrever inclusões de script.
    3. Preencha o formulário e selecione Glide AJAX habilitado opção.
      Um seletor de função é exibido para selecionar uma função de usuário e criar automaticamente uma entrada de controle de acesso. Selecione uma função de usuário e clique em OK .Selecione uma janela de função de usuário.
      Nota:
      Para desabilitar a janela do seletor de função, defina glide.script.ccsi.enable_acl_create_ux . falso .

      Um registro de inclusão de script com um controle de acesso baseado em função é criado. O Link relacionado ao controle de acesso se torna disponível com a seleção do Glide AJAX habilitado caixa de seleção.

    Configurações de privacidade em inclusões de script habilitadas para Glide AJAX

    As configurações de privacidade para inclusões de script habilitado para Glide AJAX determinam quem pode acessar uma inclusão de script habilitado para Glide AJAX.

    Privacidade privada

    A configuração de privacidade privada significa que os convidados que acessam páginas públicas não podem acessar a inclusão de script habilitada para Glide AJAX. Um script privado não pode ser executado por um usuário não conectado.

    Privacidade pública

    Uma configuração de privacidade pública significa que o script do cliente pode ser executado por usuários não conectados que criam uma solicitação HTTP apropriada. Isso pode criar um problema de segurança se o script do cliente fornecer informações confidenciais.

    As inclusões de script a seguir permanecem públicas por padrão porque Tornar páginas de IU públicas ou privadas precisa acessá-los:
    • GlideSystemAjax
    • SysMessageAjax
    • KnowledgeMessagingAjax
    • KnowledgeAjax
    • PasswordResetAjax

    Defina a privacidade em todas as inclusões de script habilitadas para Glide AJAX

    Altere a configuração de privacidade em todas as inclusões de script habilitadas para Glide AJAX.

    Para fornecer mais controle sobre todas as inclusões de script habilitadas para Glide AJAX, os administradores podem adicionar o. glide.script.ccsi.ispublic propriedade. Esta propriedade muda a visibilidade das inclusões de script habilitadas para Glide AJAX, tornando-as públicas ou privadas. Configure a propriedade da seguinte forma:

    Tabela 2. Configurar propriedade
    Título Propriedade
    Nome glide.script.ccsi.ispublic
    Tipo verdadeiro|falso
    Valor falso
    Nota:
    Para aprender mais sobre essa propriedade, consulte Require authentication by default for client-callable script includes [Updated in Security Center 1.3] nas Configurações de proteção de segurança de instância.

    Mude a privacidade em uma única inclusão de script habilitada para Glide AJAX

    Altere a configuração de privacidade para uma única inclusão de script habilitada para Glide AJAX adicionando o. IsPublic() função.

    A configuração isPublic () tem precedência sobre a propriedade glide.script.ccsi.ispublic. Por exemplo, se a propriedade estiver definida como falso , Tornando todas as inclusões de script habilitadas para Glide AJAX privadas e um conjunto de scripts IsPublic() . verdadeiro , o script é público.

    Para mudar a privacidade de uma única inclusão de script habilitada para Glide AJAX, adicione o seguinte método à inclusão de script:

    isPublic:function(){return[true/false];},
    Tornar o script do cliente NewInclude privado.
    var NewInclude =Class.create();
     
    NewInclude.prototype={
       initialize:function(){},
     
       myFunction:function(){//Put function code here},
       isPublic:function(){return false;},
     
       type:'NewInclude'};

    Inclusões de script habilitadas para Glide AJAX

    P Rotecte suas inclusões de script habilitadas para Glide AJAX contra uso não autorizado. Para todos os registros criados em uma aplicação do cliente, são exibidas recomendações que podem ajudar a reduzir o risco à segurança .

    Ao criar uma inclusão de script habilitada para Glide AJAX, o sistema exibirá as seguintes recomendações de segurança, se elas ainda não tiverem sido configuradas:

    • Adicione ou defina um Controle de acesso, a menos que a inclusão de script tenha acesso público.
    • Usar GlideRecordSecure em vez de GlideRecord API para melhor segurança, se o script consultar o banco de dados.

      Recomendações de segurança habilitadas para Glide AJAX.

      Nota:
      Para desabilitar as mensagens de recomendação de segurança, defina a propriedade glide.script.ccsi.customer_scoped.security_msgs_enabled . falso na tabela sys_properties. O valor padrão é definido como verdadeiro .

    Consulte Configurações de proteção de segurança da instância para obter informações adicionais sobre conformidade de segurança.

    Inclusões de script da Descoberta

    Descoberta As inclusões de script definem classes JavaScript que você pode usar para realizar Descoberta tarefas.

    Nota:
    Usuários com a função discovery_admin podem gravar inclusões de script. Siga as práticas recomendadas para scripts do lado do servidor e do lado do cliente para evitar problemas de segurança. artigo de conhecimento KB0550828 para obter mais informações.

    Usando GlideRecordUtil para trabalhar com GlideRecords

    GlideRecordUtil É uma classe de utilitário que fornece métodos que são úteis para trabalhar com GlideRecords durante Descoberta. Consulte GlideRecordUtil para obter descrições dos métodos disponíveis.

    Obtendo uma instância GlideRecord

    Para obter um GlideRecord para um determinado item de configuração e da classe e tabela corretas, use GetCIGR(sys_id) método. Por exemplo, o código a seguir obtém o GlideRecord de um IC com o sys_id de 2dfd7c8437201000deeabfc8bcbe5d56:
    var now_GR = new GlideRecordUtil().getCIGR("2dfd7c8437201000deeabfc8bcbe5d56");
    Para recuperar qualquer tabela hierárquica sem saber seu tipo de classe, use GetGR(base_table, sys_id) método. Por exemplo, para obter um GlideRecord para um IC de classe de computador, você pode ter que distinguir se é uma classe de computador, Windows ou Linux classe de servidor. Usar este método garante um GlideRecord com a classe correta. Classes diferentes têm atributos diferentes. Neste caso de uso, um Windows o servidor tem atributos diferentes de a. Linux servidor. O exemplo a seguir mostra como obter um GlideRecord na classe correta com seus atributos.
    var now_GR = new GlideRecordUtil().getGR( "cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");

    Obtendo todos os campos em um GlideRecord

    . GetFields (now_GR) O método retorna um objeto JavaScript, como um hashmap, de todos os campos ou atributos que existem em um determinado GlideRecord.
    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");
    var fields = new GlideRecordUtil().getFields(now_GR);
    gs.log(fields.join(" ")); // List all the fields that are in a computer CI

    Preenchendo campos de objeto GlideRecord

    . PopulateFromGR(hashmap, gr, ignore) O método permite que você pegue um objeto GlideRecord e preencha seus campos e valores em um objeto JavaScript. O terceiro argumento ( ignorar ) É um objeto JavaScript opcional que permite excluir determinados campos. Por exemplo, você pode não se importar sys_created_byou sys_updated_byCampos em um GlideRecord.
    var objectToPopulate = { }; 
    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56"); 
    var ignore = {"sys_created_on": true, "sys_updated_by": true}; 
    new GlideRecordUtil().populateFromGR(objectToPopulate, now_GR, ignore); 
    // Now the objectToPopulate contains field/value pairs from the computer GlideRecord
    . MergeToGR(hashmap, gr, ignore) O método permite que você preencha um GlideRecord com um objeto emparelhado com campo/valor. O argumento ignorar impede que os campos especificados sejam atualizados. O exemplo de código a seguir atualiza um registro de computador namee. os, mas não atualiza o. sys_created_bycampo:
    var now_GR = new GlideRecordUtil().getGR("cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56"); 
    var obj = {"name": "xyz", "os": "windows 2000", "sys_created_by", "aleck.lin"};
    var ignore = {"sys_created_by": true}; 
    new GlideRecordUtil().mergeToGR(obj, gr, ignore);
    gr.update();

    Obtendo hierarquias de tabela

    . GetTables (tabela) o método retorna uma lista de hierarquias de tabela, conforme mostrado no exemplo a seguir:
    var tables = new GlideRecordUtil().getTables("cmdb_ci_linux_server");
    gs.log(tables.join(",")); 
    // The result would be "cmdb_ci, cmdb_ci_computer, cmdb_ci_server, cmdb_ci_linux_server".

    Usando DiscoveryException e AutomationException

    Ao escrever Descoberta E scripts relacionados a sensores, convém usar DiscoveryException ou AutomationException para indicar que uma exceção veio de Descoberta.

    . DiscoveryException extensões de inclusão de script AutomationException , que estende o. GenericException classe. O exemplo a seguir usa DiscoveryException para lançar uma exceção:
    function foo() { 
      if(//condition matches) throw new DiscoveryException("The message", "The cause"); }
    O primeiro argumento usa a mensagem da exceção e o segundo argumento (opcional) usa a causa da exceção. Você também pode querer capturar a exceção e registrá-la em log, conforme mostrado no exemplo abaixo:
    try {
      foo(); 
    } 
    catch(e) { 
       if(e instanceof DiscoveryException)
         gs.log("A DiscoveryException occurred. It is " + e. getMessage() + " caused by " + e.getCause()); }

    O exemplo acima também se aplica a AutomationException . DiscoveryException Normalmente é usado para fornecer processamento de exceção especificamente para a Descoberta, enquanto AutomationException É usado para processamento de exceções que se aplica à Orquestração e Descoberta.