GlideRecord - Global

  • Versão de lançamento: Washingtondc
  • Atualizado 1 de fev. de 2024
  • 62 min. de leitura
  • A API GlideRecord é usada para operações de banco de dados.

    A API GlideRecord é o principal meio de interface com o banco de dados no código do lado do servidor. Um GlideRecord é um objeto que contém registros de uma única tabela. Use a API para criar uma instância de um objeto GlideRecord e adicionar parâmetros de consulta, filtros, limites e ordenação.

    Consulte o artigo GlideRecord para obter detalhes sobre como criar e executar consultas.

    Para obter informações sobre GlideRecordSecure, que é uma classe herdada de GlideRecord que executa as mesmas funções que GlideRecorde também impõe ACLs, consulte as APIs GlideServer.

    Sempre teste as consultas em uma instância de produto em fase de desenvolvimento antes de implantá-las em uma instância de produção. Uma consulta codificada construída incorretamente, como a inclusão de um nome de campo inválido, produz uma consulta inválida. Quando a consulta inválida é executada, a parte inválida da condição de consulta é descartada e os resultados são baseados na parte válida da consulta, que pode retornar todos os registros da tabela. Usar um método insert(), update(), deleteRecord( )ou deleteMultiple() em resultados de consulta incorretos pode resultar em perda de dados.

    Você pode definir a propriedade do sistema glide.invalid_query.returns_no_rows como verdadeiro para que as consultas com consultas codificadas inválidas não retornem registros.

    Recuperar valores de registros

    Na maioria dos casos, não use a referência com pontos para obter valores de um registro. A referência com pontos recupera o objeto inteiro em vez do valor do campo. Recuperar o objeto usa mais armazenamento e pode causar resultados indesejáveis quando usado em matrizes ou em Portal de serviços.

    Em vez de recuperar o objeto inteiro, você pode usar um dos seguintes métodos para copiar os valores de campo:

    Se for necessário percorrer um objeto GlideElement com pontos, use o método toString() para recuperar valores. Por exemplo, talvez você precise do sys_id do gerente do solicitante atual para definir outro campo de referência. O exemplo a seguir mostra como obter o valor da cadeia de caracteres em vez do objeto inteiro:
    var mgr = current.caller_id.manager.toString();

    GlideRecord – addActiveQuery()

    Adiciona um filtro para retornar registros ativos.

    Tabela 1. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 2. Retorna
    Tipo Descrição
    GlideQueryCondition Filtre para retornar registros ativos.
    var inc = new GlideRecord('incident');
    inc.addActiveQuery();
    inc.query();

    Equivalente com escopo

    Para usar o método addActiveQuery() em uma aplicação com escopo, use o método com escopo correspondente: addActiveQuery().

    GlideRecord - addDomainQuery(objeto glideRecord)

    Altera o domínio usado para a consulta do domínio do usuário para o domínio do GlideRecord fornecido.

    Sempre teste as consultas em uma instância de produto em fase de desenvolvimento antes de implantá-las em uma instância de produção. Uma consulta codificada construída incorretamente, como a inclusão de um nome de campo inválido, produz uma consulta inválida. Quando a consulta inválida é executada, a parte inválida da condição de consulta é descartada e os resultados são baseados na parte válida da consulta, que pode retornar todos os registros da tabela. Usar um método insert(), update(), deleteRecord( )ou deleteMultiple() em resultados de consulta incorretos pode resultar em perda de dados.

    Você pode definir a propriedade do sistema glide.invalid_query.returns_no_rows como verdadeiro para que as consultas com consultas codificadas inválidas não retornem registros.

    Esta função requer o plug-in Domain Support - Domain Extensions Installer (com.glide.domain.msp_extensions.installer).

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    glideRecord Objeto GlideRecord do qual o domínio será obtido.
    Tabela 4. Retorna
    Tipo Descrição
    vazio
    //This example requires the Domain plugin be active, the Group table is the specified 
    //Domain table, and the ITIL user is in the Database Atlanta domain
    //From any domain (using queryNoDomain()) look up the incidents that an ITIL user can only see 
    //who is in the Database Atlanta domain, should expect all incidents with the global or the
    //Database Atlanta domain specified.
    var domain = new GlideRecord('sys_user');
    domain.addQuery('user_name', 'itil');
    domain.queryNoDomain();
    if (domain.next()) {
        var domainQuery = new GlideRecord('incident');
        domainQuery.addQuery('active', true);
        domainQuery.addDomainQuery(domain);
        domainQuery.query();
        gs.print('Number of Incidents for ITIL user: ' + domainQuery.getRowCount());
        while (domainQuery.next())
            gs.print(domainQuery.number);
    }

    Equivalente com escopo

    Este método não está disponível em aplicações com escopo.

    GlideRecord - addEncodedQuery(cadeia de caracteres consulta)

    Adiciona uma consulta codificada a outras consultas que podem ter sido definidas.

    Sempre teste as consultas em uma instância de produto em fase de desenvolvimento antes de implantá-las em uma instância de produção. Uma consulta codificada construída incorretamente, como a inclusão de um nome de campo inválido, produz uma consulta inválida. Quando a consulta inválida é executada, a parte inválida da condição de consulta é descartada e os resultados são baseados na parte válida da consulta, que pode retornar todos os registros da tabela. Usar um método insert(), update(), deleteRecord( )ou deleteMultiple() em resultados de consulta incorretos pode resultar em perda de dados.

    Você pode definir a propriedade do sistema glide.invalid_query.returns_no_rows como verdadeiro para que as consultas com consultas codificadas inválidas não retornem registros.

    Tabela 5. Parâmetros
    Nome Tipo Descrição
    consulta Cadeia de caracteres Uma cadeia de caracteres de consulta codificada.
    Tabela 6. Retorna
    Tipo Descrição
    vazio
    var queryString = "priority=1^ORpriority=2";
     var now_GR = new GlideRecord('incident');
     
     now_GR.addEncodedQuery(queryString);
     now_GR.query();
     while (now_GR.next()) {
     gs.addInfoMessage(now_GR.number);
     }

    Equivalente com escopo

    Para usar o método addEncodedQuery() em uma aplicação com escopo, use o método com escopo correspondente: addEncodedQuery().

    GlideRecord - addExtraField(cadeia de caracteres dotWalkedField)

    Consulta um ou mais campos de referência com pontos de um formulário ou script em uma única solicitação.

    O método addExtraField() permite consultar campos de referência com pontos em uma única solicitação de banco de dados, em vez de executar várias consultas por elemento de referência com pontos em um formulário ou script (o que requer várias viagens de ida e volta ao banco de dados).

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    dotWalpedField Cadeia de caracteres O nome do campo de referência com pontos. Níveis de nomes de campo são separados por pontos (pontos). Por exemplo, insira o valor Empresa.Solicitante se quiser consultar o Empresa > Solicitante condição na tabela Incidente [incidente].

    O formato de dotWalkedField segue a ordem da esquerda para a direita dos campos em um formulário de referência com pontos ou script.

    Tabela 8. Retorna
    Tipo Descrição
    Nenhum
    Nota:
    O método addExtraField() não afeta os resultados de saída; a saída é sempre a mesma, independentemente de você usar este método em seu script.
    O exemplo a seguir mostra como consultar o campo de nome de contato de cmn_location (referenciado do campo de referência "local" em um campo cmdb_ci).
    Nota:
    O valor dotWalkedField neste exemplo, cmdb_ci.location.contact.name, é algo como "cmdb_cifields" => "cmn_locationfields" => "sys_userfields" na IU ServiceNow® ao selecionar campos em uma lista.
    var gliderecord = new GlideRecord("incident");
    gliderecord.addQuery("number", "INC0041457");
    gliderecord.addExtraField("cmdb_ci.location.contact.name");
    gliderecory.query();
    gliderecord.next();
    gs.print(gliderecord.cmdb_ci.location.contact.name);
    

    A saída é a mesma que gs.print(gr.cmdb_ci.location.contact.name) sem usar addExtraField(). O método addExtraField() otimiza a consulta dos campos de referência com pontos. Exemplo de saída:

    Abel Tuter

    GlideRecord - addFunction(função de objeto)

    Aplica um objeto GlideDBFunctionBuilder predefinido a um registro.

    Use a classe com escopo GlideDBFunctionBuilder para definir uma função. Depois que a função for definida, use o método addFunction(Object function) para aplicar a função a um registro.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    função Objeto Um objeto GlideDBFunctionBuilder ou GlideDBCaseStatementBuilder que define uma operação SQL.
    Tabela 10. Retorna
    Tipo Descrição
    vazio
    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();
    
    var now_GR = new GlideRecord('incident');
    now_GR.addFunction(myAddingFunction);
    now_GR.addQuery(myAddingFunction, '<', 5);
    now_GR.query();
    while(now_GR.next())
    gs.log(now_GR.getValue(myAddingFunction));
    

    Saída:

    *** Script: 1
    *** Script: 4
    *** Script: 3
    *** Script: 1
    *** Script: 1
    *** Script: 2
    *** Script: 1
    *** Script: 1

    GlideRecord – addInactiveQuery()

    Adiciona um filtro para retornar registros inativos. Registros inativos têm o sinalizador ativo definido como falso.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 12. Retorna
    Tipo Descrição
    GlideQueryCondition Registros em que o sinalizador ativo é falso.
    var inc = new GlideRecord('incident');
    inc.addInactiveQuery();
    inc.query();

    Equivalente com escopo

    Em aplicações com escopo, use o método com escopo addQuery("active","false").

    GlideRecord - addJoinQuery(cadeia de caracteres tabela)

    Adiciona um filtro para retornar registros com base em um relacionamento em uma tabela relacionada.

    Por exemplo, encontre todos os usuários que estão no grupo de banco de dados (usuários por meio da tabela sys_user_grmember). Outro exemplo seria encontrar todos os problemas que têm um incidente atribuído (problemas por meio do relacionamento incident.problem_id).

    Esta não é uma associação de banco de dados verdadeira; em vez disso, addJoinQuery() adiciona uma subconsulta. Portanto, embora o conjunto de resultados seja limitado com base na associação, os únicos campos aos quais você tem acesso são aqueles na tabela base (aqueles que estão na tabela com a qual o GlideRecord foi inicializado).

    Sempre teste as consultas em uma instância de produto em fase de desenvolvimento antes de implantá-las em uma instância de produção. Uma consulta codificada construída incorretamente, como a inclusão de um nome de campo inválido, produz uma consulta inválida. Quando a consulta inválida é executada, a parte inválida da condição de consulta é descartada e os resultados são baseados na parte válida da consulta, que pode retornar todos os registros da tabela. Usar um método insert(), update(), deleteRecord( )ou deleteMultiple() em resultados de consulta incorretos pode resultar em perda de dados.

    Você pode definir a propriedade do sistema glide.invalid_query.returns_no_rows como verdadeiro para que as consultas com consultas codificadas inválidas não retornem registros.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Nome da tabela
    Tabela 14. Retorna
    Tipo Descrição
    GlideQueryCondition Registros em que os relacionamentos correspondem.

    Encontre problemas que tenham um incidente anexado. Este exemplo retorna problemas que têm incidentes associados. No entanto, ele não extrairá valores dos incidentes que são retornados como parte da consulta.

    var prob = new GlideRecord('problem');
    prob.addJoinQuery('incident');
    prob.query();

    Encontre problemas active=false com incidentes associados.

    // Look for Problem records
    var now_GR = new GlideRecord('problem');
     
    // That have associated Incident records
    var grSQ = now_GR.addJoinQuery('incident');
     
    // Where the Problem records are "active=false"
    now_GR.addQuery('active', 'false');
     
    // And the Incident records are "active=true"
    grSQ.addCondition('active', 'true');
     
    // Query
    now_GR.query();
     
    // Iterate and print results
    while (now_GR.next()) {
        gs.print(now_GR.getValue('number'));
    }

    Equivalente com escopo

    Para usar o método addJoinQuery() em uma aplicação com escopo, use o método com escopo correspondente: addJoinQuery().

    GlideRecord - addJoinQuery(cadeia de caracteres tabela, cadeia de caracteres primaryField)

    Adiciona um filtro para retornar registros com base em um relacionamento em uma tabela relacionada.

    Por exemplo, encontre todos os usuários que estão no grupo de banco de dados (usuários por meio da tabela sys_user_grmember). Outro exemplo seria encontrar todos os problemas que têm um incidente atribuído (problemas por meio do relacionamento incident.problem_id).

    Esta não é uma associação de banco de dados verdadeira; em vez disso, addJoinQuery() adiciona uma subconsulta. Portanto, embora o conjunto de resultados seja limitado com base na associação, os únicos campos aos quais você tem acesso são aqueles na tabela base (aqueles que estão na tabela com a qual o GlideRecord foi inicializado).

    Sempre teste as consultas em uma instância de produto em fase de desenvolvimento antes de implantá-las em uma instância de produção. Uma consulta codificada construída incorretamente, como a inclusão de um nome de campo inválido, produz uma consulta inválida. Quando a consulta inválida é executada, a parte inválida da condição de consulta é descartada e os resultados são baseados na parte válida da consulta, que pode retornar todos os registros da tabela. Usar um método insert(), update(), deleteRecord( )ou deleteMultiple() em resultados de consulta incorretos pode resultar em perda de dados.

    Você pode definir a propriedade do sistema glide.invalid_query.returns_no_rows como verdadeiro para que as consultas com consultas codificadas inválidas não retornem registros.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Nome da tabela
    primaryField Cadeia de caracteres Se for diferente de sys_id, o campo primário.
    Tabela 16. Retorna
    Tipo Descrição
    GlideQueryCondition Registros em que os relacionamentos correspondem.

    Encontre problemas que tenham incidentes usando o campo open_by na chave de ingresso em vez do sys_id.

    var now_GR = new GlideRecord('problem'); 
    now_GR.addJoinQuery('incident', 'opened_by'); 
    now_GR.query();

    Equivalente com escopo

    Para usar o método addJoinQuery() em uma aplicação com escopo, use o método com escopo correspondente: addJoinQuery().

    GlideRecord - addJoinQuery(cadeia de caracteres "table", cadeia de caracteres primaryField, cadeia de caracteres "joinTableField")

    Adiciona um filtro para retornar registros com base em um relacionamento em uma tabela relacionada.

    Por exemplo, encontre todos os usuários que estão no grupo de banco de dados (usuários por meio da tabela sys_user_grmember). Outro exemplo seria encontrar todos os problemas que têm um incidente atribuído (problemas por meio do relacionamento incident.problem_id).

    Esta não é uma associação de banco de dados verdadeira; em vez disso, addJoinQuery() adiciona uma subconsulta. Portanto, embora o conjunto de resultados seja limitado com base na associação, os únicos campos aos quais você tem acesso são aqueles na tabela base (aqueles que estão na tabela com a qual o GlideRecord foi inicializado).

    Sempre teste as consultas em uma instância de produto em fase de desenvolvimento antes de implantá-las em uma instância de produção. Uma consulta codificada construída incorretamente, como a inclusão de um nome de campo inválido, produz uma consulta inválida. Quando a consulta inválida é executada, a parte inválida da condição de consulta é descartada e os resultados são baseados na parte válida da consulta, que pode retornar todos os registros da tabela. Usar um método insert(), update(), deleteRecord( )ou deleteMultiple() em resultados de consulta incorretos pode resultar em perda de dados.

    Você pode definir a propriedade do sistema glide.invalid_query.returns_no_rows como verdadeiro para que as consultas com consultas codificadas inválidas não retornem registros.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    tabela Cadeia de caracteres Nome da tabela
    primaryField Cadeia de caracteres Se for diferente de sys_id, o campo primário.
    joinTableField Cadeia de caracteres Se for diferente de sys_id, o campo que une as tabelas
    Tabela 18. Retorna
    Tipo Descrição
    GlideQueryCondition Registros em que os relacionamentos correspondem.

    Encontre problemas que tenham incidentes associados em que o valor do campo caller_id do incidente corresponda ao do campo problem opened_by.

    var now_GR = new GlideRecord('problem'); 
    now_GR.addJoinQuery('incident', 'opened_by', 'caller_id'); 
    now_GR.query();

    Equivalente com escopo

    Para usar o método addJoinQuery() em uma aplicação com escopo, use o método com escopo correspondente: addJoinQuery().

    GlideRecord - addNotNullQuery(cadeia de caracteres "fieldName")

    Adiciona um filtro para retornar registros em que o campo especificado não é nulo.

    Tabela 19. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres O nome do campo.
    Tabela 20. Retorna
    Tipo Descrição
    GlideQueryCondition GlideQueryCondition de registros em que o campo de parâmetro não é nulo.
    var target = new GlideRecord('incident'); 
      target.addNotNullQuery('short_description');
      target.query();   // Issue the query to the database to get all records
      while (target.next()) {   
         // add code here to process the incident record
      }

    Equivalente com escopo

    Para usar o método addNotNullQuery() em uma aplicação com escopo, use o método com escopo correspondente: addNotNullQuery().

    GlideRecord - addNullQuery(cadeia de caracteres "fieldName")

    Adiciona um filtro para retornar registros em que o campo especificado é nulo.

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres O nome do campo.
    Tabela 22. Retorna
    Tipo Descrição
    GlideQueryCondition GlideQueryCondition de registros em que o campo especificado é nulo.
    var target = new GlideRecord('incident'); 
      target.addNullQuery('short_description');
      target.query();   // Issue the query to the database to get all records
      while (target.next()) {   
         // add code here to process the incident record
      }

    Equivalente com escopo

    Para usar o método addNullQuery() em uma aplicação com escopo, use o método com escopo correspondente: addNullQuery().

    GlideRecord - addQuery(cadeia de caracteres nome, operador de objeto, valor de objeto)

    Fornece a capacidade de criar uma solicitação que, quando executada, retorna as linhas da tabela especificada que correspondem à solicitação.

    Se você estiver familiarizado com SQL, este método será semelhante à cláusula "where". Uma ou mais chamadas addQuery() podem ser feitas em uma única consulta; para este método, as consultas são feitas com AND. Se alguma das declarações de consulta precisar ser OR, use a classe GlideQueryCondition.

    addQuery() é normalmente chamado com três parâmetros; campo de tabela, operador e valor de comparação. Ele pode ser chamado com apenas dois parâmetros, campo de tabela e valor de comparação, como myObj.addQuery('category','Hardware');. O operador neste caso é considerado "igual a".

    Para obter informações adicionais sobre como usar consultas, consulte Consulta de tabelas no script.

    Sempre teste as consultas em uma instância de produto em fase de desenvolvimento antes de implantá-las em uma instância de produção. Uma consulta codificada construída incorretamente, como a inclusão de um nome de campo inválido, produz uma consulta inválida. Quando a consulta inválida é executada, a parte inválida da condição de consulta é descartada e os resultados são baseados na parte válida da consulta, que pode retornar todos os registros da tabela. Usar um método insert(), update(), deleteRecord( )ou deleteMultiple() em resultados de consulta incorretos pode resultar em perda de dados.

    Você pode definir a propriedade do sistema glide.invalid_query.returns_no_rows como verdadeiro para que as consultas com consultas codificadas inválidas não retornem registros.

    Tabela 23. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome do campo da tabela
    operador Objeto Operador de consulta. Os valores disponíveis dependem do tipo de dados do parâmetro de valor.
    Números:
    • =
    • !=
    • >
    • >=
    • <
    • <=
    Cadeias de caracteres (devem estar em maiúsculas):
    • =
    • !=
    • IN
    • NÃO EM
    • COMEÇA COM
    • ENDSWITH
    • CONTÉM
    • NÃO CONTÉM
    • INSTANCEOF
    Nota:
    Use CONTAINS em vez do operador LIKE.
    valor Objeto Valor a ser consultado (sem distinção entre maiúsculas e minúsculas).
    Tabela 24. Retorna
    Tipo Descrição
    GlideQueryCondition Uma referência ao GlideQueryCondition que foi adicionado ao GlideRecord.
    var rec = new GlideRecord('incident');
    rec.addQuery('active',true);
    rec.addQuery('sys_created_on', ">", "2010-01-19 04:05:00");
    rec.query();
    while (rec.next()) { 
     rec.active = false;
     gs.print('Active incident ' + rec.number + ' closed');
     rec.update();
    }

    Usando o operador IN.

    var que = new GlideRecord('incident');
    que.addQuery('number','IN','INC00001,INC00002');
    que.query();
    while(que.next()) {
     //do something....
    }

    Equivalente com escopo

    Para usar o método addQuery() em uma aplicação com escopo, use o método com escopo correspondente: addQuery().

    GlideRecord - addValue(cadeia de caracteres, campo, valor numérico)

    Fornece operações atômicas de adição e subtração em um campo de número especificado no nível de banco de dados para o objeto GlideRecord atual.

    Normalmente, um objeto GlideRecord é gravado como um registro em um banco de dados. Os valores de campo individuais são armazenados conforme definido. Para o código que adiciona um valor a um campo GlideRecord, ele simplesmente salva o campo no banco de dados com o novo valor, em vez de incrementá-lo automaticamente.

    Por exemplo, quando o código a seguir é executado, o valor do campo u_count no banco de dados é 2.
    gs.print(now_now_GR.u_count); // "1" 
    now_GR.u_count += 1; 
    now_GR.update(); 
    now_GR.get(now_now_GR.sys_id); 
    gs.print(now_now_GR.u_count); // "2"   
    Se outro usuário executar simultaneamente um código idêntico, em vez de cada uma das duas operações adicionar 1 a u_count, o efeito líquido será que u_count conterá apenas 2, com a atualização de uma operação sendo perdida.
    Por outro lado, o método addValue() executa a adição/subtração no banco de dados quando o registro é atualizado como uma operação atômica. Duas operações em execução simultaneamente atualizam corretamente o campo.
    gs.print(now_now_GR.u_count); // "1" 
    now_GR.addValue("u_count", 1); 
    now_GR.update(); 
    now_GR.get(now_GR); // The record must be reloaded from the database to observe the result
    gs.print(now_now_GR.u_count); // "3", if executed concurrently with another user 
    Nota:
    O novo valor não é lido do banco de dados, a menos que seja feito explicitamente.

    Assim como setValue(), as mudanças addValue() só entram em vigor no banco de dados após uma chamada subsequente para update() ou insert(). Se insert() for chamado, o campo especificado será inicializado com o parâmetro value passado para addValue().

    Nota:
    Se setValue() for chamado para o campo especificado antes de chamar addValue(), o método addValue() não será processado e uma mensagem de erro será registrada em log.
    Tabela 25. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres O nome do campo neste GlideRecord a ser modificado.

    Se o campo associado não for do tipo numérico, a operação será ignorada.

    valor Número O valor a ser adicionado ao valor quando o registro é salvo. Para executar uma operação de subtração, basta passar um valor negativo.
    Tabela 26. Retorna
    Tipo Descrição
    vazio

    Mostra um valor que está sendo adicionado.

    gs.print(now_GR.u_count); // "1" 
    now_GR.addValue("u_count", 1); 
    now_GR.update(); 
    now_GR.get(now_GR.sys_id); // The record must be reloaded from the database to observe the result
    gs.print(now_GR.u_count);

    Saída: 2

    Mostra um valor que está sendo subtraído.

    gs.print(now_GR.u_count); // "4" 
    now_GR.addValue("u_count", -1); 
    now_GR.update(); 
    now_GR.get(now_GR.sys_id); // The record must be reloaded from the database to observe the result
    gs.print(now_GR.u_count);

    Saída: 3

    GlideRecord - applyEncodedQuery(cadeia de caracteres queryString)

    Define os valores dos termos de consulta codificados especificados e os aplica ao GlideRecord atual.

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    cadeia de caracteres de consulta Cadeia de caracteres Consulta codificada a ser aplicada ao GlideRecord atual.
    Tabela 28. Retorna
    Tipo Descrição
    Nenhum

    function createAcl(table, role) {
      gs.print("Checking security on table " + table);
      var now_GR = new GlideRecord("sys_security_acl");
      now_GR.addQuery("name", table);
      now_GR.addQuery("operation", "read");
      now_GR.query();
      var encQuery = now_GR.getEncodedQuery();
      if (now_GR.next()) {
        // existing acl found so use it
        createAclRole(now_GR.sys_id.toString(), role);
        return;
      } else {
      now_GR.initialize();
      now_GR.applyEncodedQuery(encQuery);
      var acl = now_GR.insert();
        gs.print("Added read access control on " + table);
        createAclRole(acl, role);
      } 
    }

    GlideRecord - applyTemplate(cadeia de caracteres modelo)

    Aplique um registro de modelo da tabela Modelo [sys_template] ao registro atual. Se o modelo especificado não for encontrado, nenhuma ação será realizada.

    Nota:
    Este método instancia automaticamente um método now_GR.insert() se um modelo tiver o campo Próximo modelo secundário relacionado preenchido. Para obter informações, consulte Criar modelos para registros de tarefa relacionados.
    Tabela 29. Parâmetros
    Nome Tipo Descrição
    modelo Cadeia de caracteres Nome de um modelo da tabela Modelos [sys_template].
    Tabela 30. Retorna
    Tipo Descrição
    vazio
    var rec1 = new GlideRecord("incident");
    rec1.initialize();
    rec1.applyTemplate("my_incident_template");
    rec1.insert();

    GlideRecord - autoSysFields(booliano e)

    Habilita ou desabilita a atualização dos campos sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by e sys_created_on. Isso geralmente é usado para atualizar manualmente os valores de campo em um registro, deixando as informações históricas inalteradas.

    Aviso:
    Tenha cuidado se você usar este método. Quando você usa este método, o campo sys_mod_count não será incrementado e outros campos sys_ não serão atualizados. Isso pode interromper a funcionalidade, incluindo, entre outros, o formatador de atividade, os conjuntos de históricos, as notificações e as métricas.
    Tabela 31. Parâmetros
    Nome Tipo Descrição
    e Booliano Se for falso, desabilitará as atualizações para sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by e sys_created_on.
    Tabela 32. Retorna
    Tipo Descrição
    vazio
    var inc = new GlideRecord('incident');
     
    // Change all Open(1) incidents to Active(2)
     
    inc.addQuery('state', 1);
    inc.query();
     
    while (inc.next()) {
      inc.autoSysFields(false);  // Do not update sys_updated_by, sys_updated_on, sys_mod_count, sys_created_by, and sys_created_on
      inc.setWorkflow(false);    // Do not run any other business rules
      inc.setValue('state', 2);
      inc.update();
    }

    GlideRecord – canCreate()

    Determina se as regras de controle de acesso (que incluem a função do usuário) permitem a inserção de novos registros nesta tabela.

    Tabela 33. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 34. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se as funções do usuário permitem a criação de registros nesta tabela.
    Valores possíveis:
    • verdadeiro: criação permitida
    • falso: não é permitido criar

    Este exemplo mostra se os registros podem ser criados na tabela benefício_plan.

    canCreateBenefitPlan : function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canCreate();
    }

    Equivalente com escopo

    Para usar o método canCreate() em uma aplicação com escopo, use o método com escopo correspondente: canCreate().

    GlideRecord – canDelete()

    Determina se as regras de controle de acesso (que incluem a função do usuário) permitem a exclusão de registros nesta tabela.

    Tabela 35. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 36. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se as funções do usuário permitem a exclusão de registros nesta tabela.
    Valores válidos:
    • verdadeiro: exclusão permitida
    • falso: a exclusão não é permitida
    var att = new GlideRecord('sys_attachment');
    att.get('$[sys_attachment.sys_id]');
    var sm = GlideSecurityManager.get();
    var checkMe = 'record/sys_attachment/delete';
    var canDelete = sm.hasRightsTo(checkMe, att);
    gs.log('canDelete: ' + canDelete);

    Equivalente com escopo

    Para usar o método canDelete() em uma aplicação com escopo, use o método com escopo correspondente: canDelete().

    GlideRecord – canRead()

    Determina se as regras de controle de acesso (ACLs) permitem a leitura de registros nesta tabela. Este método avalia todos os tipos de ACL, como funções de usuário, ACLs com script, ACLs com condições de script e assim por diante.

    Tabela 37. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 38. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se as funções do usuário permitem a leitura de registros nesta tabela.
    Valores válidos:
    • verdadeiro: leitura permitida
    • falso: a leitura não é permitida

    Este exemplo mostra se os registros podem ser lidos na tabela benefício_plan.

    canReadBenefitPlan: function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canRead();
    }

    Equivalente com escopo

    Para usar o método canRead() em uma aplicação com escopo, use o método com escopo correspondente: canRead().

    GlideRecord – canWrite()

    Determina se as regras de controle de acesso (que incluem a função do usuário) permitem atualizações de registros nesta tabela.

    Tabela 39. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 40. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se as funções do usuário permitem a gravação de registros nesta tabela.
    Valores válidos:
    • verdadeiro: gravação permitida
    • falso: a gravação não é permitida

    Este exemplo mostra se os registros podem ser gravados na tabela benefício_plan.

    canWriteBenefitPlan : function() {
      var now_GR = new GlideRecord('benefit_plan');
      return now_GR.canWrite();
    }

    Equivalente com escopo

    Para usar o método canWrite() em uma aplicação com escopo, use o método com escopo correspondente: canWrite().

    GlideRecord - mudanças ()

    Determina se algum dos campos no registro foi alterado.

    Tabela 41. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 42. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se há mudanças no registro especificado.
    Valores possíveis:
    • verdadeiro: os campos no registro especificado foram alterados.
    • falso: nenhum campo foi alterado.

    Este exemplo mostra como verificar se há mudanças em um registro de incidente.

    var now_GR = new GlideRecord("incident");
    now_GR.query();
    now_GR.next();
    if (now_GR.changes()) {
      gs.print("The incident record reported changes right after being read");
    } else {
      gs.print("The incident record has not changed");
    }

    Equivalente com escopo

    Para implementar esta funcionalidade em uma aplicação com escopo, adicione um código semelhante ao seguinte:

    var now_GR = new GlideRecord("incident");
       now_GR.get("965c9e5347c12200e0ef563dbb9a7156");
       now_GR.short_description = "test";
       var elements = now_GR.getElements();
       var hasChanged = false;
       for(var i=0; i < elements.length;i++){
         var element = elements[i];
         hasChanged = hasChanged || element.changes();
         gs.info(element.getName() + ":" + element.changes());
       }
       gs.info(hasChanged);

    GlideRecord – deleteMultiple()

    Exclui todos os registros que atendem à consulta.

    Este método não exclui anexos.

    A referência com pontos não é compatível com este método. Ao usar a função deleteMultiple() em tabelas referenciadas, todos os registros na tabela são excluídos. Além disso, ao usar deleteRecord() para excluir em cascata, as chamadas anteriores para setWorkflow() no mesmo objeto GlideRecord são ignoradas.

    Não use deleteMultiple() em tabelas com campos de moeda. Sempre exclua cada registro individualmente. Além disso, não use este método com os métodos chooseWindow() ou setLimit() ao trabalhar com tabelas grandes. O método setLimit() não limita o número de registros que são excluídos com deleteMultiple(). Todos os registros retornados pela consulta são excluídos, independentemente de setLimit().

    A propriedade do sistema glide.db.forced.chunk.threshold define o limite acima do qual força exclusões e atualizações de registros de bloco. A divisão em blocos ajuda a impedir que exclusões de chave não primária em tabelas grandes causem problemas de replicação. Para obter mais informações, consulte Available system properties.

    Tabela 43. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 44. Retorna
    Tipo Descrição
    Nenhum

    Este exemplo mostra como excluir todos os registros inativos da tabela Incidente.

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('active','false');
    now_GR.query();
    now_GR.deleteMultiple();

    Equivalente com escopo

    Para usar o método deleteMultiple() em uma aplicação com escopo, use o método com escopo correspondente: deleteMultiple().

    GlideRecord – deleteRecord()

    Exclui um único registro.

    Nota:
    Ao usar deleteMultiple () para excluir em cascata, as chamadas anteriores para setWorkflow () no mesmo objeto GlideRecord são ignoradas.
    Tabela 45. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 46. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o registro foi excluído com sucesso.
    Valores possíveis:
    • verdadeiro: o registro foi excluído.
    • falso: nenhum registro encontrado para excluir.

    Este exemplo mostra como excluir todos os registros inativos da tabela Incidente.

    var rec = new GlideRecord('incident');
    rec.addQuery('active',false);
    rec.query();
    while (rec.next()) { 
     gs.info('Inactive incident ' + rec.number + ' deleted');
     rec.deleteRecord();
    }

    Saída:

    Inactive incident INC0010010 deleted
    Inactive incident INC0010011 deleted

    Este exemplo mostra como excluir um registro da tabela Incidente imediatamente após sua inserção. O incidente GlideRecord deve ser recarregado após a inserção antes que ele possa ser excluído.

    var grTicket = new GlideRecord('incident');
    grTicket.initialize();
    grTicket.short_description = 'Example ticket';
    grTicket.work_notes = 'An update about the ticket';
    var ins_sys_id = grTicket.insert(); // Insert the record
    grTicket.get(ins_sys_id); // Reload the inserted record
    gs.info(grTicket.deleteRecord()); // Delete the record

    Saída:

    true

    Equivalente com escopo

    Para usar o método deleteRecord() em uma aplicação com escopo, use o método com escopo correspondente: deleteRecord().

    GlideRecord - find(cadeia de caracteres columnName, cadeia de caracteres value)

    Retorna verdadeiro se algum registro tiver um valor correspondente na coluna especificada. Se encontrado, ele também será movido para o primeiro registro correspondente, executando essencialmente next() até que o registro seja retornado.

    Tabela 47. Parâmetros
    Nome Tipo Descrição
    columnName Cadeia de caracteres Nome do campo a ser pesquisado.
    valor Cadeia de caracteres Valor a ser verificado no campo especificado.
    Tabela 48. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se algum registro na tabela atual tem um valor correspondente no campo especificado.
    Valores possíveis:
    • verdadeiro: campo correspondente.
    • falso: nenhum campo correspondente.

    Este exemplo mostra como encontrar um registro na tabela Incidente com "Crítico" no campo de descrição resumida.

    var now_GR = new GlideRecord("incident");
    now_GR.query();
    var shortDescription = "Critical";
    if (now_GR.find("short_description", shortDescription)) {
      gs.print("An incident with the specified field value was found");
      var recordID = now_GR.getValue("sys_id");
      gs.print("Found in the following record: " + recordID);
    } else {
      gs.print("An incident with the specified field value was not found");
    }

    Saída

    An incident with the specified field value was found
    Found in the following record: 552c48888c033300964f4932b03eb092

    GlideRecord - get(nome do objeto, valor do objeto)

    Retorna o registro especificado no objeto GlideRecord atual.

    Este método aceita um ou dois parâmetros. Se apenas um único parâmetro for passado, o método presumirá que é o sys_id do registro desejado. Se não for encontrado, ele tentará corresponder o valor ao valor de exibição. Se dois parâmetros forem passados, o primeiro será o nome da coluna no GlideRecord a ser pesquisada. O segundo é o valor a ser pesquisado.

    Se vários registros forem encontrados, use next() para acessar os registros adicionais.

    Tabela 49. Parâmetros
    Nome Tipo Descrição
    nome Objeto Opcional. Nome da coluna GlideRecord instanciada para pesquisar o parâmetro value especificado. Se apenas um único parâmetro for passado, o método presumirá que este parâmetro é sys_id.
    valor Objeto Valor a ser correspondido.
    Tabela 50. Retorna
    Tipo Descrição
    Booliano Indica se o registro solicitado foi localizado.
    Valores possíveis:
    • verdadeiro: o registro foi encontrado
    • falso: o registro não foi encontrado

    Este exemplo obtém um registro de incidente passando o sys_id.

    var grIncident = new GlideRecord('incident');
    var returnValue = grIncident.get('99ebb4156fa831005be8883e6b3ee4b9');
    gs.info(returnValue); // logs true or false
    gs.info(grIncident.number); // logs Incident Number

    Este exemplo obtém um registro de incidente passando a coluna no registro a ser pesquisado e o valor a ser pesquisado.

    var grIncident = new GlideRecord('incident');
    var returnValue = grIncident.get('caller_id.name','Sylivia Wayland');
    gs.info(returnValue); // logs true or false
    gs.info(grIncident.number); // logs Incident Number

    Equivalente com escopo

    Para usar o método get() em uma aplicação com escopo, use o método com escopo correspondente: get().

    GlideRecord - getAttribute(cadeia de caracteres "fieldName")

    Retorna os atributos do dicionário no campo especificado.

    Tabela 51. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Nome do campo para o qual serão retornados os atributos do dicionário
    Tabela 52. Retorna
    Tipo Descrição
    Cadeia de caracteres Atributos do dicionário

    Este exemplo mostra como retornar os atributos do dicionário para "tree_picker".

    function doit() {
      var now_GR = new GlideRecord('sys_user');
      now_GR.query("user_name","admin");
      if (now_GR.next()) {
        gs.print("we got one");
        gs.print(now_GR.location.getAttribute("tree_picker"));
      }
    }

    Equivalente com escopo

    Para usar o método getAttribute() em uma aplicação com escopo, use o método com escopo correspondente: getAttribute().

    GlideRecord – getClassDisplayValue()

    Retorna o rótulo da tabela.

    Tabela 53. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 54. Retorna
    Tipo Descrição
    Cadeia de caracteres Rótulo que identifica a tabela.

    Este exemplo imprime o rótulo da tabela passada.

    // Display the incident table label
    var now_GR = new GlideRecord("incident");
    var value = now_GR.getClassDisplayValue();
    gs.info("The table label is " + value + ".");

    Saída:

    The table label is Incident.

    Equivalente com escopo

    Para usar o método getClassDisplayValue() em uma aplicação com escopo, use o método com escopo correspondente: getClassDisplayValue().

    GlideRecord – getDisplayValue()

    Recupera o valor de exibição do registro atual.

    Os valores de exibição são manipulados com base no valor real no banco de dados e nas configurações e preferências do usuário ou do sistema.

    O valor de exibição retornado depende do tipo de campo.
    • Campos de opção: o valor do banco de dados pode ser um número, mas o valor de exibição será mais descritivo.
    • Campos de data: o valor do banco de dados está no formato UTC, enquanto o valor de exibição é baseado no fuso horário do usuário.
    • Texto criptografado: o valor do banco de dados é criptografado, enquanto o valor exibido não é criptografado com base no contexto de criptografia do usuário.
    • Campos de referência: o valor do banco de dados é sys_id, mas o valor de exibição é um campo de exibição do registro referenciado.
    Tabela 55. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 56. Retorna
    Tipo Descrição
    Cadeia de caracteres Exiba o valor do registro atual.

    Este exemplo grava o valor de exibição de um registro de incidente especificado no log.

    var now_GR = new GlideRecord('incident');
    now_GR.get('sys_id','<sys_id>');
    gs.info(now_GR.getDisplayValue());

    Saída:

    INC0000050

    Equivalente com escopo

    Para usar o método getDisplayValue() em uma aplicação com escopo, use o método com escopo correspondente: getDisplayValue().

    GlideRecord – getED()

    Retorna o descritor do elemento.

    Tabela 57. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 58. Retorna
    Tipo Descrição
    GlideElementDescriptor O descritor do elemento.

    Este exemplo mostra como recuperar o campo de nome de um GlideRecord de incidente.

    grInc = new GlideRecord('incident');
    grInc.getActiveQuery();
    grInc.query();
    if (grInc.next())
      gs.info("Table Descriptor is - " + grInc.getED().getName());
    

    Saída:

    Table Descriptor is - incident

    Equivalente com escopo

    Para usar o método getED() em uma aplicação com escopo, use o método com escopo correspondente: getED().

    GlideRecord - getElement(cadeia de caracteres "fieldName")

    Recupera o GlideElement de um campo especificado.

    O valor retornado por este método é um objeto GlideElement completo. Os resultados são o equivalente à referência com pontos em um valor de campo. Por exemplo, now_GR.getElement('short_description') fornece o mesmo resultado que nowGR.short_description.

    Na maioria dos casos, não use a referência com pontos para obter valores de um registro. A referência com pontos recupera o objeto inteiro em vez do valor do campo. Recuperar o objeto usa mais armazenamento e pode causar resultados indesejáveis quando usado em matrizes ou em Portal de serviços.

    Em vez de recuperar o objeto inteiro, você pode usar um dos seguintes métodos para copiar os valores de campo:

    Se for necessário percorrer um objeto GlideElement com pontos, use o método toString() para recuperar valores. Por exemplo, talvez você precise do sys_id do gerente do solicitante atual para definir outro campo de referência. O exemplo a seguir mostra como obter o valor da cadeia de caracteres em vez do objeto inteiro:
    var mgr = current.caller_id.manager.toString();

    Consulte também: GlideElement – toString().

    Tabela 59. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Nome da coluna para a qual o objeto GlideElement será retornado.
    Tabela 60. Retorna
    Tipo Descrição
    GlideElement O GlideElement para a coluna especificada do registro atual. Cada objeto descreve um campo no GlideRecord atual.

    Este exemplo mostra como obter o objeto GlideElement para uma tabela passada e compará-los com os valores de metadados do sistema esperados.

    function compareElement(comment, table, element, /*{}*/ expected) {
      var now_GR = new GlideRecord(table);
      var el = now_GR.getElement(element);
      for (var n in expected) {
        assertEquals(comment + ":" + table + "." + element, expected[n], el.sys_meta[n]);
      }
    }

    Equivalente com escopo

    Para usar o método getElement() em uma aplicação com escopo, use o método com escopo correspondente: getElement().

    GlideRecord – getEncodedQuery()

    Recupera a condição de consulta do conjunto de resultados atual como uma cadeia de caracteres de consulta codificada.

    Para obter detalhes, consulte Cadeias de caracteres de consulta codificadas .

    Tabela 61. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 62. Retorna
    Tipo Descrição
    Cadeia de caracteres

    Este exemplo mostra como obter a consulta codificada atual para usar mais tarde para criar uma função de ACL de leitura.

    function createAcl(table, role) {
      gs.print("Checking security on table " + table);
      var now_GR = new GlideRecord("sys_security_acl");
      now_GR.addQuery("name", table);
      now_GR.addQuery("operation", "read");
      now_GR.query();
      var encQuery = now_GR.getEncodedQuery();
      if (now_GR.next()) {
        // existing acl found so use it
        createAclRole(now_GR.sys_id.toString(), role);
       return;
      } else {
        now_GR.initialize();
        now_GR.applyEncodedQuery(encQuery);
        var acl = now_GR.insert();
        gs.print("   Added read access control on " + table);
        createAclRole(acl, role);
      }
    }

    Equivalente com escopo

    Para usar o método getEncodedQuery() em uma aplicação com escopo, use o método com escopo correspondente: getEncodedQuery().

    GlideRecord – getEscapedDisplayValue()

    Recupera o valor do campo de exibição do registro atual e adiciona caracteres de escape para uso em scripts do Jelly.

    Nota:
    Para que este método funcione, um valor de exibição deve ter sido definido na tabela associada. Para obter informações sobre como fazer isso, consulte Selecionar um campo como o valor de exibição da tabela.
    Tabela 63. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 64. Retorna
    Tipo Descrição
    Cadeia de caracteres Valor de escape do campo de exibição da tabela atual.

    Este exemplo mostra como obter o valor de exibição de escape de user_name da tabela Usuário [sys_user].

    var userName = "Michael J'ones";
    var now_GR = new GlideRecord("sys_user");
    if (now_GR.get("user_name", userName)) {
      gs.print("Deleting existing user=" + userName);
      now_GR.deleteRecord();
    }
    now_GR.initialize();
    
    var name = userName.split(" ", 2);
    var firstName = name[0];
    var lastName = name[1];
    now_GR.setValue("user_name", userName);
    gs.print("Name: " + now_GR.getValue("user_name"));
    now_GR.setValue("first_name", firstName);
    now_GR.setValue("last_name", lastName);
    var escapeValue = now_GR.getEscapedDisplayValue();
    gs.print("Escaped name: " + escapeValue);

    Saída:

    Name: Michael J'ones
    Escaped name: Michael J\'ones

    GlideRecord – getFields()

    Recupera uma ArrayList Java de campos no registro atual.

    Tabela 65. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 66. Retorna
    Tipo Descrição
    ArrayList Java Campos no registro atual
    // This can be run in "Scripts - Background" for demonstration purposes
     
    // Get a single incident record
    var grINC = new GlideRecord('incident');
    grINC.query();
    grINC.next();
    gs.print('Using ' + grINC.getValue('number'));
    gs.print('');
     
    // getFields() returns a Java ArrayList
    var fields = grINC.getFields();
     
    // Enumerate GlideElements in the GlideRecord object that have values
    gs.print('Enumerating over all fields with values:');
    for (var i = 0; i < fields.size(); i++) {
      var glideElement = fields.get(i);
      if (glideElement.hasValue()) {
        gs.print('  ' + glideElement.getName() + '\t' + glideElement);
      }
    }
    gs.print('');
     
    // Get a specific GlideElement: number
    gs.print('Getting the number field:');
    for (var i = 0; i < fields.size(); i++) {
      var glideElement = fields.get(i);
      if (glideElement.hasValue() && glideElement.getName() == 'number') {
        gs.print('  ' + glideElement.getName() + '\t' + glideElement);
      }
    }

    GlideRecord – getLabel()

    Recupera o rótulo do campo.

    Tabela 67. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 68. Retorna
    Tipo Descrição
    Cadeia de caracteres O rótulo do campo

    Este exemplo mostra como recuperar um rótulo de um campo de pergunta na tabela Item solicitado e imprimir o rótulo e seu nome de exibição.

    template.print("Summary of Requested items:\n");  
    var now_GR = new GlideRecord("sc_req_item");
    now_GR.addQuery("request", current.sysapproval);
    now_GR.query();
    while(now_GR.next()) {
    var nicePrice = now_GR.price.toString();
        if (nicePrice != '') {
            nicePrice = parseFloat(nicePrice);
            nicePrice = nicePrice.toFixed(2);
        }
        template.print(now_GR.number + ":  " + now_GR.quantity + " X " + now_GR.cat_item.getDisplayValue() 
                         + " at $" + nicePrice + " each \n");
        template.print("    Options:\n");
        for (key in now_GR.variables) {
        var now_V = now_GR.variables[key];
          if(now_V.getGlideObject().getQuestion().getLabel() != '') {
             template.space(4);
             template.print('     ' + now_V.getGlideObject().getQuestion().getLabel() + " = " 
                         + vnow_V.getDisplayValue() + "\n");  
          }
        }
    }

    Equivalente com escopo

    Para usar o método getLabel() em uma aplicação com escopo, use o método com escopo correspondente: getLabel().

    GlideRecord – getLocation()

    Recupera o número da linha do registro atual na tabela.

    Tabela 71. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 72. Retorna
    Tipo Descrição
    Número Número de linha baseado em zero do registro atual na tabela.

    Este exemplo mostra como verificar se um registro na tabela Incidente não foi recuperado corretamente, comparando a contagem de registros com o número do local do registro.

    var now_GR = new GlideRecord("incident");
    now_GR.addQuery("priority", "4");
    now_GR.query();
    for (x=0; x <4; x++) {
      now_GR.next();
      gs.print("Location value: " + now_GR.getLocation());
    }

    Saída:

    Location value: 0
    Location value: 1
    Location value: 2
    Location value: 3

    GlideRecord – getPlural()

    Recupera o rótulo do plural da tabela GlideRecord.

    Por exemplo, se o nome da tabela for "Solicitação de mudança", este método retornará "Solicitações de mudança".

    Tabela 73. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 74. Retorna
    Tipo Descrição
    Cadeia de caracteres O rótulo plural da tabela do GlideRecord.

    Este exemplo mostra verifica os valores de retorno para getLabel() e getPlural() para a tabela Incidente.

    var now_GR = new GlideRecord('incident');
    gs.print(now_GR.getLabel());
    if (now_GR.getLabel() != 'Incident')
    throw "GlideRecord.getLabel() returned unexpected value for table 'incident': " + now_GR.getLabel();
    
    gs.print(now_GR.getPlural());
    if (now_GR.getPlural() != 'Incidents')
    throw "GlideRecord.getPlural() returned unexpected value for table 'incident': " + now_GR.getPlural();
    "success";

    Equivalente com escopo

    Para usar o método getPlural() em uma aplicação com escopo, use o método GlideRecord.getED() com escopo para obter o descritor do campo e, em seguida, use o método GlideElementDescriptor.getPlural() com escopo.

    GlideRecord – getRecordClassName()

    Recupera o nome da classe (tabela) do registro atual.

    Tabela 75. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 76. Retorna
    Tipo Descrição
    Cadeia de caracteres Nome da classe ou da tabela
    function TaskAssignmentFilter() {
      var classname = current.getRecordClassName();
      var filter = "type=null";
      if (classname == "incident" && current.category == "database") {
        filter = GetGroupFilter("database");
      }
      else {
        // append exclusion for 'catalog' to the filter
        var cat = new GlideRecord("sys_user_group_type");  
        cat.addQuery("name", "catalog");
        cat.query();
        if (cat.next()) {
          filter += "^ORtype!=" + cat.sys_id;
        }
      }
      gs.log("TaskAssignmentFilter: " + filter);
      return filter;
    }

    Equivalente com escopo

    Para usar o método getRecordClassName() em uma aplicação com escopo, use o método com escopo correspondente: getRecordClassName().

    GlideRecord – getRelatedLists()

    Recupera uma lista de nomes e exibe valores de listas relacionadas associadas ao GlideRecord atual.

    Tabela 77. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 78. Retorna
    Tipo Descrição
    HashMap Mapa de hash com nomes e valores de exibição de listas relacionadas.

    Este exemplo mostra como obter a lista de nomes e exibir valores de listas relacionadas associadas ao GlideRecord atual, armazená-los em uma matriz e imprimir seus valores.

    var now_GR = new GlideRecord('incident');
    var c = now_GR.getRelatedLists().values().toArray();
    var numElements = c.length;
    for( var i = 0; i < numElements; ++i){
      gs.print(i+": "+c[i]);
    }

    GlideRecord – getRelatedTables()

    Recupera uma lista de nomes e exibe valores de tabelas referenciadas pelo registro atual.

    Tabela 79. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 80. Retorna
    Tipo Descrição
    HashMap Mapa de hash com nomes e valores de exibição de tabelas relacionadas.

    Este exemplo mostra como obter a lista de nomes e exibir valores de tabelas relacionadas ao GlideRecord atual, armazená-los em uma matriz e imprimir seus valores.

    var now_GR = new GlideRecord('incident');
    var c = now_GR.getRelatedTables().values().toArray();
    var numElements = c.length;
    for( var i = 0; i < numElements; ++i){
      gs.print(i+": "+c[i]);
    }

    GlideRecord – getRowCount()

    Recupera o número de linhas (registros) no objeto GlideRecord atual.

    Nota:
    O GlideRecord retorna registros correspondentes, portanto, pode não ser tão eficiente quanto o GlideAggregate quando você só precisa do número de registros. Se você precisar apenas de uma contagem de registros e não estiver iterando nos registros correspondentes, use GlideAggregate.
    Recuperando os registros de número em GlideRecord ou GlideAggregate
    As APIs GlideRecord getRowCount() e GlideAggregate getAggregate() oferecem informações semelhantes. Use os critérios a seguir para determinar qual opção é melhor para você.
    • O método GlideRecord getRowCount() informa quantos registros foram retornados de uma consulta junto com os próprios registros. Se você precisar do número de registros no conjunto de resultados antes ou depois de iterar no conjunto para executar ações nos registros, use este método.
    • O método GlideAggregate getAggregate() recupera somente uma contagem de registros correspondentes à consulta, excluindo os registros reais. O agregado deve ser definido no objeto GlideAggregate antes de emitir a consulta.
    Recuperando os registros e a contagem com GlideRecord getRowCount()
    O exemplo a seguir mostra como obter o número total de incidentes ativos com GlideRecord getRowCount():
    var incident = new GlideRecord("incident");
    incident.addQuery("active", true);
    incident.query();
     
    gs.info("*** Total number of active incidents: {0}", incident.getRowCount());
    Recuperando somente o número de registros com GlideAggregate getAggregate()
    O exemplo a seguir mostra como retornar somente o número de registros. Como este método não usa os registros correspondentes, é muito mais eficiente usar uma consulta agregada e retornar apenas a contagem.
    var incident = new GlideAggregate("incident");
    incident.addQuery("active", true);
    incident.addAggregate("COUNT");
    incident.query();
     
    if (incident.next())
        gs.info("*** Total number of active incidents: {0}", incident.getAggregate("COUNT"));
    Decidir qual opção é melhor para sua solução

    Se você quiser recuperar apenas o número de registros, o método GlideAggregate getAggregate() será a melhor opção. Para usar os registros individuais e recuperar o número de resultados, use GlideRecord getRowCount(), pois uma única consulta fornece essa funcionalidade.

    Tabela 81. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 82. Retorna
    Tipo Descrição
    Número Número de linhas no GlideRecord atual.

    O exemplo a seguir mostra como obter o número de incidentes da tabela Incidente [incidente].

    var numberOfIncidents = new GlideRecord('incident');
    numberOfIncidents.query();
    gs.info("Records in incident table: " + numberOfIncidents.getRowCount());

    Saída:

    Records in incident table: 6920

    Equivalente com escopo

    Para usar o método getRowCount() em uma aplicação com escopo, use o método com escopo correspondente: getRowCount().

    GlideRecord – getRowNumber()

    Recupera o número da linha definido por saveLocation() ou setLocation().

    Para obter o número da linha atual, use getLocation().

    Tabela 83. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 84. Retorna
    Tipo Descrição
    Número Número de linha salvo.

    Este exemplo mostra como salvar um local de linha na tabela Usuários e obter esse número de linha.

    var now_GR = new GlideRecord('sys_user');
    now_GR.addQuery();
    now_GR.query();
    now_GR.saveLocation(5);
    var savedRow = now_GR.getRowNumber();
    gs.print("Saved row: " + savedRow);

    Saída:

    Saved row: 5

    GlideRecord – getTableName()

    Recupera o nome da tabela associada a este GlideRecord.

    Tabela 85. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 86. Retorna
    Tipo Descrição
    Cadeia de caracteres Um nome de tabela

    Este exemplo mostra como gravar o nome da tabela atual no log do sistema.

    gs.log('Table: ' + current.getTableName()); 
    gs.log('Parent: ' + current.parent.sys_id); 
    var item = new GlideRecord('sc_req_item'); 
    item.addQuery('sys_id', current.parent.sys_id); 
    item.query(); 
    if(item.next()){ 
      for(var variable in item.variable_pool) {
        gs.log(variable); 
        var answer = eval ("item.variable_pool." + variable + ".getDisplayValue()");
        gs.log(answer);
      }
    }

    Equivalente com escopo

    Para usar o método getTableName() em uma aplicação com escopo, use o método com escopo correspondente: getTableName().

    GlideRecord – getUniqueValue()

    Obtém a chave primária do registro, que geralmente é o sys_id, a menos que especificado de outra forma.

    Tabela 87. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 88. Retorna
    Tipo Descrição
    Cadeia de caracteres A chave primária exclusiva como uma cadeia de caracteres ou nula se a chave for nula.
    var now_GR = new GlideRecord('kb_knowledge');
    now_GR.query();
    now_GR.next();
    var uniqueid = now_GR.getUniqueValue();
    gs.info(uniqueid);

    GlideRecord - getValue(cadeia de caracteres "fieldName")

    Recupera o valor da cadeia de caracteres de um campo especificado.

    Nota:
    Se o plug-in Criptografia em nível de coluna para empresas estiver habilitado e a instância tiver acesso à chave, este método retornará valores de texto não criptografado de campos criptografados. Se a instância não tiver acesso à chave, este método retornará o valor criptografado. Para obter mais informações, consulte Platform Encryption.
    Tabela 89. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Nome de um campo para o qual recuperar seu valor.
    Tabela 90. Retorna
    Tipo Descrição
    Cadeia de caracteres Valor do elemento especificado. Retornará nulo se o campo estiver vazio ou se o campo não existir.
    Nota:
    Os valores boolianos retornam como valores de cadeia de caracteres "0" e "1" em vez de falso e verdadeiro.

    Este exemplo usa o método getValue() para obter valores de campo em dois GlideRecords que estão sendo comparados.

    function() {
      var jobExists = true;
      var jobGr;
      while(jobExists){
        jobGr = new GlideRecord("sys_trigger");
        jobExists = jobGr.get("name", "BaselineAPI: Create Baseline Job");
      }
      var baselineGr =  new GlideRecord('pm_project_baseline');
      baselineGr.get('baseline_name','Test Project Baseline');
      baselineGr.query();
     
      Assert.assertEquals(true, baselineGr.next());
      var projectGr =  new GlideRecord('pm_project');
      projectGr.get(this._project);
      Assert.assertEquals(projectGr.getValue('cost'), baselineGr.getValue('cost'));
      Assert.assertEquals((projectGr.getValue('capex_cost')), baselineGr.getValue('capex_cost'));
      Assert.assertEquals((projectGr.getValue('opex_cost')), baselineGr.getValue('opex_cost'));
      Assert.assertEquals((projectGr.getValue('budget_cost')), baselineGr.getValue('budget_cost'));
      Assert.assertEquals((projectGr.getValue('value')), baselineGr.getValue('value'));
      Assert.assertEquals((projectGr.getValue('npv_value')), baselineGr.getValue('npv_value'));  Assert.assertEquals((projectGr.getValue('score')), baselineGr.getValue('score'));
    }

    Equivalente com escopo

    Para usar o método getValue() em uma aplicação com escopo, use o método com escopo correspondente: getValue().

    GlideRecord - GlideRecord(cadeia de caracteres "tableName")

    Cria uma instância da classe GlideRecord para a tabela especificada.

    Tabela 91. Parâmetros
    Nome Tipo Descrição
    tableName Cadeia de caracteres Tabela a ser usada.
    var now_GR = new GlideRecord('incident');

    GlideRecord – hasAttachments()

    Determina se o GlideRecord atual tem anexos.

    Tabela 92. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 93. Retorna
    Tipo Descrição
    Booliano Verdadeiro se o registro atual tiver anexos, caso contrário, falso.

    Este exemplo verifica se há anexos e cria um link, se houver.

    var attachment_link = '';
    var rec = new GlideRecord('sc_req_item');
    rec.addQuery('sys_id', current.request_item);
    rec.query();
    if(rec.next()){
      if(rec.hasAttachments()){
        attachment_link = gs.getProperty('glide.servlet.uri') + rec.getLink();
      }   
    }

    GlideRecord – hasNext()

    Determina se há mais registros no GlideRecord.

    Tabela 94. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 95. Retorna
    Tipo Descrição
    Booliano Verdadeiro se houver mais registros no conjunto de consulta, caso contrário, falso.

    Este exemplo mostra como chamar diferentes funções com base na existência de registros adicionais no GlideRecord atual.

    if (now_GR.hasNext()) {
      dothis(); // found it, do it
    } else {
      dothat(); // didn't find it
    };

    Equivalente com escopo

    Para usar o método hasNext() em uma aplicação com escopo, use o método com escopo correspondente: hasNext().

    GlideRecord – inicializar ()

    Cria um registro vazio no GlideRecord atual que é adequado para preenchimento antes de uma inserção.

    Tabela 96. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 97. Retorna
    Tipo Descrição
    vazio

    Este exemplo inicializa um novo registro na tabela to_do, cria um registro e o insere na tabela.

    var now_GR = new GlideRecord('to_do');
    now_GR.initialize(); 
    now_GR.name = 'first to do item'; 
    now_GR.description = 'learn about GlideRecord'; 
    now_GR.insert();

    Equivalente com escopo

    Para usar o método inicializar() em uma aplicação com escopo, use o método com escopo correspondente: inicializar().

    GlideRecord – inserir ()

    Insere um novo registro com os valores de campo que foram definidos para o registro atual.

    Tabela 98. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 99. Retorna
    Tipo Descrição
    Cadeia de caracteres O sys_id do registro inserido ou nulo se o registro não estiver inserido.

    Este exemplo cria um novo registro na tabela to_do, define valores para alguns campos de registro e insere o registro na tabela.

    var now_GR = new GlideRecord('to_do');
    now_GR.initialize(); 
    now_GR.name = 'first to do item'; 
    now_GR.description = 'learn about GlideRecord'; 
    now_GR.insert();

    Equivalente com escopo

    Para usar o método insert() em uma aplicação com escopo, use o método com escopo correspondente: insert().

    GlideRecord – inserirWithReferences()

    Insere um novo registro e também insere ou atualiza todos os registros relacionados com as informações fornecidas.

    Tabela 100. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 101. Retorna
    Tipo Descrição
    Cadeia de caracteres sys_id do registro inserido ou nulo se o registro não foi inserido.

    Se um valor de referência não for especificado (conforme abaixo), um novo registro de usuário será criado com o first_name e o last_name fornecidos, e o valor de caller_id será definido como este registro sys_user recém-criado. O resultado é um novo registro sys_user com o first_name e last_name fornecidos e um novo registro de incidente com o short_description e caller_id fornecidos.

    var inc = new GlideRecord('incident');
    inc.initialize();
    inc.short_description = 'New incident 1';
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.insertWithReferences();

    Se um valor de caller_id for especificado, esse caller_id será atualizado com o first_name e o last_name fornecidos. O resultado é um registro de incidente recém-criado com valores definidos para short_description e caller_id.

    var inc = new GlideRecord('incident');
    inc.initialize();
    inc.short_description = 'New incident 1';
    inc.caller_id.setDisplayValue('David Loo');
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.insertWithReferences();

    GlideRecord - instanceOf(cadeia de caracteres "className")

    Verifica uma tabela para o tipo\classe da tabela.

    Tabela 102. Parâmetros
    Nome Tipo Descrição
    className Cadeia de caracteres Nome de um tipo ou classe de registro.
    Tabela 103. Retorna
    Tipo Descrição
    Booliano Verdadeiro se a tabela for uma instância da classe especificada.

    Este exemplo verifica se o grupo/usuário passado é do tipo de tabela/classe sys_user.

    function(groupOrUser, label, grantedBy) {
      var labelCheck;
      var labelRecord;
      if (typeof label === "string") {
        labelRecord = new GlideRecord('label');
        labelRecord.addQuery('name', label);
        labelRecord.query();
        labelRecord.next();
      } else {
        labelRecord = label;
      }
      if (groupOrUser.instanceOf('sys_user')) {
        labelCheck = new GlideRecord('label_user_m2m');
        labelCheck.addQuery('user', groupOrUser.sys_id);
      } else {
        labelCheck = new GlideRecord('label_group_m2m');
        labelCheck.addQuery('group', groupOrUser.sys_id);
      }
      labelCheck.addQuery('label', labelRecord.sys_id);
      if (grantedBy !== "undefined") {
        labelCheck.addQuery('granted_by', grantedBy.sys_id);
      }
      labelCheck.query();
      return labelCheck.hasNext();
    }

    GlideRecord – isNewRecord()

    Determina se o registro atual foi inserido no banco de dados.

    Este método retorna verdadeiro somente se o método newRecord() tiver sido chamado. Este método é útil para ACL com script e na condição de ações de IU, mas não deve ser usado em scripts em segundo plano.

    Nota:
    Este método retorna verdadeiro para qualquer novo registro durante uma regra de negócios ou se o método newRecord() for usado para inicializar um registro com valores padrão e um ID exclusivo (sys_id). Em todos os outros casos, retorna falso.
    Tabela 104. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 105. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o registro atual é novo (não foi inserido no banco de dados).
    Valores possíveis:
    • verdadeiro: o registro é novo.
    • falso: o registro não é novo.

    Este exemplo verifica se o novo registro foi inserido na tabela sys_user.

    var now_GR = new GlideRecord("sys_user");
    now_GR.newRecord();
    now_GR.setValue("user_name", "John Smith");
    gs.print("Is this a new record: " + now_GR.isNewRecord());
    
    var now_GR2 = new GlideRecord("sys_user");
    now_GR2.addQuery("user_name", "Abel Tutor");
    now_GR2.query();
    now_GR2.next();
    gs.print("Is this a new record: " + now_GR2.isNewRecord());

    GlideRecord – isValid()

    Determina se a tabela GlideRecord atual existe.

    Tabela 106. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 107. Retorna
    Tipo Descrição
    Booliano Verdadeiro se a tabela existir (válida), caso contrário, falso.

    Este exemplo verifica se a tabela Incidente existe.

    var testTable = new GlideRecord('incident');
    gs.print(testTable.isValid());

    Equivalente com escopo

    Para usar o método isValid() em uma aplicação com escopo, use o método com escopo correspondente: isValid().

    GlideRecord - isValidField(cadeia de caracteres "fieldName")

    Determina se o campo especificado está definido na tabela GlideRecord atual.

    Tabela 108. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Nome de um campo a ser verificado.
    Tabela 109. Retorna
    Tipo Descrição
    Booliano Verdadeiro se o campo estiver definido na tabela, caso contrário, falso.

    Este exemplo verifica se o campo sys_class_name existe na tabela cmds_software_instance.

    var gobj = new GlideRecord('sys_db_object');
    gobj.addQuery('name','cmdb_software_instance');
    gobj.query();
    if (!gobj.next()) {
      var si = new GlideRecord('cmdb_software_instance');
      si.query();
      var count = 0;
      while (si.next()) {
        if (!si.isValidField('sys_class_name')) {
          var ci = new GlideRecord('cmdb_ci');
          ci.name = si.name;
          ci.setNewGuidValue(si.sys_id);
          ci.sys_class_name = 'cmdb_software_instance';
          ci.insert();
          count++;
        }
      }
    }

    Equivalente com escopo

    Para usar o método isValidField() em uma aplicação com escopo, use o método com escopo correspondente: isValidField().

    GlideRecord – isValidRecord()

    Determina se o registro atual é válido.

    Tabela 110. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 111. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o registro atual é válido.
    Valores válidos:
    • verdadeiro: o registro é válido.
    • falso: após o final do conjunto de registros.

    Este exemplo verifica se o identificador de registro pelo sys_id passado é um registro válido na tabela de ideias.

    function(sysId) {
      this.log('Inside acceptIdea sysId = ' + sysId);
      var now_GR = new GlideRecord('idea');
      now_GR.get(sysId);
      this.log('now_GR.isValidRecord() = ' + now_GR.isValidRecord());
      if(now_GR.isValidRecord()) {
        now_GR.setValue('state', 2);
        this.log('Updating gliderecord');
        this.log('gliderecord table name' + now_GR.getTableName());
        now_GR.update();
      }
    }

    Equivalente com escopo

    Para usar o método isValidRecord() em uma aplicação com escopo, use o método com escopo correspondente: isValidRecord().

    GlideRecord - newRecord()

    Cria um GlideRecord, define os valores padrão dos campos e atribui um ID exclusivo ao registro.

    Tabela 112. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 113. Retorna
    Tipo Descrição
    vazio

    Este exemplo verifica se o novo registro foi inserido na tabela sys_user.

    var now_GR = new GlideRecord("sys_user");
    now_GR.newRecord();
    now_GR.setValue("user_name", "John Smith");
    gs.print("Is this a new record: " + now_GR.isNewRecord());
    
    var now_GR2 = new GlideRecord("sys_user");
    now_GR2.addQuery("user_name", "Abel Tutor");
    now_GR2.query();
    now_GR2.next();
    gs.print("Is this a new record: " + now_GR2.isNewRecord());

    Equivalente com escopo

    Para usar o método newRecord() em uma aplicação com escopo, use o método com escopo correspondente: newRecord().

    GlideRecord – next()

    Move para o próximo registro no GlideRecord.

    Use este método para iterar os registros retornados por uma consulta GlideRecord.

    Nota:
    Este método falhará se houver um campo na tabela chamado "próximo". Se for esse o caso, use o método _next().
    Nota:
    A construção if(myObj.next()) processa somente o primeiro registro retornado.
    Tabela 114. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 115. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se há um registro "próximo" no GlideRecord.
    Valores válidos:
    • verdadeiro: a movimentação para o próximo registro foi bem-sucedida.
    • falso: não há mais registros no conjunto de resultados.

    Este exemplo mostra como iterar na tabela Incidente usando o método next().

    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) { 
      gs.print(rec.number + ' exists');
    }

    Equivalente com escopo

    Para usar o método next() em uma aplicação com escopo, use o método com escopo correspondente: next().

    GlideRecord – _next()

    Move para o próximo registro no GlideRecord. Fornece a mesma funcionalidade que next(), destinada a ser usada nos casos em que o GlideRecord tem uma coluna chamada next.

    Tabela 116. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 117. Retorna
    Tipo Descrição
    Booliano Verdadeiro se houver mais registros no conjunto de consultas.
    var rec = new GlideRecord('sys_template');
    rec.query();
    while (rec._next()) { 
      gs.print(rec.number + ' exists');
    }

    Equivalente com escopo

    Para usar o método _next() em uma aplicação com escopo, use o método com escopo correspondente: _next().

    GlideRecord - operação ()

    Determina se uma operação é inserir, atualizar ou excluir.

    Conhecer a operação permite usar current.operation() para criar uma regra de negócios genérica que pode lidar com cada operação de forma exclusiva.

    Para obter informações sobre como usar a variável global current, consulte Variáveis globais em regras de negócio.

    Tabela 118. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 119. Retorna
    Tipo Descrição
    Cadeia de caracteres A operação atual.
    Valores possíveis:
    • excluir
    • inserir
    • atualizar

    O exemplo a seguir mostra como usar esse método em uma regra de negócios. O método operação () detecta qual operação acionou um evento e executa uma ação diferente, dependendo das operações de atualização e inserção.

    if(current.operation() == "update") {
      current.updates ++; } 
    if(current.operation() == "insert") {
      current.updates = 0; }

    Este exemplo mostra como usar o método operação () para passar o valor da operação para o método startFlow ().

    function createNewTransferOrder() {
      var toGr = new GlideRecord("alm_transfer_order");
      toGr.initialize();
      // From Stockroom - Southern California Warehouse
      toGr.setValue('from_stockroom', fromStockroomSysId);
      // To Stockroom - San Diego North - Pickup/Dropoff
      toGr.setValue('to_stockroom', toStockroomSysId);
      var transferOrder = toGr.insert();
    
      if(toGr.get(transferOrder)){
      // Start Transfer Order Workflow
      var wf = new Workflow();
      var context = wf.startFlow(toWorkflowSysId, toGr, toGr.operation(),{});
        createNewTransferOrderLine(transferOrder);
      } 
    }

    Equivalente com escopo

    Para usar o método operação () em uma aplicação com escopo, use o método com escopo correspondente: operação ().

    GlideRecord - orderBy(cadeia de caracteres "fieldName")

    Especifica um nome de campo a ser usado para solicitar o conjunto de consultas. Para ordenar por vários campos, chame este método várias vezes com diferentes valores de campo.

    Tabela 120. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Campo para solicitar o conjunto de consulta.
    Tabela 121. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como ordenar a consulta definida por "ordem" e, em seguida, por "número".

    function UpdateProjectWBS(project) {
      var count = 0;
      var child = new GlideRecord('pm_project_task');
      child.addQuery('parent', project.sys_id);
      child.orderBy('order');
      child.orderBy('number');
      child.query();
      var len = child.getRowCount().toString().length;
      var seq = 0;
      while (child.next()) {
        count += UpdateProjectTaskWBS(child, 1, ++seq, len, '');
      }
      gs.addInfoMessage(count + ' Project Tasks updated');
    }

    Equivalente com escopo

    Para usar o método orderBy() em uma aplicação com escopo, use o método com escopo correspondente: orderBy().

    GlideRecord - orderByDesc(cadeia de caracteres, fieldName)

    Especifica o campo a ser usado para ordenar o conjunto de consultas em ordem decrescente.

    Tabela 122. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Nome do campo a ser usado para ordenar os resultados da consulta em ordem decrescente.
    Tabela 123. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como ordenar o conjunto de consultas em ordem crescente ou decrescente.

    function(fiscalType, orderByDesc) {
      var now_GR = new GlideRecord('fiscal_period');
      now_GR.addQuery('fiscal_type', fiscalType);
      if (orderByDesc) {
        now_GR.orderByDesc('fiscal_start_date_time');
      } else {
        now_GR.orderBy('fiscal_start_date_time');
      }
      now_GR.setLimit(1);
      now_GR.query();
      now_GR.next();
      return now_GR.sys_id;
    }

    Equivalente com escopo

    Para usar o método orderByDesc() em uma aplicação com escopo, use o método com escopo correspondente: orderByDesc().

    GlideRecord - query(campo de cadeia de caracteres, valor de cadeia de caracteres)

    Executa uma consulta na tabela com base nos filtros especificados por métodos de consulta, como addQuery() e addEncodedQuery().

    Este método consulta a tabela GlideRecord, bem como quaisquer referências da tabela. Para obter mais informações, consulte Consulta de tabelas no script.

    Nota:
    Este método falhará se houver um campo na tabela chamado "consulta". Se for esse o caso, use o método _query(). Para executar consultas em uma instância separada por domínio, use o método queryNoDomain().

    Consulte o artigo GlideRecord para obter detalhes sobre como criar e executar consultas.

    Tabela 124. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Opcional - também deve especificar o parâmetro de valor. Nome do campo para pesquisar o valor especificado no parâmetro de valor.
    Nota:
    Este método normalmente é executado sem argumentos, mas você pode especificar um par nome-valor para filtrar registros que contêm os valores especificados. Se os parâmetros forem especificados, a condição "name=value" será adicionada à consulta.
    valor Cadeia de caracteres Opcional - também deve especificar o parâmetro de campo. Valor a ser pesquisado no parâmetro de campo especificado.
    Tabela 125. Retorna
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como verificar o Dicionário do sistema [sys_dictionary] em busca de tabelas com um campo de consulta.

    var tableArr = [];
    
    var now_GR = new GlideRecord('sys_dictionary');
    now_GR.addQuery('element', 'query');
    now_GR.setLimit(6);
    
    now_GR.query();
    
    while(now_GR.next()){
       tableArr.push(now_GR.name.getValue());
    };
    
    gs.info('The following tables have a field column called "query":');
    
    for (i = 0; i < tableArr.length; i++) {
       gs.info(tableArr[i]);
    };

    Saída:

    The following tables have a field column called "query":
    cmdb_convert_bulk_services
    cmdb_multisource_query_status
    cmdb_qb_result_base
    cmdb_qb_table_mapping
    discovery_probes_cim_query
    kb_feedback

    Equivalente com escopo

    Para usar o método query() em uma aplicação com escopo, use o método com escopo correspondente: query().

    GlideRecord - _query(cadeia de caracteres campo, cadeia de caracteres valor)

    Executa uma consulta na tabela com base nos filtros especificados por métodos de consulta, como addQuery() e addEncodedQuery(). Este método deve ser usado em tabelas nas quais há uma coluna chamada "consulta", o que pode causar erros ao executar o método query().

    Este método consulta a tabela GlideRecord, bem como quaisquer referências da tabela. Para obter mais informações, consulte Consulta de tabelas no script.

    Consulte o artigo GlideRecord para obter detalhes sobre como criar e executar consultas.

    Tabela 126. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Opcional - também deve especificar o parâmetro de valor. Nome do campo para pesquisar o valor especificado no parâmetro de valor.
    Nota:
    Este método normalmente é executado sem argumentos, mas você pode especificar um par nome-valor para filtrar registros que contêm os valores especificados. Se os parâmetros forem especificados, a condição "name=value" será adicionada à consulta.
    valor Cadeia de caracteres Opcional - também deve especificar o parâmetro de campo. Valor a ser pesquisado no parâmetro de campo especificado.
    Tabela 127. Retorna
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como consultar a tabela Feedback de conhecimento [kb_feedback] e listar artigos da base de conhecimento com comentários que incluem o Excel.

    var rec = new GlideRecord('kb_feedback');
    rec.addQuery('comments', 'CONTAINS', 'Excel');
    rec._query();
    while (rec.next()) { 
     gs.info(rec.getDisplayValue('article') + " comment: " + rec.getValue('comments'));
    }

    Saída:

    KB0000005 comment: 
    	     Can you please add the version of Excel this applies to? All?
    		
    KB0000005 comment: 
    	     Does this work for all Excel versions? OSX and Windows alike?

    Equivalente com escopo

    Para usar o método _query() em uma aplicação com escopo, use o método com escopo correspondente: _query().

    GlideRecord - queryNoDomain(campo de cadeia de caracteres, valor de cadeia de caracteres)

    Usado em instâncias separadas por domínio. Semelhante a query(), executa a consulta na tabela com base nos filtros especificados por addQuery() e addEncodedQuery(), mas ignora os domínios.

    Este método consulta a tabela GlideRecord, bem como quaisquer referências da tabela. Para obter mais informações, consulte Consulta de tabelas no script.

    Tabela 128. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Opcional - também deve especificar o parâmetro de valor. Nome do campo para pesquisar o valor especificado no parâmetro de valor.
    Nota:
    Este método normalmente é executado sem argumentos, mas você pode especificar um par nome-valor para filtrar registros que contêm os valores especificados. Se os parâmetros forem especificados, a condição "name=value" será adicionada à consulta.
    valor Cadeia de caracteres Opcional - também deve especificar o parâmetro de campo. Valor a ser pesquisado no parâmetro de campo especificado.
    Tabela 129. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como consultar a tabela de incidentes para todos os domínios.

    var rec = new GlideRecord('incident');
    rec.queryNoDomain();
    while (rec.next()) { 
     gs.print(rec.number + ' exists');
    }

    GlideRecord –storeLocation()

    Define o registro atual como o registro que foi salvo com saveLocation(). Se saveLocation() não tiver sido chamado, o registro atual será definido como o primeiro registro do GlideRecord.

    Tabela 130. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 131. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como salvar o local do registro atual, mover para o próximo registro e retornar ao local salvo.

    function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      now_GR.next();
      var firstID = now_GR.getValue("sys_id");
      now_GR.next();
      var restoreID = now_GR.getValue("sys_id");
      now_GR.saveLocation();
      now_GR.next();
      var lastID = now_GR.getValue("sys_id");
      now_GR.restoreLocation();
      now_GR.next();
      var thisID = now_GR.getValue("sys_id");
      var progress = "first id=" + firstID
        + "\n\t last id=" + lastID
        + "\n\t saved id=" + restoreID
        + "\n\t restored id=" + thisID;
      gs.print("Progress:\n\t" + progress);
    }

    GlideRecord – saveLocation()

    Salva o número da linha atual para que você possa retornar a este local usando o métodostoreLocation().

    Tabela 132. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 133. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como salvar o local do registro atual, mover para o próximo registro e retornar ao local salvo.

    function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      now_GR.next();
      var firstID = now_GR.getValue("sys_id");
      now_GR.next();
      var restoreID = now_GR.getValue("sys_id");
      now_GR.saveLocation();
      now_GR.next();
      var lastID = now_GR.getValue("sys_id");
      now_GR.restoreLocation();
      now_GR.next();
      var thisID = now_GR.getValue("sys_id");
      var progress = "first id=" + firstID
        + "\n\t last id=" + lastID
        + "\n\t saved id=" + restoreID
        + "\n\t restored id=" + thisID;
      gs.print("Progress:\n\t" + progress);
    }

    GlideRecord - setAbortAction(booliano b)

    Define um sinalizador para indicar se a próxima ação do banco de dados (inserir, atualizar, excluir) deve ser anulada.

    Use em uma regra de negócios onBefore para impedir que a ação do banco de dados seja concluída. A regra de negócios continua a ser executada depois que setAbortAction() é chamado. Chamar setAbortAction() não impede a execução das regras de negócios subsequentes. Chamar este método somente impede a ocorrência da ação do banco de dados.

    Tabela 134. Parâmetros
    Nome Tipo Descrição
    b Booliano Verdadeiro para anular a próxima ação ou falso para permitir a próxima ação.
    Tabela 135. Retorna
    Tipo Descrição
    vazio
    if ((!current.u_date1.nil()) && (!current.u_date2.nil())) {
      var start = current.u_date1.getGlideObject().getNumericValue();
      var end = current.u_date2.getGlideObject().getNumericValue();
      if (start > end) {
        gs.addInfoMessage('start must be before end');
        current.u_date1.setError('start must be before end');
        current.setAbortAction(true);
      }
    }

    Equivalente com escopo

    Para usar o método setAbortAction() em uma aplicação com escopo, use o método com escopo correspondente: setAbortAction().

    GlideRecord - setDisplayValue(cadeia de caracteres nome, valor do objeto)

    Define o campo especificado para o valor de exibição especificado.

    Para um campo de referência, este é o valor de exibição da tabela. Para uma data/hora, esta é a hora no fuso horário atual do solicitante.

    Tabela 136. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome do campo para o qual o valor de exibição será definido.
    valor Objeto Exibe o valor do campo especificado.
    Tabela 137. Retorna
    Tipo Descrição
    vazio
    var now_GR = new GlideRecord('incident');
    now_GR.get('46f09e75a9fe198100f4ffd8d366d17b');
    now_GR.setDisplayValue('opened_at','2011-02-13 4:30:00');
    now_GR.update();

    GlideRecord - setForceUpdate(boolean force)

    Atualiza o registro mesmo que os campos não tenham sido alterados.

    Tabela 138. Parâmetros
    Nome Tipo Descrição
    forçar Booliano Verdadeiro para atualizar mesmo se os campos não tiverem sido alterados, caso contrário, falso.
    Tabela 139. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como forçar um registro na tabela itfm_cost_model a ser atualizado mesmo sem mudanças.

    function() {
      gs.log("Update Script: Upgrade_cost_model_data.js started");
      var now_GR = new GlideRecord("itfm_cost_model");
      now_GR.initialize();
      now_GR.addNullQuery("source_table");
      now_GR.query();
      while (now_GR.next()) {
        now_GR.setForceUpdate(true);
        var sourceTable = getSourceTable(now_GR.getValue('clone_from'));
        if(sourceTable){
          now_GR.setValue("source_table", sourceTable);
          now_GR.setWorkflow(false);
          now_GR.update();
        }
      }
    }

    GlideRecord - setLimit(Number limit)

    Define o número máximo de registros a serem retornados no GlideRecord de uma consulta.

    Tabela 140. Parâmetros
    Nome Tipo Descrição
    limite Número Limite para registros a serem obtidos.
    Tabela 141. Retorna
    Tipo Descrição
    vazio

    Este exemplo define o número de registros retornados na consulta para um máximo de dez.

    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(10);
    now_GR.query();

    Equivalente com escopo

    Para usar o método setLimit() em uma aplicação com escopo, use o método com escopo correspondente: setLimit().

    GlideRecord - setLocation(Number rowNumber)

    Define o local da linha atual para o valor especificado.

    Tabela 142. Parâmetros
    Nome Tipo Descrição
    rowNumber Número Número de linha a ser definido como a linha atual.
    Tabela 143. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como definir a posição do registro na tabela Incidente

    verifySetLocation : function() {
      var now_GR = new GlideRecord("incident");
      now_GR.query();
      var recordIDs = new Array();
      while(now_GR.next()) {
      recordIDs.push(now_GR.getValue("sys_id"));
      }
      for (var ix = recordIDs.length - 1; ix >= 0; ix--) {
        now_GR.setLocation(ix);
        Assert.assertEquals(recordIDs[ix], now_GR.getValue("sys_id"),
          "The entry retrieved for the index " + ix + " is not valid");
      }
    }

    GlideRecord – setNewGuid()

    Gera um novo GUID e o define como o ID exclusivo (sys_id) do registro atual.

    Esta função se aplica somente a novos registros. Você não pode mudar o GUID de um registro existente.

    Tabela 144. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 145. Retorna
    Tipo Descrição
    Cadeia de caracteres Sys_id do registro atual.

    Este exemplo cria um novo registro de tarefa e armazena o ID na tabela task_rel_task.

    var task = new GlideRecord ('task');
    var tsk_id = task.setNewGuid();
     
    task.description = "Request: " + current.request.number;
    task.description = task.description + "\n" + "Requested by: " + current.request.u_requested_by.name;
    task.description = task.description + "\n" + "Requested for: " + current.request.u_requested_for.name;
    task.description = task.description + "\n" + "Item: " + current.cat_item.name;
     
    var now_GR = new GlideRecord ('task_rel_task');
    //link the incident to the request
    now_GR.parent = current.request;
    now_GR.child = tsk_id;
    now_GR.insert();

    GlideRecord - setNewGuidValue (Guid da cadeia de caracteres)

    Gera um novo GUID e o define como o ID exclusivo do registro atual, ao inserir um novo registro.

    Tabela 146. Parâmetros
    Nome Tipo Descrição
    guid Cadeia de caracteres Valor do novo GUID.
    Tabela 147. Retorna
    Tipo Descrição
    vazio

    Este exemplo gera um novo GUID e o define como o ID exclusivo do registro cmdb_software_instance recém-criado.

    var gobj = new GlideRecord('sys_db_object');
    gobj.addQuery('name','cmdb_software_instance');
    gobj.query();
    if (!gobj.next()) {
      var si = new GlideRecord('cmdb_software_instance');
      si.query();
      var count = 0;
      while (si.next()) {
      if (!si.isValidField('sys_class_name')) {
        var ci = new GlideRecord('cmdb_ci');
        ci.name = si.name;
        ci.setNewGuidValue(si.sys_id);
        ci.sys_class_name = 'cmdb_software_instance';
        ci.insert();
        count++;
      }
    }

    Equivalente com escopo

    Para usar o método setNewGuidValue() em uma aplicação com escopo, use o método com escopo correspondente: setNewGuidValue().

    GlideRecord - setQueryReferences(Boolean queryReferences)

    Habilita ou desabilita o uso do nome de exibição do campo de referência ao consultar um campo de referência.

    Tabela 148. Parâmetros
    Nome Tipo Descrição
    queryReferences Booliano Sinalizador que indica a hora dos dados a serem gerados.
    Valores válidos:
    • verdadeiro: gera uma cadeia de caracteres de nomes de exibição.
    • false: gera uma cadeia de caracteres de sys_ids.
    Tabela 149. Retorna
    Tipo Descrição
    vazio
    var grByName = new GlideRecord(this.TEST_TABLE);
    grByName.addQuery("caller_id", userDisplayName);
    grByName.setQueryReferences(true);
    grByName.query();
    if (grByName.hasNext()) {
      while(grByName.next()) {
        gs.print("Incident caller_id=" + grByName.caller_id);
      }
    } else {
      gs.print("NO RESULTS");
    }

    GlideRecord - setUseEngines(booliano e)

    Desabilita ou habilita a execução de qualquer mecanismo (regras de aprovação/regras de atribuição).

    Aviso:
    Desabilitar a execução de mecanismos pode ter um impacto significativo na sua instância ServiceNow® e no modo como ela opera. Certifique-se de testar completamente esta mudança antes de implantá-la na produção.
    Tabela 150. Parâmetros
    Nome Tipo Descrição
    e Booliano Sinalizador que indica se a execução de qualquer mecanismo deve ser habilitada ou desabilitada.
    Valores válidos:
    • verdadeiro: habilitar mecanismos
    • falso: desabilitar mecanismos
    Tabela 151. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como desabilitar mecanismos e regras de negócios antes de executar uma consulta.

    function auditOAuthInboundRequestsUsage(){
      var now_GR = new GlideRecord("oauth_credential");
      var oauthClient = now_GR.addJoinQuery("oauth_entity", "peer", "sys_id");
      now_GR.addQuery("type", "access_token");
      now_GR.addQuery("expires", ">", nowDateTime());
      now_GR.addNullQuery("oauth_requestor_profile");
      oauthClient.addCondition("active", "true");
      oauthClient.addCondition("type", "client");
      now_GR.setUseEngines(false);
      now_GR.setWorkflow(false);
      now_GR.query();
      return now_GR.hasNext();
    }

    GlideRecord - setValue(cadeia de caracteres nome, valor do objeto)

    Define o campo especificado para o valor especificado.

    Normalmente, um script faria uma atribuição direta, por exemplo, now_GR.category = value. No entanto, se em um script o nome do elemento for uma variável, você poderá usar now_GR.setValue(elementName, value). Ao definir um valor, certifique-se de que o tipo de dados do campo corresponda ao tipo de dados do valor inserido.

    Se o parâmetro de valor for nulo, o registro não será atualizado e um erro não será gerado.
    Nota:
    Este método não pode ser usado em campos de diário. Em vez disso, useGlideElement.setJournalEntry().
    Nota:
    Se o plug-in Criptografia em nível de coluna para empresas estiver habilitado e a instância tiver acesso à chave, este método poderá inserir dados criptografados em campos criptografados. Se a instância não tiver acesso à chave, este método retornará um erro. Para obter mais informações, consulte Platform Encryption.
    Tabela 152. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome do campo cujo valor você deseja definir.
    valor Objeto Valor a ser definido no campo especificado.
    Tabela 153. Retorna
    Tipo Descrição
    vazio

    Este exemplo mostra como definir o valor do campo de estado na tabela resolved_task.

    function() {
      var topTask = new GlideRecord('planned_task');
      topTask.setValue('state', -5);
      var childTask = new GlideRecord('planned_task');
      childTask.setValue('state', -5);
      var s = new PlannedTaskStateManagement(childTask, topTask);
      var state = s.manageStateChange(false);
      Assert.assertEquals("-5", state);
    }

    Equivalente com escopo

    Para usar o método setValue() em uma aplicação com escopo, use o método com escopo correspondente: setValue().

    GlideRecord - setWorkflow(booliano e)

    Habilita ou desabilita a execução de regras de negócios que normalmente podem ser acionadas por ações subsequentes. Se o parâmetro e estiver definido como falso, uma inserção/atualização não será auditada. A auditoria só acontece quando o parâmetro é definido como verdadeiro para uma operação GlideRecord.

    Nota:
    O método setWorkflow() é ignorado ao usar os métodos deleteProblem() ou deleteMultiple() para excluir em cascata.
    Aviso:
    Desabilitar a execução de regras de negócios pode ter um impacto significativo na sua instância ServiceNow® e na forma como ela opera. Certifique-se de testar completamente esta mudança antes de implantá-la na produção.
    Tabela 154. Parâmetros
    Nome Tipo Descrição
    e Booliano Sinalizador que indica se a execução de regras de negócios deve ser habilitada ou desabilitada.
    Valores válidos:
    • verdadeiro: habilitar regras de negócio
    • falso: desabilitar regras de negócio
    Tabela 155. Retorna
    Tipo Descrição
    vazio
    doit('name1','name2'); 
     
    function doit(username1,username2) { 
     
      var usr1 = new GlideRecord('sys_user');
      var usr2 = new GlideRecord('sys_user');
      var num = 0;
     
      if (usr1.get('user_name',username1) && usr2.get('user_name',username2)) {
        var ref;
        var dict = new GlideRecord('sys_dictionary');
        dict.addQuery('reference','sys_user');
        dict.addQuery('internal_type','reference');
        dict.query();
        while (dict.next()) {
          num = 0;
          ref = new GlideRecord(dict.name.toString());
          ref.addQuery(dict.element,usr1.sys_id);
          ref.query();
          while (ref.next()) {
            ref.setValue(dict.element.toString(),usr2.sys_id); 
            ref.setWorkflow(false);
            ref.update();
            num++;
          }
          if (num > 0) {
            gs.print(dict.element + ' changed from ' + usr1.user_name + 
              ' to ' + usr2.user_name + ' in ' + num + ' ' + dict.name + ' records');
          }
        }
      }
    }

    Equivalente com escopo

    Para usar o método setWorkflow() em uma aplicação com escopo, use o método com escopo correspondente: setWorkflow().

    GlideRecord - update(motivo do objeto)

    Atualiza o GlideRecord com todas as mudanças feitas. Se o registro não existir, ele será inserido.

    Tabela 156. Parâmetros
    Nome Tipo Descrição
    motivo Objeto Opcional. Motivo da atualização. O motivo aparece no registro de auditoria.
    Tabela 157. Retorna
    Tipo Descrição
    Cadeia de caracteres O sys_id do registro novo ou atualizado. Retorna nulo se a atualização falhar.

    Este exemplo atualiza um registro na tabela task_ci.

    var now_GR = new GlideRecord('task_ci');
    now_GR.addQuery();
    now_GR.query();
    var count = now_GR.getRowCount();
    if (count > 0) {
       var allocation = parseInt(10000 / count) / 100;
       while (now_GR.next()) {
          now_GR.u_allocation = allocation;
          now_GR.update();
       }
    }

    Equivalente com escopo

    Para usar o método update() em uma aplicação com escopo, use o método com escopo correspondente: update().

    GlideRecord – updateMultiple()

    Atualiza cada GlideRecord em uma consulta declarada com um conjunto especificado de mudanças.

    Para obter informações sobre como adicionar entradas de diário, consulte o método setJournalEntry().

    A propriedade do sistema glide.db.forced.chunk.threshold define o limite acima do qual força exclusões e atualizações de registros de bloco. A divisão em blocos ajuda a impedir que exclusões de chave não primária em tabelas grandes causem problemas de replicação. Para obter mais informações, consulte Available system properties.

    Nota:
    Para garantir os resultados esperados, use o método setValue () em vez de atribuições diretas. Ou seja, use gr.setValue(' <field_name> ', '4')); em vez de gr.= 4 .
    Nota:
    Não use este método com os métodos chooseWindow() ou setLimit() ao trabalhar com tabelas grandes.

    Este método define novos valores e não limpa os valores existentes. Para limpar um valor existente, use o método setValue() e defina o campo como null.

    Tabela 158. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 159. Retorna
    Tipo Descrição
    Nenhum

    Este exemplo mostra como atualizar o estado de todos os incidentes ativos para 4 - "Aguardando informações do usuário".

    var now_GR = new GlideRecord('incident');
    now_GR.addQuery('active', true);
    now_GR.setValue('state',  4);
    now_GR.updateMultiple();

    Equivalente com escopo

    Para usar o método updateMultiple() em uma aplicação com escopo, use o método com escopo correspondente: updateMultiple().

    GlideRecord - updateWithReferences(motivo do objeto)

    Atualiza um registro e também insere ou atualiza todos os registros relacionados com as informações fornecidas.

    Tabela 160. Parâmetros
    Nome Tipo Descrição
    motivo Objeto Motivo das atualizações. O motivo é exibido no registro de auditoria.
    Tabela 161. Retorna
    Tipo Descrição
    Cadeia de caracteres O sys_id do registro que está sendo atualizado.

    Se estiver processando um incidente em que o ID do chamador está definido para fazer referência ao registro sys_user "João da Silva", o código a seguir atualizará o registro do usuário de João da Silva. Se estiver processando um incidente em que não há ID de chamador especificado, o código a seguir criará um novo registro sys_user com as informações fornecidas (first_name, last_name) e definirá o valor de ID de chamador como o registro sys_user recém-criado.

    var inc = new GlideRecord('incident');
    inc.get(inc_sys_id);  // Looking up an existing incident record where 'inc_sys_id' represents the sys_id of a incident record
    inc.caller_id.first_name = 'John';
    inc.caller_id.last_name = 'Doe';
    inc.updateWithReferences();
    }