GlideRecord - com escopo
O GlideRecord com escopo é usado 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 uma classe que executa as mesmas funções que GlideRecord e impõe ACLs, consulte Uso de GlideRecordSecure.
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:
var mgr = current.caller_id.manager.toString();GlideRecord com escopo - addActiveQuery()
Adiciona um filtro para retornar registros ativos.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| GlideQueryCondition | Filtre para retornar registros ativos. |
var inc = new GlideRecord('incident');
inc.addActiveQuery();
inc.query();
GlideRecord com escopo - 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.
| Nome | Tipo | Descrição |
|---|---|---|
| consulta | Cadeia de caracteres | Uma cadeia de caracteres de consulta codificada. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| função | Objeto | Objeto GlideDBFunctionBuilder que define uma operação SQL. |
| 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 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.
| Nome | Tipo | Descrição |
|---|---|---|
| tabela de junção | Cadeia de caracteres | Nome da tabela a ser usada na associaçã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 associar as tabelas. Padrão: primeiro campo na tabela especificada em joinTable que é um campo de referência para a tabela GlideRecord atual. |
| 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(cadeia de caracteres fieldName)
Um filtro que especifica registros em que o valor do campo passado no parâmetro não é nulo.
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.
| Nome | Tipo | Descrição |
|---|---|---|
| fieldName | Cadeia de caracteres | O nome do campo a ser verificado. |
| 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(cadeia de caracteres "fieldName")
Adiciona um filtro para retornar registros em que o valor do campo especificado é nulo.
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.
| Nome | Tipo | Descrição |
|---|---|---|
| fieldName | Cadeia de caracteres | O nome do campo a ser verificado. |
| 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 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.
| Nome | Tipo | Descrição |
|---|---|---|
| consulta | Cadeia de caracteres | Uma cadeia de caracteres de consulta codificada. |
| 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(cadeia de caracteres name, Object value)
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 declaraçõ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 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.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome do campo da tabela a ser consultado ou um dos seguintes nomes reservados:
Nota: Para obter mais detalhes sobre o uso dos nomes reservados, consulte Consulta de tabelas no script. |
| valor | Objeto | Valor a ser consultado (sem distinção entre maiúsculas e minúsculas). |
| 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, em seguida, 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 ao "servidor de e-mail" na tabela kb_knowledge, com valores de relevância do resultado da 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(cadeia de caracteres nome, cadeia de caracteres operador, 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 declarações de consulta precisar ser OR, use o método GlideQueryConditionaddOrCondition().
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.
| 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):
Nota: Use CONTAINS em vez do operador LIKE. |
| valor | Objeto | Valor a ser consultado (sem distinção entre maiúsculas e minúsculas). |
| 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 field, Number value)
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.
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 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.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 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().
| 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 | Inteiro | O valor a ser adicionado ao valor quando o registro é salvo. Para executar uma operação de subtração, basta passar um valor negativo. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| cadeia de caracteres de consulta | Cadeia de caracteres | Consulta codificada a ser aplicada ao GlideRecord atual. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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:
|
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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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:
|
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 de script e assim por diante.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se as funções do usuário permitem a leitura de registros nesta tabela. Valores válidos:
|
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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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:
|
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/Global - chooseWindow(Number firstRow, Number lastRow, Boolean forceCount)
Define um intervalo de linhas a serem retornadas pelas consultas subsequentes.
| Nome | Tipo | Descrição |
|---|---|---|
| primeiraLinha | Número | Primeira linha a ser incluída. Como o índice começa em 0, um valor de 0 retorna a primeira linha. |
| últimaLinha | Número | Número de linha baseado em 0 da primeira linha a NÃO retornar. Comporta-se de forma semelhante ao método String.substring(a,b) do Java. Por exemplo, se lastRow = 4 e firstRow = 2, dois registros serão retornados (4-2). |
| 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:
Padrão: falso |
| Tipo | Descrição |
|---|---|
| vazio |
Este exemplo mostra o retorno dos registros 3 e 4 da tabela 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 – deleteMultiple()
Exclui todos os registros que atendem à consulta.
Este método não exclui anexos.
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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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();
GlideRecord com escopo – deleteRecord()
Exclui o registro atual.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o registro foi excluído com sucesso. Valores válidos:
|
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 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
GlideRecord com escopo - get(Object name, Object value)
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.
| 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 é o sys_id ou o valor de exibição. |
| valor | Objeto | Valor a ser correspondido. |
| Tipo | Descrição |
|---|---|
| Booliano | Indica se o registro solicitado foi localizado:
|
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(cadeia de caracteres fieldName)
Retorna os atributos do dicionário para o campo especificado.
| Nome | Tipo | Descrição |
|---|---|---|
| fieldName | Cadeia de caracteres | Nome do campo para o qual serão retornados os atributos do dicionário |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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.
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.
- 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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
GlideRecord com escopo - getED()
Retorna o descritor do elemento.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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);
Label is - PriorityGlideRecord com escopo - getElement(cadeia de caracteres 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 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:
var mgr = current.caller_id.manager.toString();| Nome | Tipo | Descrição |
|---|---|---|
| fieldName | Cadeia de caracteres | Nome da coluna para a qual o objeto GlideElement será retornado. |
| 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.
var mgr = current.caller_id.manager.toString();| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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 .
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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 nenhuma última mensagem de erro, será retornado nulo.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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 - getLink(Boolean noStack)
Recupera o link para o registro atual.
| Nome | Tipo | Descrição |
|---|---|---|
| sem pilha | Booliano | Sinalizador que indica se o parâmetro sysparm_stack deve ser anexado ao link retornado. Este parâmetro especifica a página a ser visitada após fechar o link atual. Valores válidos: Se for verdadeiro, o parâmetro sysparm_stack não será anexado ao link.
|
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Link para o registro atual. |
Este exemplo consulta todos os registros de incidentes com uma prioridade "1" e grava o URI do servlet e o link do registro atual no log do sistema.
var now_GR = new GlideRecord('incident');
now_GR.addActiveQuery();
now_GR.addQuery("priority", 1);
now_GR.query();
now_GR.next();
gs.info(gs.getProperty('glide.servlet.uri') + now_GR.getLink(false));
Saída:
https://instance.service-now.com/incident.do?sys_id=46e2fee9a9fe19810049b49dee0daf58&sysparm_stack=incident_list.do?sysparm_query=active=true
GlideRecord com escopo - getRecordClassName()
Recupera o nome da classe do registro atual.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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.
- 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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
GlideRecord com escopo - getTableName()
Recupera o nome da tabela associada ao GlideRecord.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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 especificado de outra forma.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | O nome do campo do qual o valor será obtido. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | O valor da cadeia de caracteres do elemento subjacente. Retornará 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.
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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 – inserir ()
Insere um novo registro usando os valores de campo que foram definidos para o registro atual.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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 – inicializar ()
Cria um registro vazio adequado para preenchimento antes de uma inserção.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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().
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se a ação do banco de dados atual deve ser anulada. Valores válidos:
|
var now_GR = new GlideRecord('incident');
gs.info(now_GR.isActionAborted());
Saída:
false
GlideRecord com escopo - isEncodedQueryValid(cadeia de caracteres consulta)
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.
| Nome | Tipo | Descrição |
|---|---|---|
| consulta | Cadeia de caracteres | Consulta codificada para validar. Consulte Cadeias de caracteres de consulta codificadas. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se a consulta codificada especificada é 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se a tabela é válida ou se o registro foi recuperado com sucesso. Valores possíveis:
|
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 consulta codificada especificada é válida.
| Nome | Tipo | Descrição |
|---|---|---|
| consulta | Cadeia de caracteres | Consulta codificada para validar. Consulte Cadeias de caracteres de consulta codificadas. |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se a consulta codificada especificada é 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 queryString = "priority=1^ORpriority=2";
var now_GR = new GlideRecord('incident');
var isValidQuery = now_GR.isEncodedQueryValid(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.
| Nome | Tipo | Descrição |
|---|---|---|
| columnName | Cadeia de caracteres | O nome do campo. |
| Tipo | Descrição |
|---|---|
| Booliano | Verdadeiro se o campo for 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se um registro foi realmente retornado pela operação de consulta/obtenção. Valores válidos:
|
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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se o registro foi criado na tabela que é uma exibição.
|
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 dos campos e atribui um ID exclusivo ao registro.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se há um registro "próximo" no GlideRecord. Valores válidos:
|
Exemplo
var rec = new GlideRecord('incident');
rec.query();
while (rec.next()) {
gs.info(rec.getValue('number') + ' exists');
}
INC0010112 exists
INC0010114 exists
INC0010119 exists
INC0010127 existsGlideRecord 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Sinalizador que indica se há mais registros no conjunto de consultas. Valores possíveis:
|
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 é 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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | A operação atual. Valores possíveis:
|
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; }
GlideRecord com escopo - orderBy(cadeia de caracteres 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(cadeia de caracteres name).
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome da coluna a ser usada para ordenar os registros neste objeto GlideRecord. |
| 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(cadeia de caracteres 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(cadeia de caracteres name).
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome da coluna a ser usada para ordenar os registros em um objeto GlideRecord. |
| 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 - 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.
Consulte o artigo GlideRecord para obter detalhes sobre como criar e executar consultas.
| 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. |
| 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 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.
| 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. |
| 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(Boolean 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ócios.
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.
| Nome | Tipo | Descrição |
|---|---|---|
| b | Booliano | Verdadeiro para anular a próxima ação. Falso se a ação for permitida. |
| 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.
| Nome | Tipo | Descrição |
|---|---|---|
| maxNumRecords | Número | O número máximo de registros a serem obtidos. |
| 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(String guid)
Define o valor de sys_id do registro atual.
| Nome | Tipo | Descrição |
|---|---|---|
| guid | Cadeia de caracteres | GUID a ser atribuído ao registro atual. |
| 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(cadeia de caracteres name, Object value)
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.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome do campo. |
| valor | Objeto | Valor a ser atribuído ao campo. |
| Tipo | Descrição |
|---|---|
| vazio |
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ócios, mecanismos de script e auditoria.
| Nome | Tipo | Descrição |
|---|---|---|
| ativar | Booliano | Sinalizador que indica se a execução de regras de negócios, mecanismos de script e auditoria deve ser habilitada ou desabilitada. Valores válidos:
|
| 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 feitas. Se o registro ainda não existir, ele será inserido.
| Nome | Tipo | Descrição |
|---|---|---|
| motivo | Cadeia de caracteres | Opcional. Motivo da atualização. O motivo aparece no registro de auditoria. |
| 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 – updateMultiple()
Atualiza cada GlideRecord em uma consulta declarada com um conjunto especificado de mudanças.
Este método não oferece suporte à 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 chave não primária em tabelas grandes causem problemas de replicação. Para obter mais informações, consulte Available system properties.
gr.setValue(' <field_name> ', '4')); em vez de gr.= 4 .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.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| 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();
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.
| Nome | Tipo | Descrição |
|---|---|---|
| motivo | Objeto | Motivo das atualizações. O motivo é exibido no registro de auditoria. |
| 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();
}