GlideRecord - Cliente
O GlideRecord é usado para operações de banco de dados. A API GlideRecord do lado do cliente permite o uso de algumas funcionalidades do GlideRecord em scripts do lado do cliente, como scripts de cliente e scripts de política de IU.
Um GlideRecord contém registros e campos. As consultas feitas com o GlideRecord do lado do cliente são executadas no servidor. Portanto, uma solicitação é feita do navegador do cliente para obter os dados de registro.
A API GlideRecord do lado do cliente não é compatível com aplicações com escopo. Em vez disso, crie uma inclusão de script e use a API GlideAjax ou use as REST APIs. Além disso, a API GlideRecord do lado do cliente aplica ACLs com base nas credenciais do usuário que está executando o script. Para executar o código no servidor sem ACLs, use a API GlideAJAX.
GlideRecorddo lado do cliente - 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');
GlideRecorddo lado do cliente - addOrderBy(coluna de cadeia de caracteres)
Adiciona uma coluna para ordenação na consulta.
| Nome | Tipo | Descrição |
|---|---|---|
| coluna | Cadeia de caracteres | A coluna pela qual solicitar o conjunto de resultados. |
| Tipo | Descrição |
|---|---|
| vazio |
GlideRecorddo lado do cliente - addQuery(cadeia de caracteres nome, valor do objeto)
Adiciona uma consulta para retornar registros em que o nome do campo especificado é igual a um valor especificado (ou está em uma lista de valores).
Se você estiver familiarizado com SQL, este método será semelhante à cláusula "where". Você pode criar uma ou mais consultas para um único filtro chamando este método várias vezes. para este método, as consultas são feitas com AND. Depois de definir todas as consultas desejadas, chame o GlideRecorddo lado do cliente - query (cadeia de caracteres name, Function responseFunction, String value) para executar a cláusula de consulta especificada (filtro).
Para executar uma operação diferente de E, use o método addQuery(cadeia de caracteres nome, operador de objeto, valor de objeto) ou o método setEncodedQuery().
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome do campo a ser verificado. |
| valor | Objeto | O valor ou a lista de valores a serem consultados. |
| Tipo | Descrição |
|---|---|
| vazio |
Exemplo mostrando várias consultas.
var now_GR = new GlideRecord('incident');
now_GR.addQuery('priority', 4); // Priority is 4 – Low and,
now_GR.addQuery('state', 3); // State is On Hold
now_GR.query(response);
function response(result) {
while(result.next()) {
// Print all INC with priority 4 – Low AND state is On Hold
console.log(result.getValue('number'));
}
}
Exemplo que mostra como passar um objeto de cadeia de caracteres.
var now_GR = new GlideRecord('incident');
now_GR.addQuery('short_description', new String('USB device not working')); // string object
now_GR.addQuery('priority', 4); //number
now_GR.query(response);
function response(result) {
while(result.next()) {
// Print all INC with priority 4 – Low AND short description contains 'USB device not working'
console.log(result.getValue('number'));
}
}
GlideRecorddo lado do cliente - addQuery(cadeia de caracteres nome, operador de objeto, valor de objeto)
Adiciona um filtro para retornar registros quando o campo atende à condição especificada (campo, operador, valor).
Se você estiver familiarizado com SQL, este método será semelhante à cláusula "where". Você pode criar uma ou mais consultas para um único filtro chamando este método várias vezes. Depois de definir todas as consultas desejadas, chame o GlideRecorddo lado do cliente - query (cadeia de caracteres name, Function responseFunction, String value) para executar a cláusula de consulta especificada (filtro).
Para criar consultas mais complexas, use o método setEncodedQuery().
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Nome do campo a ser verificado. |
| operador | Objeto | Operador de consulta. Os valores disponíveis dependem do tipo de dados do parâmetro de valor. Números:
Cadeias de caracteres (devem estar em maiúsculas):
Nota: Não use o operador LIKE. Em vez disso, use CONTÉM. |
| valor | Objeto | Valor a ser consultado (sem distinção entre maiúsculas e minúsculas). |
| Tipo | Descrição |
|---|---|
| vazio |
Exemplo que mostra como adicionar várias consultas a um filtro.
var now_GR = new GlideRecord('incident');
now_GR.addQuery('priority', '<=', 2); // Priority is 2 or higher and,
now_GR.addQuery('short_description', 'CONTAINS', 'crash'); // Short description contains the word crash
now_GR.query(response);
function response(result) {
while(result.next()) {
// Print all INC with priority of 2 or higher AND short description contains "crash"
console.log(result.getValue('number'));
}
}
Exemplo que mostra como passar uma matriz para verificar várias condições em uma única consulta.
var priorities = [4,2];
var now_GR = new GlideRecord('incident');
now_GR.addQuery('priority', 'IN', priorities);
now_GR.query(response);
function response(result) {
while(result.next()) {
console.log(result.getValue('number'));
}
}
GlideRecorddo lado do cliente - deleteRecord(Function responseFunction)
Exclui o registro atual e chama a função de resposta especificada ao concluir.
| Nome | Tipo | Descrição |
|---|---|---|
| Função de resposta | Função | Função de resposta para o retorno de chamada. |
| Tipo | Descrição |
|---|---|
| Nenhum |
Este exemplo exclui um registro e chama a função de resposta resposta para registrar uma mensagem de alerta.
var recordGR = new GlideRecord('incident');
if (recordGR.get('99ebb4156fa831005be8883e6b3ee4b9')) {
recordGR.deleteRecord(response);
}
function response(result) {
alert('Deleted record sys_id: ' + result.getValue('sys_id'));
}
Saída:
Deleted record sys_id: 99ebb4156fa831005be8883e6b3ee4b9
GlideRecorddo lado do cliente - get(cadeia de caracteres sys_id)
Executa uma consulta GlideRecord para um registro com o sys_id especificado. Espera-se que este método seja usado para consultar registros únicos, portanto, uma próxima operação será realizada antes de retornar.
| Nome | Tipo | Descrição |
|---|---|---|
| sys_id | Cadeia de caracteres | O sys_id do registro a ser encontrado. |
| Tipo | Descrição |
|---|---|
| Booliano | Verdadeiro se um ou mais registros correspondentes forem encontrados. Falso se nenhum registro for encontrado. |
GlideRecorddo lado do cliente – getEncodedQuery()
Recupera a condição de consulta do conjunto de resultados atual como uma cadeia de caracteres de consulta codificada.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Uma cadeia de caracteres de consulta codificada que contém todas as condições que foram adicionadas à consulta. |
GlideRecorddo lado do cliente – getLimit()
Retorna o limite de registros a serem retornados pela consulta GlideRecord.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Número | O limite dos registros a serem retornados pela consulta GlideRecord. |
GlideRecorddo lado do cliente – getTableName()
Recupera o nome da tabela associada a este GlideRecord.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | O nome da tabela |
var item = new GlideRecord('sc_request');
item.addQuery('sys_id', current.request);
item.query(itemResponse);
function itemResponse(item) {
alert('The table is ' + item.getTableName());
}
GlideRecorddo lado do cliente - hasNext()
Determina se há mais registros no GlideRecord.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Verdadeiro se houver mais registros no conjunto de consultas. |
GlideRecorddo lado do cliente - insert(Function responseFunction)
Insere um novo registro usando os valores de campo que foram definidos para o registro atual.
| Nome | Tipo | Descrição |
|---|---|---|
| Função de resposta | Função | Função a ser executada quando o registro for inserido. |
| Tipo | Descrição |
|---|---|
| Cadeia de caracteres | Sys_id do registro inserido ou nulo se o registro não foi inserido. |
var now_GR = new GlideRecord('incident');
now_GR.short_description = 'Learn about GlideRecord';
var recResponse = now_GR.insert(handleResponse);
function handleResponse(recResponse, answer) {
// Answer will be the sys_id of the created record or null
alert('Newly created sys_id is - ' + answer + ' exists');
}
GlideRecorddo lado do cliente - next()
Move para o próximo registro no GlideRecord.
| Nome | Tipo | Descrição |
|---|---|---|
| Nenhum |
| Tipo | Descrição |
|---|---|
| Booliano | Falso se não houver mais registros no conjunto de consultas. |
var rec = new GlideRecord('incident');
rec.query(recResponse);
function recResponse(rec) {
while (rec.next()) {
alert(rec.number + ' exists');
}
}
GlideRecorddo lado do cliente - orderBy(coluna de cadeia de caracteres)
Especifica uma coluna orderBy. Pode ser chamado mais de uma vez para ordenar por várias colunas.
| Nome | Tipo | Descrição |
|---|---|---|
| coluna | Cadeia de caracteres | O nome da coluna a ser usado para ordenar o conjunto de resultados. |
| Tipo | Descrição |
|---|---|
| vazio |
function UpdateProjectWBS(project) {
var count = 0;
var child = new GlideRecord('pm_project_task');
child.addQuery('parent', project.sys_id);
child.orderBy('order');
child.orderBy('number');
child.query(childResponse);
g_form.addInfoMessage(count + ' Project Tasks updated');
}
function childResponse(child) {
var len = child.getRowCount().toString().length;
var seq = 0;
while (child.next()) {
count += UpdateProjectTaskWBS(child, 1, ++seq, len, '');
}
}
GlideRecorddo lado do cliente - query (cadeia de caracteres name, Function responseFunction, String value)
Executa a consulta ao servidor na tabela com base no filtro addQuery(). Este método consulta a tabela GlideRecord, bem como quaisquer referências da tabela.
Não faça chamadas de consulta síncronas. Realizar uma consulta sem uma função de resposta torna a chamada síncrona, o que significa que a exibição aguardará a resposta da consulta antes de continuar.
| Nome | Tipo | Descrição |
|---|---|---|
| nome | Cadeia de caracteres | Opcional. O nome de um campo a ser consultado. |
| Função de resposta | Função | A função chamada quando os resultados da consulta estão disponíveis. |
| valor | Cadeia de caracteres | Opcional. O valor do campo a ser consultado. Qualquer par de literais é considerado um par de consulta (campo : valor). |
| Tipo | Descrição |
|---|---|
| vazio |
A seguir está um exemplo básico com uma função de resposta.
var rec = new GlideRecord('incident');
rec.query(recResponse);
function recResponse(rec) {
while (rec.next()) {
alert(rec.number + ' exists');
}
}
O exemplo a seguir mostra a diferença entre a sintaxe síncrona e assíncrona, com um exemplo assíncrono.
// synchronous call syntax (no response function): DO NOT USE
query();
// asynchronous call syntax
// performs query with current conditions, calls responseFunction when done
query(responseFunction)
// synchronous call syntax (no response function): DO NOT USE
// adds "category=hardware" to current query conditions and performs query
query('category', 'hardware')
// asynchronous call syntax
// adds "category=hardware" to current query conditions, performs query, and calls responseFunction when done
query('category', 'hardware', responseFunction)
// asynchronous call example
// adds "user_name=abel.tuter" to current query conditions, performs query, and calls defined response function when done
function onLoad() {
var now_GR = new GlideRecord("sys_user");
now_GR.query("user_name", "abel.tuter", function(now_GR) {
if (now_GR.next()) {
alert("You can access fields by name from the client API, just like in the server API:\n now_GR.name = " + now_GR.name);
alert("You can also access fields using getValue():\n now_GR.getValue(\"email\") = " + now_GR.getValue("email"));
if (now_GR.getDisplayValue) {
alert("In Service Portal, Mobile, and Agent Workspace, you can access a field's display value:\n now_GR.getDisplayValue(\"company\") = " + now_GR.getDisplayValue("company"));
} else {
alert("On the desktop, you cannot access a field's display value, but can get its sys_id:\n now_GR.company = " + now_GR.company);
}
alert("You cannot dot-walk in the client API:\n now_GR.company.name = " + now_GR.company.name);
}
});
}
GlideRecorddo lado do cliente - setEncodedQuery(cadeia de caracteres encodedQuery)
Adiciona uma cadeia de caracteres de consulta codificada especificada à cláusula de consulta atual.
Este método permite que você especifique filtros complexos (cadeias de caracteres de consulta codificadas) em uma única chamada de consulta, ao contrário de outros métodos addQuery() do lado do cliente. Depois de definir todas as consultas desejadas, chame o GlideRecorddo lado do cliente - query (cadeia de caracteres name, Function responseFunction, String value) para executar a cláusula de consulta especificada (filtro). Para obter informações adicionais sobre cadeias de caracteres de consulta codificadas, consulte Cadeias de caracteres de consulta codificadas.
Se você chamar este método várias vezes antes de chamar o método query(), as consultas serão combinadas com AND.
| Nome | Tipo | Descrição |
|---|---|---|
| encodedQuery | Cadeia de caracteres | Cadeia de caracteres de consulta codificada a ser adicionada à cláusula de consulta atual. |
| Tipo | Descrição |
|---|---|
| vazio |
var now_GR = new GlideRecord('incident');
now_GR.setEncodedQuery('priority=4^ORstate=3');
now_GR.query(response);
function response(result) {
while(result.next()) {
console.log(result.getValue('number'));
}
}
GlideRecorddo lado do cliente - setLimit(Number maxQuery)
Define o limite de quantos registros há no GlideRecord.
| Nome | Tipo | Descrição |
|---|---|---|
| maxQuery | Número | O limite para o número de registros a serem recuperados. |
| Tipo | Descrição |
|---|---|
| vazio |