Inclusões de script
As inclusões de script são usadas para armazenar o 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 o uso de 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 Inclusões de script habilitado para Glide AJAX e Inclusões de script de descoberta.
Para obter exemplos adicionais de scripts, consulte Scripts úteis.
Script de inclusão de formulário
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 script de cliente. Ou crie uma inclusão de script existente ou uma nova inclusão usando o formulário Inclusão de script.
Para acessar inclusões de script, navegue até .
| Campo | Descrição |
|---|---|
| Nome | O nome da inclusão de script. Se você estiver definindo uma classe, ela deve 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 deve 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 Inclusões de script habilitado para Glide AJAX. |
| Dispositivo móvel solicitá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 . |
| Aplicação | A aplicação em que esta inclusão de script reside. |
| Acessível de | As aplicações que podem acessar este script incluem:
|
| 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 este script inclui. |
| Criado(a) por | O usuário que criou este script inclui. |
| Atualizado por | O usuário que atualizou este script mais recentemente inclui. |
| Política de proteção | Define o nível de proteção para o script Incluir:
|
| 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 do script inclua o 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 o. MyFunction linha como esta:
var foo =new NewInclude();
foo.myFunction();Script habilitado para Glide AJAX .
As inclusões de script habilitadas para 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 da URL.
Antes de Iniciar
Função necessária: administrador
Procedimento
Inclusões de script habilitado 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.
Configuração de 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.
- GlideSystemAjax
- SysMessageAjax
- KnowledgeMessagingAjax
- KnowledgeAjax
- ResetAjax
Defina a privacidade em todas as inclusões de script habilitado para Glide AJAX
Altere a configuração de privacidade em todas as inclusões de script Glide AJAX habilitadas.
Para fornecer mais controle sobre todas as inclusões de script habilitado para Glide AJAX, os administradores podem adicionar o. glide.script.ccsi.ispublic propriedade. Esta propriedade muda a visibilidade das inclusões de script habilitado para Glide AJAX, tornando-as públicas ou privadas. Configure a propriedade da seguinte forma:
| Título | Propriedade |
|---|---|
| Nome | glide.script.ccsi.ispublic |
| Tipo | verdadeiro|falso |
| Valor | falso |
Mude a privacidade em uma única inclusão de script habilitado para Glide AJAX
Mude a configuração de privacidade para uma inclusão de script habilitado 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() para verdadeiro , o script é público.
Para mudar a privacidade de uma inclusão de script habilitado para Glide AJAX, adicione o seguinte método à inclusão de script:
isPublic:function(){return[true/false];},var NewInclude =Class.create();
NewInclude.prototype={
initialize:function(){},
myFunction:function(){//Put function code here},
isPublic:function(){return false;},
type:'NewInclude'};
Inclusões de script habilitado para Glide AJAX
P Rotect seu script habilitado para Glide AJAX inclui 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 de segurança .
Ao criar uma inclusão de script habilitado para Glide AJAX, o sistema exibe as seguintes recomendações de segurança se 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.
- Uso GlideRecordSecure em vez de GlideRecord API para melhor segurança, se o script consultar o banco de dados. Nota:Para desabilitar as mensagens de recomendação de segurança, defina a propriedade glide.script.ccsi.customer_scoped.security_msgs_enabled para 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 de descoberta
Descoberta As inclusões de script definem classes JavaScript que você pode usar para realizar Descoberta tarefas.
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
var now_GR = new GlideRecordUtil().getCIGR("2dfd7c8437201000deeabfc8bcbe5d56");var now_GR = new GlideRecordUtil().getGR( "cmdb_ci_computer", "2dfd7c8437201000deeabfc8bcbe5d56");Obtendo todos os campos em um 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 CIPreenchendo campos de objeto 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 GlideRecordvar 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
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.
function foo() {
if(//condition matches) throw new DiscoveryException("The message", "The cause"); }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 . Descoberta É 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.