GlideRecord - Com escopo

  • Versão de lançamento: Yokohama
  • Atualizado 30 de jan. de 2025
  • 50 min. de leitura
  • A API GlideRecord com escopo é 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 instanciar 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 uma classe que executa as mesmas funções que GlideRecord e impõe ACLs, consulte Como usar GlideRecordSecure.

    Sempre teste consultas em uma instância de subprodução 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 deleteMutiple() 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 verdadeira para que as consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rows está definido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da declaração de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.

    Recuperar valores de registros

    Na maioria dos casos, não use 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. A recuperação do 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 do campo:

    Se a referência com pontos por meio de um objeto GlideElement for necessária, 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 com escopo - addActiveQuery()

    Adiciona um filtro para retornar registros ativos.

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

    GlideRecord com escopo - addEncodedQuery(Consulta de cadeia de caracteres, booliano forceFieldACL)

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

    Sempre teste consultas em uma instância de subprodução 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 deleteMutiple() 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 verdadeira para que as consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rows está definido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da declaração de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.

    Tabela 3. Parâmetros
    Nome Tipo Descrição
    consulta Cadeia de caracteres Uma cadeia de caracteres de consulta codificada.
    imporACLDeCampo Booliano Opcional. Sinalizador que indica se devem ser impostas regras de ACL (Access Control List, lista de controle de acesso) de campo.
    Valores válidos:
    • verdadeiro: impõe ACLs de campo.
    • falso: não impõe ACLs de campo.

    Padrão: falso

    Tabela 4. Retornos
    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.getValue('number'));
    }

    GlideRecord com escopo - 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 5. Parâmetros
    Nome Tipo Descrição
    função Objeto Objeto GlideDBFunctionBuilder que define uma operação SQL.
    Tabela 6. Retornos
    Tipo Descrição
    vazio
    var functionBuilder = new GlideDBFunctionBuilder();
    var myAddingFunction = functionBuilder.add();
    myAddingFunction = functionBuilder.field('order');
    myAddingFunction = functionBuilder.field('priority');
    myAddingFunction = functionBuilder.build();
    
    // Query incidents in which order + priority is less than 5 and display that added value
    var now_GR = new GlideRecord('incident');
    now_GR.addFunction(myAddingFunction);
    now_GR.addQuery(myAddingFunction, '<', 5);
    now_GR.query();
    while(now_GR.next())
      gs.info(now_GR.getValue(myAddingFunction));

    Saída:

    1
    4
    3
    1
    1
    2
    1

    GlideRecord com escopo – addJoinQuery (cadeia de caracteres "joinTable", cadeia de caracteres primaryField, cadeia de caracteres "joinTableField")

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

    Você pode usar este método para encontrar todos os usuários que estão no grupo de banco de dados por meio da tabela Membro do grupo [sys_user_grmember] ou para encontrar todos os problemas que têm um incidente atribuído 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 consultas em uma instância de subprodução 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 deleteMutiple() 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 verdadeira para que as consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rows está definido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da declaração de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.

    Tabela 7. Parâmetros
    Nome Tipo Descrição
    tabela_combinação Cadeia de caracteres Nome da tabela a ser usada na junção, como 'incident'.
    primaryField Cadeia de caracteres Opcional. Nome do campo no GlideRecord a ser usado para ingressar no campo especificado no parâmetro joinTableField.

    Padrão: sys_id

    joinTableField Cadeia de caracteres Opcional. Nome do campo na tabela especificada em joinTable a ser usado para ingressar nas tabelas.

    Padrão: primeiro campo na tabela especificada em joinTable que é um campo de referência para a tabela GlideRecord atual.

    Tabela 8. Retornos
    Tipo Descrição
    GlideQueryCondition Filtro que lista os 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 inativos com incidentes associados.

    // Look for Problem records that have associated Incident records
    var now_GR = new GlideRecord('problem');
    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 output results
    while (now_GR.next()) {
    gs.info(now_GR.getValue('number'));
    }

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

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

    GlideRecord com escopo - addNotNullQuery(String fieldName)

    Um filtro que especifica registros em que o valor do campo passado no parâmetro não é nulo.

    Sempre teste consultas em uma instância de subprodução 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 deleteMutiple() 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 verdadeira para que as consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rows está definido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da declaração de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.

    Tabela 9. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres O nome do campo a ser verificado.
    Tabela 10. Retornos
    Tipo Descrição
    GlideQueryCondition Um filtro que especifica registros em que o valor do campo passado no 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 where short_description is not null
    while (target.next()) {   
         // add code here to process the incident record
    }

    GlideRecord com escopo - addNullQuery(String fieldName)

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

    Sempre teste consultas em uma instância de subprodução 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 deleteMutiple() 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 verdadeira para que as consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rows está definido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da declaração de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.

    Tabela 11. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres O nome do campo a ser verificado.
    Tabela 12. Retornos
    Tipo Descrição
    GlideQueryCondition A condição de consulta adicionada ao GlideRecord.
    var target = new GlideRecord('incident'); 
    target.addNullQuery('short_description');
    target.query();   // Issue the query to the database to get all records where short_description is null
    while (target.next()) {   
       // add code here to process the incident record
    }

    GlideRecord com escopo - addQuery(cadeia de caracteres consulta)

    Adiciona um filtro para retornar registros usando uma cadeia de caracteres de consulta codificada.

    Sempre teste consultas em uma instância de subprodução 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 deleteMutiple() 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 verdadeira para que as consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rows está definido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da declaração de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.

    Tabela 13. Parâmetros
    Nome Tipo Descrição
    consulta Cadeia de caracteres Uma cadeia de caracteres de consulta codificada.
    Tabela 14. Retornos
    Tipo Descrição
    GlideQueryCondition A condição de consulta adicionada ao GlideRecord.
    var rec = new GlideRecord('incident');
    rec.addQuery('active=true');
    rec.query();
    while (rec.next()) {
      rec.setValue('active', false);
      gs.info('Active incident ' + rec.getValue('number') + ' closed');
      rec.update();
    }

    GlideRecord com escopo - addQuery (nome da cadeia de caracteres, valor do objeto)

    Crie uma consulta de pesquisa e retorne as linhas 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; neste caso, as consultas são feitas com AND. Se alguma das instruções de consulta precisar ser OR, use o método GlideQueryConditionaddOrCondition().

    Quando addQuery() é chamado com apenas dois parâmetros, nome da tabela e valor de comparação, como myObj.addQuery('category','Hardware');, o operador será considerado "igual a".

    Sempre teste consultas em uma instância de subprodução 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 deleteMutiple() 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 verdadeira para que as consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rows está definido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da declaração de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.

    Tabela 15. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome do campo da tabela a ser consultado ou um dos seguintes nomes reservados:
    • 123TEXTQUERY321: adiciona um termo de pesquisa de cadeia de caracteres à consulta. Especifique a cadeia de caracteres que você deseja corresponder como o valor. Use esta opção para retornar registros com valores de campos que contêm a cadeia de caracteres de pesquisa. Esta opção pesquisa em todos os campos da tabela, que deve ser configurada para indexação e pesquisa. Para obter mais informações sobre como configurar tabelas para indexação e pesquisa, consulte Configuração de uma única tabela para indexação e pesquisa.
    • 123TEXTINDEXGROUP321: adiciona um grupo de índice de texto à consulta. Especifique o nome do grupo de índice de texto da tabela Grupos de índice de texto [ts_index_group] que você deseja consultar como o valor. Use esta opção para retornar resultados de pesquisa de uma das tabelas em um grupo de índice de texto, com pontuações de relevância de resultado normalizadas usando as configurações desse grupo de índice de texto. Para obter mais informações sobre como configurar grupos de índice de texto, consulte Configuração de várias tabelas para indexação e pesquisa.
    Nota:
    Para obter mais detalhes sobre o uso dos nomes reservados, consulte Consultando tabelas no script.
    valor Objeto Valor a ser consultado (sem distinção entre maiúsculas e minúsculas).
    Tabela 16. Retornos
    Tipo Descrição
    GlideQueryCondition Condição de consulta adicionada ao GlideRecord.

    Este exemplo de código mostra como consultar os registros ativos na tabela de incidentes e defini-los como inativos.

    var rec = new GlideRecord('incident');
    rec.addQuery('active', true);
    rec.query();
    while (rec.next()) {
      rec.setValue('active', false);
      rec.update();
    }

    Este exemplo de código adiciona uma consulta de registros que correspondem a "servidor de e-mail" na tabela kb_knowledge, com valores de relevância de resultado de pesquisa calculados usando configurações do grupo de índice de texto do portal.

    var now_GR = new GlideRecord("kb_knowledge);
    now_GR.addQuery("123TEXTQUERY321", "email server");
    now_GR.addQuery("123TEXTINDEXGROUP321", "portal");
    now_GR.query();

    GlideRecord com escopo - addQuery (nome da cadeia de caracteres, operador de cadeia de caracteres, valor do 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; neste caso, as consultas são feitas com AND. Se alguma das instruções de consulta precisar ser OR, use o método GlideQueryConditionaddOrCondition().

    Sempre teste consultas em uma instância de subprodução 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 deleteMutiple() 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 verdadeira para que as consultas com consultas codificadas inválidas não retornem registros. Em alguns casos, a consulta ainda pode retornar registros nos resultados da API, mesmo quando glide.invalid_query.returns_no_rows está definido como verdadeiro. Isso acontece em consultas em que um termo de consulta inválido é usado com um operador WHERE. Nessas consultas, o operador WHERE ignora os termos inválidos, mas ainda interpreta e retorna o restante da declaração de consulta. Para obter mais informações sobre esta propriedade do sistema e sua funcionalidade, consulte Available system properties.

    Tabela 17. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome do campo da tabela.
    operador Cadeia de caracteres 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
    • TERMINACOM
    • CONTÉM
    • NÃO CONTÉM
    • INSTÂNCIADE
    Nota:
    Use CONTÉM em vez do operador LIKE.
    valor Objeto Valor a ser consultado (sem distinção entre maiúsculas e minúsculas).
    Tabela 18. Retornos
    Tipo Descrição
    GlideQueryCondition A condição de consulta que foi adicionada 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.setValue('active', false);
      gs.info('Active incident ' + rec.getValue('number') + ' closed');
      rec.update();
    }

    Usando o operador IN.

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

    GlideRecord com escopo - addValue(cadeia de caracteres do 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 do banco de dados para o objeto GlideRecord atual.

    Normalmente, um objeto GlideRecord é gravado como um registro em um banco de dados. Os valores de campos 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 atomicamente.

    Por exemplo, quando o código a seguir é executado, o valor do campo u_count no banco de dados é 2.
    gs.info(now_GR.u_count); // "1" 
    now_GR.u_count += 1;
    now_GR.update();
    now_GR.get(now_GR.sys_id);
    gs.info(now_GR.u_count); // "2"
    Se outro usuário executar simultaneamente código idêntico, em vez de as duas operações adicionarem 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.info(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.info(now_GR.u_count); // "3", if executed concurrently with another user 
    Nota:
    O novo valor não é lido de volta 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.
    Tabela 19. Parâmetros
    Nome Tipo Descrição
    Assunto: Cadeia de caracteres Nome do campo neste GlideRecord a ser modificado.
    Nota:
    O tipo de dados do campo associado deve ser um número inteiro. Este método não é compatível com outros tipos de dados, como longos.
    valor Números inteiros Quantidade a ser adicionada ao valor quando o registro for salvo. Para executar uma operação de subtração, basta passar um valor negativo.
    Tabela 20. Retornos
    Tipo Descrição
    vazio

    Mostra um valor que está sendo adicionado.

    gs.info(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.info(now_GR.u_count);

    Saída:

    2

    Mostra um valor que está sendo subtraído.

    gs.info(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.info(now_GR.u_count);

    Saída:

    3

    GlideRecord com escopo - applyEncodedQuery(String queryString)

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

    Tabela 21. Parâmetros
    Nome Tipo Descrição
    queryString Cadeia de caracteres Consulta codificada a ser aplicada ao GlideRecord atual.
    Tabela 22. Retornos
    Tipo Descrição
    Nenhum

    function createAcl(table, role) {
      gs.info("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.getValue('sys_id'), role);
        return;
      } else {
        now_GR.initialize();
        now_GR.applyEncodedQuery(encQuery);
        var acl = now_GR.insert();
        gs.info("Added read access control on " + table);
        createAclRole(acl, role);
      }
    }

    GlideRecord com escopo - canCreate()

    Determina se as Regras de controle de acesso, que incluem as funções do usuário, permitem a inserção de novos registros nesta tabela.

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

    Este exemplo de código grava se o usuário atual pode criar registros na tabela Incidente no log do sistema.

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canCreate());

    GlideRecord com escopo - canDelete()

    Determina se as Regras de controle de acesso, que incluem as funções do usuário, permitem a exclusão de registros nesta tabela.

    Tabela 25. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 26. 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: não é permitido excluir

    Este exemplo de código grava se o usuário atual pode excluir registros na tabela Incidente no log do sistema.

    var att = new GlideRecord('sys_attachment');
    gs.info(att.canDelete());

    GlideRecord com escopo - 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 com script e assim por diante.

    Tabela 27. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 28. 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 de código grava se o usuário atual pode ler registros na tabela Incidente no log do sistema.

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canRead());

    GlideRecord com escopo - canWrite()

    Determina se as Regras de controle de acesso, que incluem as funções do usuário, permitem a edição de registros nesta tabela.

    Tabela 29. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 30. 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 de código grava se o usuário atual pode gravar registros na tabela Incidente no log do sistema.

    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.canWrite());

    GlideRecord com escopo - chooseWindow(Number firstRow, Number lastRow, Booliano forceCount)

    Define um intervalo de linhas a serem retornadas por consultas subsequentes.

    Tabela 31. Parâmetros
    Nome Tipo Descrição
    firstRow Número Índice baseado em zero da linha inicial do intervalo, inclusive. (Um valor de 0 retorna a primeira linha.)
    últimaLinha Número Índice baseado em zero da linha final do intervalo, exclusivo.

    Por exemplo, se firstRow = 1 e lastRow = 5, quatro registros serão retornados (2-5).

    forçaContagem Booliano Opcional. Sinalizador que indica se uma consulta de contagem de linhas deve ser forçada. Na maioria das implementações desta chamada, a contagem de linhas é realizada. Há alguns casos periféricos, como pesquisas de texto, em que uma contagem de linhas não é realizada. Definir este sinalizador garante que a contagem de linhas ocorra.
    Valores válidos:
    • verdadeiro: a contagem de linhas sempre ocorre.
    • falso: a contagem de linhas ocorrerá se implementada na execução normal do método.

    Padrão: falso

    Tabela 32. Retornos
    Tipo Descrição
    vazio

    Este exemplo mostra como retornar os registros 3 e 4 da tabela Incidente [incidente].

    var now_GR = new GlideRecord('incident');
    now_GR.orderBy('number');
    now_GR.chooseWindow(2, 4);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('number') + ' is within window');
    }

    Saída:

    *** Script: INC0000003 is within window
    *** Script: INC0000004 is within window

    GlideRecord com escopo – deleteMutiple()

    Exclui todos os registros que atendem à consulta.

    Este método não exclui anexos.

    Não use deleteMutiple() 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 deleteMutiple(). 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 chaves não primárias em tabelas grandes causem problemas de replicação. Para obter mais informações, consulte Available system properties.

    Tabela 33. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 34. Retorna
    Tipo Descrição
    Nenhum(a)

    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();

    GlideRecord com escopo - deleteRecord()

    Exclui o registro atual.

    Tabela 35. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 36. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o registro foi excluído com sucesso.
    Valores válidos:
    • verdadeiro: o registro foi excluído.
    • falso: nenhum registro foi encontrado para excluir.

    Este exemplo mostra como excluir um registro especificado da tabela Incidente.

    var now_GR = new GlideRecord('incident');
    //to delete one record
    if (now_GR.get('99ebb4156fa831005be8883e6b3ee4b9'))
        now_GR.deleteRecord();

    Este exemplo mostra como excluir um registro da tabela Incidente imediatamente após sua inserção. O GlideRecord do incidente 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

    GlideRecord com escopo – disableSysIdInOptimization()

    Desabilita a otimização padrão que impede a execução de uma consulta ao banco de dados extra quando um usuário passa em um grande número de sys_ids, como grIncident.addQuery('sys_id', 'IN', listOf200SysIds).

    Este método afeta somente o GlideRecord no qual ele é chamado. Para modificar a otimização de limite de sys_id para todos os GlideRecords, ajuste o valor na propriedade do sistema glide.db.first_pass_sys_id_list_size.max (o padrão é 100).

    Se você não chamar este método ou ajustar a propriedade do sistema glide.db.first_pass_sys_id_list_size.max e aprovar uma lista que contenha mais entradas sys_id do que as definidas em glide.db.first_pass_sys_id_list_size.max, o valor retornado de GlideRecord.getRowCount() poderá estar incorreto.

    Tabela 37. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 38. Retorna
    Tipo Descrição
    Nenhum

    O exemplo de código a seguir mostra como usar o método disableSysIdInOptimoation() para desabilitar a otimização de limite de sys_id ao passar uma lista de sys_id de incidente que contém 200 entradas.

    var listOf200SysIds = [ ... ]; // 200 comma separated sys_ids
    var grIncident = new GlideRecord('incident');
    grIncident.addQuery('sys_id', 'IN', listOf200SysIds);
    grIncident.disableSysIdInOptimization(); // Rowcount could be incorrect without this method call
    grIncident.query();
    if (grIncident.next())
        gs.info("Rowcount: " + grIncident.getRowCount());

    Saída:

    Rowcount: 200

    GlideRecord com escopo - 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 39. 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 esse parâmetro é o sys_id ou o valor de exibição.
    valor Objeto Valor a ser correspondido. Para campos calculados, o valor é correspondido como está em vez de executar um cálculo em um valor padrão com script para um campo no registro.
    Tabela 40. Retornos
    Tipo Descrição
    Booliano Indica se o registro solicitado foi localizado:
    • verdadeiro: o registro foi encontrado
    • falso: o registro não foi encontrado

    Este exemplo mostra como obter 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.short_description); // logs Incident Short description

    Este exemplo mostra como obter um registro de incidente passando o campo a ser pesquisado (caller_id.name) e o valor a ser correspondido nesse campo.

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

    GlideRecord com escopo - getAttribute(String fieldName)

    Retorna os atributos do dicionário para o campo especificado.

    Tabela 41. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Nome do campo para o qual os atributos do dicionário serão retornados
    Tabela 42. Retornos
    Tipo Descrição
    Cadeia de caracteres Atributos do dicionário
    doit();
    function doit() {
      var now_GR = new GlideRecord('sys_user');
      now_GR.query("user_name","admin");
      if (now_GR.next()) {
        gs.info("we got one");
        gs.info(now_GR.location.getAttribute("tree_picker"));
      }
    }

    GlideRecord com escopo - getClassDisplayValue()

    Retorna o rótulo da tabela atual.

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

    Este exemplo imprime o rótulo da tabela aprovada.

    // 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.

    GlideRecord com escopo - 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 45. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 46. Retorna
    Tipo Descrição
    Cadeia de caracteres Valor de exibição 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

    GlideRecord com escopo - getED()

    Retorna o descritor do elemento.

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

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

    var grInc = new GlideRecord('incident');
    grInc.get('sys_id','ef43c6d40a0a0b5700c77f9bf387afe3');
    
    var field = grInc.getElement('priority');
    var ed = field.getED();
    
    var isEdge = ed.getLabel();
    gs.info("Label is - " + isEdge);
    Saída:
    Label is - Priority

    GlideRecord com escopo - getElement(String fieldName)

    Recupera o objeto GlideElement para o campo especificado.

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

    Na maioria dos casos, não use 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. A recuperação do 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 do campo:

    Se a referência com pontos por meio de um objeto GlideElement for necessária, 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();
    Tabela 49. Parâmetros
    Nome Tipo Descrição
    fieldName Cadeia de caracteres Nome da coluna para a qual o objeto GlideElement será retornado.
    Tabela 50. Retornos
    Tipo Descrição
    GlideElement O GlideElement para a coluna especificada do registro atual. Cada objeto descreve um campo no GlideRecord atual.

    O exemplo a seguir mostra como adicionar um novo registro de incidente com detalhes no campo Descrição resumida.

    var elementName = 'short_description'; 
    var now_GR = new GlideRecord('incident'); 
    now_GR.newRecord(); 
    now_GR.setValue(elementName, "My DB is not working");
    now_GR.insert();
     
    var sdesc = now_GR.getElement('short_description');
    gs.info(sdesc.getValue());

    Saída:

    My DB is not working

    GlideRecord com escopo - getElements()

    Retorna uma matriz de objetos GlideElement. Cada objeto descreve um campo no GlideRecord atual.

    Se a referência com pontos por meio de um objeto GlideElement for necessária, 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();
    Tabela 51. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 52. Retorna
    Tipo Descrição
    Matriz Matriz de objetos GlideElement. Cada objeto descreve um campo no GlideRecord atual.

    O exemplo a seguir exibe o valor do campo de nome dos cinco registros mais recentes criados na tabela Pergunta [question].

    var now_GR = new GlideRecord('question');
    var elementArr = now_GR.getElements();
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(5);
    now_GR.query();
    
    while (now_GR.next()){
      var qNames = now_GR.name.toString();
      elementArr.push(qNames);
      gs.info(qNames);
    }

    Saída:

    delivery_time_var
    delivery_time
    sequence
    priority
    assigned_group

    GlideRecord com escopo - 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 53. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 54. Retorna
    Tipo Descrição
    Cadeia de caracteres
    var now_GR = new GlideRecord('incident'); 
    now_GR.addQuery('active', true);
    now_GR.addQuery('priority', 1); 
    now_GR.query(); 
    var encodedQuery = now_GR.getEncodedQuery(); 
    gs.info(encodedQuery);

    Saída:

    active=true^priority=1

    GlideRecord com escopo - getLabel()

    Retorna o rótulo do campo.

    Tabela 55. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 56. Retorna
    Tipo Descrição
    Cadeia de caracteres Rótulo do campo
    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() + " = " 
            + now_V.getDisplayValue() + "\n");  
        }
      }
    }

    GlideRecord com escopo - getLastErrorMessage()

    Recupera a última mensagem de erro. Se não houver última mensagem de erro, será retornado nulo.

    Tabela 57. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 58. Retorna
    Tipo Descrição
    Cadeia de caracteres A última mensagem de erro como uma cadeia de caracteres.
    // Setup a data policy where short_description field in incident is mandatory
    var now_GR = new GlideRecord('incident');
    now_GR.insert(); // insert without data in mandatory field
    var errormessage = now_GR.getLastErrorMessage(); 
    gs.info(errormessage);

    Saída:

    Data Policy Exception: Short description is mandatory

    GlideRecord com escopo - getRecordClassName()

    Recupera o nome da classe do registro atual.

    Tabela 61. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 62. Retorna
    Tipo Descrição
    Cadeia de caracteres O nome da classe.
    var now_GR = new GlideRecord('incident'); 
    var recordClassName = now_GR.getRecordClassName(); 
    gs.info(recordClassName);

    Saída:

    incident

    GlideRecord com escopo - getRowCount()

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

    Nota:
    GlideRecord retorna registros correspondentes, portanto, pode não ser tão eficiente quanto GlideAggregate quando você só precisa do número de registros. Se você só precisar de uma contagem de registros e não estiver iterando sobre os 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() é 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.

    Nota:
    Se você quiser usar o método getRowCount() ao usar sys_id IN com mais de 100 valores de sys_id, como grIncident.addQuery('sys_id', 'IN', listOf200SysIds), você deve:
    • Chame o método disableSysIdInOptimization() no GlideRecord.
    • Ou ajuste a propriedade do sistema glide.db.first_pass_sys_id_list_size.max para um valor maior que o número de sys_ids na lista.
    Além disso, certifique-se de chamar o método .next() antes de chamar o método getRowCount().
    Tabela 63. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 64. 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

    O exemplo de código a seguir mostra como usar o método disableSysIdInOptimoation() para desabilitar a otimização de limite de sys_id ao passar uma lista de sys_id de incidente que contém 200 entradas.

    var listOf200SysIds = [ ... ]; // 200 comma separated sys_ids
    var grIncident = new GlideRecord('incident');
    grIncident.addQuery('sys_id', 'IN', listOf200SysIds);
    grIncident.disableSysIdInOptimization(); // Rowcount could be incorrect without this method call
    grIncident.query();
    if (grIncident.next())
        gs.info("Rowcount: " + grIncident.getRowCount());

    Saída:

    Rowcount: 200

    GlideRecord com escopo - getTableName()

    Recupera o nome da tabela associada ao GlideRecord.

    Tabela 65. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 66. Retorna
    Tipo Descrição
    Cadeia de caracteres O nome da tabela
    var now_GR = new GlideRecord('incident');
    gs.info(now_GR.getTableName());

    GlideRecord com escopo - getUniqueValue()

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

    Tabela 67. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 68. 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 com escopo - getValue(String name)

    Recupera o valor da cadeia de caracteres de um elemento subjacente em um campo.

    Nota:
    Se o plug-in Criptografia de campo Enterprise 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 Criptografia da plataforma.
    Tabela 69. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres O nome do campo do qual o valor será obtido.
    Tabela 70. Retornos
    Tipo Descrição
    Cadeia de caracteres O valor da cadeia de caracteres do elemento subjacente. Retorna nulo se o campo estiver vazio ou se o campo não existir. Os valores boolianos retornam como valores de cadeia de caracteres "0" e "1" em vez de falso e verdadeiro.
    var now_GR = new GlideRecord('incident'); 
    now_GR.orderBy('number');
    now_GR.query('active','true'); 
    now_GR.next(); 
    gs.info(now_GR.getValue('number'));

    Saída:

    INC0000002

    GlideRecord com escopo - GlideRecord(cadeia de caracteres "tableName")

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

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

    GlideRecord com escopo - hasNext()

    Determina se há mais registros no objeto GlideRecord.

    Tabela 72. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 73. Retorna
    Tipo Descrição
    Booliano Verdadeiro se houver mais registros no conjunto de resultados da consulta.
    var rec = new GlideRecord('incident'); 
    rec.query(); 
    if (rec.hasNext()) { 
      gs.info("Table is not empty"); 
    }

    GlideRecord com escopo - insert()

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

    Tabela 74. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 75. Retorna
    Tipo Descrição
    Cadeia de caracteres Sys_id do registro inserido ou nulo se o registro não estiver inserido.
    var now_GR = new GlideRecord('incident');
    now_GR.initialize();
    now_GR.setValue('name', 'New Incident');
    now_GR.setValue('description', 'Incident description');
    now_GR.insert();

    Saída:

    138fb4111b4d4d907cf30d03cd4bcb57

    GlideRecord com escopo – initialize()

    Cria um registro vazio adequado para preenchimento antes de uma inserção.

    Tabela 76. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 77. Retorna
    Tipo Descrição
    vazio
    var grIncident = new GlideRecord('incident');
    grIncident.initialize();
    grIncident.setValue('short_description', 'New Incident');
    grIncident.setValue('description', 'Incident description');
    grIncident.insert();

    GlideRecord com escopo - isActionAborted()

    Verifica se a ação do banco de dados atual deve ser anulada.

    isActionAborted() é inicializado (definido como falso) para novos threads e pelo método next().

    Tabela 78. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 79. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se a ação do banco de dados atual deve ser anulada.
    Valores válidos:
    • verdadeiro: a ação do banco de dados atual deve ser anulada.
    • falso: a ação do banco de dados atual não deve ser anulada.
    var now_GR = new GlideRecord('incident');
     
    gs.info(now_GR.isActionAborted());

    Saída:

    false

    GlideRecord com escopo - isEncodedQueryValid(Consulta de cadeia de caracteres)

    Verifica se a consulta codificada especificada é válida.

    Se a consulta codificada especificada for válida, a consulta será aplicada, como se você tivesse chamado addEncodedQuery(). Se a consulta codificada especificada for inválida, sys_idNotValidnull será adicionado como a consulta codificada.

    Nota:
    Este método foi descontinuado e substituído pelo método isValidEncodedQuery(), que não executa a consulta.
    Tabela 80. Parâmetros
    Nome Tipo Descrição
    consulta Cadeia de caracteres Consulta codificada para validar. Consulte Cadeias de caracteres de consulta codificadas.
    Tabela 81. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se a consulta codificada especificada é válida.
    • verdadeiro: a consulta codificada aprovada é válida.
    • falso: a consulta codificada aprovada não é válida.

    Este exemplo de código mostra como validar uma consulta codificada e executar a lógica se a consulta for válida.

    var now_GR = new GlideRecord('incident_sla');
    var isValidQuery = now_GR.isEncodedQueryValid('inc_impact=1^taskslatable_active=true');
    if (isValidQuery) {
      now_GR.query();
      .
      .
      .
    }

    GlideRecord com escopo - isNewRecord()

    Verifica se o registro atual é um novo registro que ainda não foi inserido no banco de dados.

    Tabela 82. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 83. Retorna
    Tipo Descrição
    Booliano Verdadeiro se o registro for novo e não tiver sido inserido no banco de dados.
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.newRecord(); // create a new record and populate it with default values
    gs.info(now_GR.isNewRecord());

    GlideRecord com escopo - isValid()

    Determina se a tabela atual é válida ou se o registro foi recuperado com sucesso.

    Tabela 84. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 85. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se a tabela é válida ou se o registro foi recuperado com sucesso.
    Valores possíveis:
    • verdadeiro: a tabela é válida ou o registro foi recuperado com sucesso.
    • falso: a tabela é inválida ou o registro não foi recuperado com sucesso.
    var comment_GR = new GlideRecord('cf_comment');
    var commentId = '99ebb4156fa831005be8883e6b3ee4b9';
    comment_GR.get(commentId);
    gs.info(comment_GR.isValid());

    GlideRecord com escopo - isValidEncodedQuery(cadeia de caracteres consulta)

    Verifica se a sintaxe da consulta codificada está correta.

    Ao passar uma cadeia de caracteres vazia ("") como a consulta de fornecimento:
    • A cadeia de caracteres vazia ("") representa a ausência de uma consulta e retorna falso.
    • Chamar GlideRecord.addEncodedQuery ("") seguido por GlideRecord.query() retorna todas as linhas. O método de consulta é semelhante a uma instrução SQL SELECT. No SQL, ao usar "SELECT * FROM foo WHERE X", o valor X representa a consulta. Se nenhum valor de consulta for fornecido, todos os registros serão retornados (por exemplo, SELECT * FROM foo).
    Tabela 86. Parâmetros
    Nome Tipo Descrição
    consulta Cadeia de caracteres Consulta codificada para validar. Consulte Cadeias de caracteres de consulta codificadas.
    Tabela 87. Retornos
    Tipo Descrição
    Booliano Sinalizador que indica se a consulta codificada especificada é válida.
    • verdadeiro: a consulta codificada aprovada é válida.
    • falso: a consulta codificada aprovada não é válida.

    Este exemplo de código mostra como verificar se a consulta codificada é válida.

    var queryString = "priority=1^ORpriority=2";
    var now_GR = new GlideRecord('incident');
    var isValidQuery = now_GR.isValidEncodedQuery(queryString);
    if (isValidQuery) {
      now_GR.addEncodedQuery(queryString);
      now_GR.query();
      .
      .
      .
    }

    GlideRecord com escopo - isValidField(cadeia de caracteres columnName)

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

    Tabela 88. Parâmetros
    Nome Tipo Descrição
    columnName Cadeia de caracteres O nome do campo.
    Tabela 89. Retornos
    Tipo Descrição
    Booliano Verdadeiro se o campo estiver definido para a tabela atual.
    var now_GR = new GlideRecord('incident'); 
    now_GR.initialize(); 
    gs.info(now_GR.isValidField("short_description"));

    GlideRecord com escopo - isValidRecord()

    Determina se um registro foi realmente retornado pela operação de consulta/obtenção de registro.

    Tabela 90. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 91. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se um registro foi realmente retornado pela operação de consulta/obtenção.
    Valores válidos:
    • verdadeiro: registro retornado pela operação de consulta/obtenção.
    • falso: fim do conjunto de registros, nenhum registro retornado.
    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) { 
      gs.info(rec.number + ' exists');
    }
    gs.info(rec.isValidRecord());

    GlideRecord com escopo - isView()

    Verifica se o registro foi criado em uma exibição ou em uma tabela.

    Tabela 92. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 93. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se o registro foi criado na tabela que é uma exibição.
    • verdadeiro: o registro foi criado em uma exibição.
    • falso: o registro foi criado em uma tabela.

    Este exemplo de código mostra como determinar se um GlideRecord foi criado em uma exibição ou em uma tabela.

    var mySLA = new GlideRecord('incident_sla');
    
    if (mySLA.isView() == true){
       gs.info('This record was created in a view.');
    } else {
       gs.info('This record was created in a table.');
    }

    Saída:

    This record was created in a view.

    GlideRecord com escopo - newRecord()

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

    Tabela 94. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 95. Retorna
    Tipo Descrição
    vazio
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.newRecord(); 
    gs.info(now_GR.isNewRecord());

    Saída:

    true

    GlideRecord com escopo - next()

    Move para o próximo registro no objeto 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().
    Tabela 96. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 97. 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.
    var rec = new GlideRecord('incident');
    rec.query();
    while (rec.next()) {
     gs.info(rec.getValue('number') + ' exists');
    }
    Saída:
    INC0010112 exists
    INC0010114 exists
    INC0010119 exists
    INC0010127 exists

    GlideRecord com escopo - _next()

    Move para o próximo registro no GlideRecord. Fornece a mesma funcionalidade que next(). Use este método se o GlideRecord tiver uma coluna chamada next.

    Tabela 98. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 99. Retorna
    Tipo Descrição
    Booliano Sinalizador que indica se há mais registros no conjunto de consultas.
    Valores possíveis:
    • verdadeiro: mais registros no conjunto de consultas.
    • falso: não há mais registros no conjunto de consultas.

    O exemplo a seguir mostra como listar cada registro na tabela Incidentes [incidente].

    var rec = new GlideRecord('incident');
    rec.query();
    while (rec._next()) {
      gs.info(rec.getValue('number') + ' exists');
    }

    Saída:

    INC0000060 exists
    INC0009002 exists
    INC0000009 exists
    INC0000010 exists
    INC0000011 exists
    INC0000012 exists
    ...

    GlideRecord com escopo - operação ()

    Determina se uma operação é de inserção, atualização ou exclusão.

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

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

    Tabela 100. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 101. 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ócio. 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; }

    GlideRecord com escopo - orderBy(String name)

    Especifica uma coluna orderBy.

    Chame este método mais de uma vez para ordenar por várias colunas. Os resultados são organizados em ordem crescente. Para organizar os registros em ordem decrescente, consulte GlideRecord com escopo - orderByDesc(String name).

    Tabela 102. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da coluna a ser usada para ordenar os registros neste objeto GlideRecord.
    Tabela 103. Retornos
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como ordenar registros de incidentes em ordem crescente por Descrição Resumida.

    var queryString = "priority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.orderBy('short_description'); // Ascending Order
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('short_description'));
    }

    Saída:

    Can't launch 64-bit Windows 7 virtual machine
    Can't log into SAP from my laptop today
    Network storage unavailable
    Please remove the latest hotfix from my PC

    GlideRecord com escopo - orderByDesc(String name)

    Especifica uma coluna orderBy decrescente.

    Chame este método mais de uma vez para ordenar por várias colunas. Os resultados são organizados em ordem decrescente. Para organizar os registros em ordem crescente, consulte GlideRecord com escopo - orderBy(String name).

    Tabela 104. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome da coluna a ser usada para ordenar os registros em um objeto GlideRecord.
    Tabela 105. Retornos
    Tipo Descrição
    vazio

    O exemplo a seguir mostra como ordenar registros de incidentes em ordem decrescente por Descrição Resumida.

    var queryString = "priority=2";
    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('short_description'); //Descending Order
    now_GR.addEncodedQuery(queryString);
    now_GR.query();
    while (now_GR.next()) {
      gs.info(now_GR.getValue('short_description'));
    }

    Saída:

    Please remove the latest hotfix from my PC
    Network storage unavailable
    Can't log into SAP from my laptop today
    Can't launch 64-bit Windows 7 virtual machine

    GlideRecord com escopo - consulta (campo de cadeia de caracteres, valor de cadeia de caracteres)

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

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

    Nota:
    Este método falhará se houver um campo na tabela chamado "consulta". Se for esse o caso, use o método_query().

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

    Tabela 106. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Opcional - também deve especificar um 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 de 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 um parâmetro de campo. Valor a ser pesquisado no parâmetro de campo especificado.
    Tabela 107. Retornos
    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

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

    Executa uma consulta na tabela com base nos filtros especificados nos 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 todas as referências da tabela. Para obter mais informações, consulte Consulta de tabelas em script.

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

    Tabela 108. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Opcional - também deve especificar um 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 de 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 um parâmetro de campo. Valor a ser pesquisado no parâmetro de campo especificado.
    Tabela 109. Retornos
    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?

    GlideRecord com escopo - setAbortAction(Booliano b)

    Define um sinalizador para indicar se a próxima ação do banco de dados (inserir, atualizar, excluir) deve ser anulada. Isso geralmente é usado em regras de negócio.

    Use em uma regra de negócio onBefore para impedir que a ação do banco de dados seja concluída. A regra de negócio continua a ser executada depois que setAbortAction() é chamado. Chamar setAbortAction() não interrompe a execução das regras de negócio subsequentes. Chamar este método apenas evita que a ação do banco de dados ocorra.

    Tabela 110. Parâmetros
    Nome Tipo Descrição
    b Booliano Verdadeiro para anular a próxima ação. Falso se a ação for permitida.
    Tabela 111. Retornos
    Tipo Descrição
    vazio
    // Often used in business rule to check whether the current operation should be aborted.
    if (current.size > 16) {
      current.setAbortAction(true);
    }

    GlideRecord com escopo - setLimit(Number maxNumRecords)

    Define o limite para o número de registros obtidos pela consulta GlideRecord.

    Tabela 112. Parâmetros
    Nome Tipo Descrição
    maxNumRegistros Número O número máximo de registros a serem buscados.
    Tabela 113. Retornos
    Tipo Descrição
    vazio
    var now_GR = new GlideRecord('incident');
    now_GR.orderByDesc('sys_created_on');
    now_GR.setLimit(10);
    now_GR.query(); // this retrieves latest 10 incident records created

    GlideRecord com escopo - setNewGuidValue(Guid de cadeia de caracteres)

    Define o valor de sys_id do registro atual.

    Tabela 114. Parâmetros
    Nome Tipo Descrição
    guid Cadeia de caracteres GUID a ser atribuído ao registro atual.
    Tabela 115. Retornos
    Tipo Descrição
    vazio
    var now_GR = new GlideRecord('incident');
    now_GR.setValue('short_description', 'The third floor printer is broken');
    now_GR.setNewGuidValue('eb4636ca6f6d31005be8883e6b3ee333');
    now_GR.insert();
    gs.info(now_GR.getValue('sys_id'));

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

    Define o valor do campo com o nome especificado para o valor especificado.

    Normalmente, o script faz um now_GR.category = value. No entanto, se 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.

    Nota:
    Se o plug-in Criptografia de campo Enterprise 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 Criptografia da plataforma.
    Não para autenticação com campos Password2
    O método setValue() passa os dados de password2 como texto não criptografado, o que resulta em um erro sobre a expectativa de dados criptografados. Além disso, o uso do método setValue() para campos password2 expõe dados que devem ser criptografados.

    Para autenticação password2, use o método setDisplayValue().

    Tabela 116. Parâmetros
    Nome Tipo Descrição
    nome Cadeia de caracteres Nome do campo.
    valor Objeto Valor a ser atribuído ao campo.
    Tabela 117. Retornos
    Tipo Descrição
    Nenhum
    var elementName = 'short_description'; 
    var now_GR = new GlideRecord('incident'); 
    now_GR.initialize(); 
    now_GR.setValue(elementName, "My DB is not working");
    now_GR.insert();

    GlideRecord com escopo - setWorkflow(Boolean enable)

    Habilita ou desabilita a execução de regras de negócio, mecanismos de script e auditoria.

    Aviso:
    Desabilitar a execução de regras de negócio, mecanismos de script e auditoria pode ter um impacto significativo na sua instância ServiceNow® e no modo como ela opera. Certifique-se de testar completamente essa mudança antes de implantá-la na produção.
    Nota:
    Este método não pode ser definido para aplicações com escopo cruzado. Para obter informações adicionais, consulte o seguinte artigo da base de conhecimento https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB0820691.
    Tabela 118. Parâmetros
    Nome Tipo Descrição
    ativar Booliano Sinalizador que indica se a execução de regras de negócio, mecanismos de script e auditoria deve ser habilitada ou desabilitada.
    Valores válidos:
    • verdadeiro: habilita a execução de regras de negócio, mecanismos de script e auditoria.
    • falso: desabilita a execução de regras de negócio, mecanismos de script e auditoria.

    Padrão: verdadeiro

    Tabela 119. Retornos
    Tipo Descrição
    vazio
    //Enable business rules, scripts engines for x_app_table
    var now_GR = new GlideRecord("x_app_table"); 
    now_GR.setWorkflow(true);

    GlideRecord com escopo - atualizar (motivo da cadeia de caracteres)

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

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

    O exemplo a seguir mostra como atualizar o campo Descrição resumida de um incidente.

    var now_GR = new GlideRecord('incident');
    now_GR.get('99ebb4156fa831005be8883e6b3ee4b9');
    now_GR.setValue('short_description', 'Update the short description');
    now_GR.update();
    gs.info(now_GR.getElement('short_description'));

    Saída:

    Update the short description.

    GlideRecord com escopo - updateMutiple()

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

    Este método não é compatível com a adição de várias entradas de registro.

    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 chaves não primárias 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_Now.setValue(' <field_name> ', '4')); em vez de gr_Now.= 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 nulo.

    Tabela 122. Parâmetros
    Nome Tipo Descrição
    Nenhum
    Tabela 123. Retorna
    Tipo Descrição
    Nenhum(a)

    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();

    GlideRecord com escopo - updateWithReferences(Motivo do objeto)

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

    Tabela 124. Parâmetros
    Nome Tipo Descrição
    motivo Objeto Motivo das atualizações. O motivo é exibido no registro de auditoria.
    Tabela 125. Retornos
    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 solicitante está definido para fazer referência ao registro sys_user 'John Doe', o código a seguir atualizará o registro de usuário de John Doe. 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 para 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();
    }