GlideRecord - Dans le champ d’application
Le GlideRecord inclus dans le champ d’application est utilisé pour les opérations de base de données.
L’API GlideRecord est le principal moyen d’interface avec la base de données sur le code côté serveur. Un objet GlideRecord est un objet qui contient les enregistrements d’une seule table. Utilisez l’API pour instancier un objet GlideRecord et ajouter des paramètres de requête, des filtres, des limites et un classement.
Consultez l’article GlideRecord pour plus d’informations sur la création et l’exécution de requêtes.
Pour plus d’informations sur une classe qui exécute les mêmes fonctions que GlideRecord et applique les ACL, consultez Utilisation de GlideRecordSecure.
Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, génère une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est abandonnée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(),update(), deleteRecord() ou deleteMultiple() sur des résultats de requête incorrects peut entraîner une perte de données.
Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai pour que les requêtes codées non valides ne renvoient aucun enregistrement.
Récupérer les valeurs à partir des enregistrements
Dans la plupart des cas, n’utilisez pas de remontée pas à pas pour obtenir les valeurs d’un enregistrement. La remontée pas à pas récupère l’objet entier au lieu de la valeur du champ. La récupération de l’objet utilise plus d’espace de stockage et peut entraîner des résultats indésirables lorsqu’elle est utilisée dans des tableaux ou dans Portail de services.
Au lieu de récupérer l’objet en entier, vous pouvez utiliser l’une des méthodes suivantes pour copier les valeurs de champ :
var mgr = current.caller_id.manager.toString();GlideRecord inclus dans le champ d’application : addActiveQuery()
Ajoute un filtre pour renvoyer les enregistrements actifs.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| GlideQueryCondition | Filtrer pour renvoyer les enregistrements actifs. |
var inc = new GlideRecord('incident');
inc.addActiveQuery();
inc.query();
GlideRecord inclus dans le périmètre : addEncodedQuery(requête de chaîne)
Ajoute une requête codée à d’autres requêtes qui ont peut-être été définies.
Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, génère une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est abandonnée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(),update(), deleteRecord() ou deleteMultiple() sur des résultats de requête incorrects peut entraîner une perte de données.
Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai pour que les requêtes codées non valides ne renvoient aucun enregistrement.
| Nom | Type | Description |
|---|---|---|
| query | Chaîne | Chaîne de requête codée. |
| Type | Description |
|---|---|
| nul |
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 inclus dans le champ d’application : addFunction(fonction d’objet)
Applique un objet GlideDBFunctionBuilder prédéfini à un enregistrement.
Utilisez la classe incluse dans le périmètre GlideDBFunctionBuilder pour définir une fonction. Une fois la fonction définie, utilisez la méthode addFunction(Object function) pour appliquer la fonction à un enregistrement.
| Nom | Type | Description |
|---|---|---|
| function | Objet | Objet GlideDBFunctionBuilder qui définit une opération SQL. |
| Type | Description |
|---|---|
| nul |
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));
Sortie :
1
4
3
1
1
2
1
GlideRecord inclus dans le champ d’application : addJoinQuery(String joinTable, String primaryField, String joinTableField)
Ajoute un filtre pour renvoyer les enregistrements en fonction d’une relation dans une table liée au GlideRecord actuel.
Vous pouvez utiliser cette méthode pour rechercher tous les utilisateurs présents dans le groupe de base de données via la table Membre du groupe [sys_user_grmember], ou pour rechercher tous les problèmes auxquels un incident est affecté via la relation incident.problem_id.
Il ne s’agit pas d’une véritable jointure de base de données ; à la place, addJoinQuery() ajoute une sous-requête. Ainsi, bien que le jeu de résultats soit limité en fonction de la jointure, les seuls champs auxquels vous avez accès sont ceux de la table de base (ceux qui se trouvent dans la table avec laquelle le GlideRecord a été initialisé).
Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, génère une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est abandonnée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(),update(), deleteRecord() ou deleteMultiple() sur des résultats de requête incorrects peut entraîner une perte de données.
Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai pour que les requêtes codées non valides ne renvoient aucun enregistrement.
| Nom | Type | Description |
|---|---|---|
| joinTable | Chaîne | Nom de table à utiliser dans la jointure, par 'incident'exemple . |
| champ primaire | Chaîne | Facultatif. Nom du champ dans le GlideRecord à utiliser pour joindre le champ spécifié dans le joinTableField paramètre. Valeur par défaut : sys_id |
| joinTableField | Chaîne | Facultatif. Nom du champ de la table spécifié dans joinTable à utiliser pour joindre les tables. Par défaut : premier champ de la table spécifiée dans joinTable qui est un champ de référence à la table GlideRecord actuelle. |
| Type | Description |
|---|---|
| GlideQueryCondition | Filtre qui répertorie les enregistrements dans lesquels les relations correspondent. |
Recherchez les problèmes associés à un incident. Cet exemple renvoie des problèmes auxquels des incidents sont associés. Toutefois, elle n’extrait pas les valeurs des incidents qui sont renvoyés dans le cadre de la requête.
var prob = new GlideRecord('problem');
prob.addJoinQuery('incident');
prob.query();
Recherchez les problèmes inactifs avec les incidents associés.
// 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'));
}
Recherchez les problèmes auxquels des incidents sont associés lorsque la valeur du champ Incident caller_id correspond à opened_by celle du champ du problème.
var now_GR = new GlideRecord('problem');
now_GR.addJoinQuery('incident', 'opened_by', 'caller_id');
now_GR.query();
GlideRecord inclus dans l’étendue : addNotNullQuery(String fieldName)
Filtre qui spécifie les enregistrements dans lesquels la valeur du champ transmis au paramètre n’est pas nulle.
Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, génère une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est abandonnée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(),update(), deleteRecord() ou deleteMultiple() sur des résultats de requête incorrects peut entraîner une perte de données.
Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai pour que les requêtes codées non valides ne renvoient aucun enregistrement.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Nom du champ à vérifier. |
| Type | Description |
|---|---|
| GlideQueryCondition | Filtre qui spécifie les enregistrements dans lesquels la valeur du champ transmis au paramètre n’est pas nulle. |
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 inclus dans le champ d’application : addNullQuery(String fieldName)
Ajoute un filtre pour renvoyer les enregistrements dans lesquels la valeur du champ spécifié est nulle.
Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, génère une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est abandonnée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(),update(), deleteRecord() ou deleteMultiple() sur des résultats de requête incorrects peut entraîner une perte de données.
Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai pour que les requêtes codées non valides ne renvoient aucun enregistrement.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Nom du champ à vérifier. |
| Type | Description |
|---|---|
| GlideQueryCondition | Condition de requête ajoutée au 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 inclus dans le champ d’application : addQuery(requête de chaîne)
Ajoute un filtre pour renvoyer les enregistrements à l’aide d’une chaîne de requête codée.
Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, génère une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est abandonnée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(),update(), deleteRecord() ou deleteMultiple() sur des résultats de requête incorrects peut entraîner une perte de données.
Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai pour que les requêtes codées non valides ne renvoient aucun enregistrement.
| Nom | Type | Description |
|---|---|---|
| query | Chaîne | Chaîne de requête codée. |
| Type | Description |
|---|---|
| GlideQueryCondition | Condition de requête ajoutée au 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 inclus dans le champ d’application : addQuery(nom de chaîne, valeur de l’objet)
Créez une requête de recherche et renvoyez les lignes qui correspondent à la demande.
Si vous êtes familier avec SQL, cette méthode est similaire à la clause « where ». Un ou plusieurs appels addQuery() peuvent être effectués dans une seule requête ; dans ce cas, les requêtes sont AND. Si l’une des instructions de requête doit être OU, utilisez la méthode GlideQueryConditionaddOrCondition().
Lorsque addQuery() est appelé avec seulement deux paramètres, le nom de la table et la valeur de comparaison, tels que myObj.addQuery('category','Hardware') ;, l’opérateur est supposé être « égal à ».
Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, génère une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est abandonnée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(),update(), deleteRecord() ou deleteMultiple() sur des résultats de requête incorrects peut entraîner une perte de données.
Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai pour que les requêtes codées non valides ne renvoient aucun enregistrement.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du champ de table à interroger, ou l’un des noms réservés suivants :
Remarque : Pour plus de détails sur l’utilisation des noms réservés, reportez-vous à la section Interrogation des tables dans le script. |
| valide | Objet | Valeur à interroger (insensible à la casse). |
| Type | Description |
|---|---|
| GlideQueryCondition | Condition de requête ajoutée au GlideRecord. |
Cet exemple de code montre comment interroger les enregistrements actifs dans la table d’incidents, puis les définir tous sur Inactifs.
var rec = new GlideRecord('incident');
rec.addQuery('active', true);
rec.query();
while (rec.next()) {
rec.setValue('active', false);
rec.update();
}
Cet exemple de code ajoute une requête pour les enregistrements qui correspondent à « serveur de messagerie » dans la table kb_knowledge, avec des valeurs de pertinence des résultats de recherche calculées à l’aide des paramètres du groupe d’index de texte du portail.
var now_GR = new GlideRecord("kb_knowledge);
now_GR.addQuery("123TEXTQUERY321", "email server");
now_GR.addQuery("123TEXTINDEXGROUP321", "portal");
now_GR.query();
GlideRecord inclus dans le champ d’application : addQuery(nom de chaîne, opérateur de chaîne, valeur de l’objet)
Possibilité de créer une demande qui, lorsqu’elle est exécutée, renvoie les lignes de la table spécifiée, qui correspondent à la demande.
Si vous êtes familier avec SQL, cette méthode est similaire à la clause « where ». Un ou plusieurs appels addQuery() peuvent être effectués dans une seule requête ; dans ce cas, les requêtes sont AND. Si l’une des instructions de requête doit être OU, utilisez la méthode GlideQueryConditionaddOrCondition().
Testez toujours les requêtes sur une instance de sous-production avant de les déployer sur une instance de production. Une requête codée mal construite, comme l’inclusion d’un nom de champ non valide, génère une requête non valide. Lorsque la requête non valide est exécutée, la partie non valide de la condition de requête est abandonnée et les résultats sont basés sur la partie valide de la requête, qui peut renvoyer tous les enregistrements de la table. L’utilisation d’une méthode insert(),update(), deleteRecord() ou deleteMultiple() sur des résultats de requête incorrects peut entraîner une perte de données.
Vous pouvez définir la glide.invalid_query.returns_no_rows propriété système sur vrai pour que les requêtes codées non valides ne renvoient aucun enregistrement.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du champ de table. |
| opérateur | Chaîne | Opérateur de requête. Les valeurs disponibles dépendent du type de données du paramètre de valeur . Numéros:
Chaînes (doit être en majuscules) :
Remarque : Utilisez CONTAINS au lieu de l’opérateur LIKE. |
| valide | Objet | Valeur à interroger (insensible à la casse). |
| Type | Description |
|---|---|
| GlideQueryCondition | Condition de requête qui a été ajoutée au 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();
}
Utilisation de l’opérateur IN.
var now_GR = new GlideRecord('incident');
now_GR.addQuery('number','IN','INC00001,INC00002');
now_GR.query();
while(now_GR.next()) {
//do something....
}
GlideRecord inclus dans le champ d’application : addValue(champ de chaîne, valeur numérique)
Fournit des opérations atomiques d’addition et de soustraction sur un champ de nombre spécifié au niveau de la base de données pour l’objet GlideRecord actuel.
En règle générale, un objet GlideRecord est écrit sous la forme d’un enregistrement dans une base de données. Les valeurs de champ individuelles sont stockées telles qu’elles ont été définies. Pour le code qui ajoute une valeur à un champ GlideRecord, il enregistre simplement le champ dans la base de données avec la nouvelle valeur, plutôt que de l’incrémenter atomiquement.
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"Si un autre utilisateur exécute simultanément le même code, au lieu que les deux opérations ajoutent chacune 1 à u_count, l’effet net est que u_count n’en contient que 2, la mise à jour d’une opération étant en fait perdue.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 Comme setValue(), les modifications de addValue() ne prennent effet dans la base de données qu’après un appel ultérieur à update() ou insert(). Si insert() est appelé, le champ spécifié est initialisé avec le value paramètre passé dans addValue().
| Nom | Type | Description |
|---|---|---|
| champ | Chaîne | Nom du champ dans ce GlideRecord à modifier. Si le champ associé n’est pas de type numérique, l’opération est ignorée. |
| valide | Entier | Montant à ajouter à la valeur lorsque l’enregistrement est enregistré. Pour effectuer une opération de soustraction, il suffit de passer une valeur négative. |
| Type | Description |
|---|---|
| nul |
Affiche une valeur ajoutée.
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);
Sortie :
2
Affiche une valeur soustraite.
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);
Sortie :
3
GlideRecord inclus dans le périmètre : applyEncodedQuery(String queryString)
Définit les valeurs des termes de requête codés spécifiés et les applique au GlideRecord actuel.
| Nom | Type | Description |
|---|---|---|
| Querystring | Chaîne | Requête codée à appliquer au GlideRecord actuel. |
| Type | Description |
|---|---|
| Néant |
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 inclus dans le champ d’application : canCreate()
Détermine si les règles de contrôle d’accès, qui incluent les rôles de l’utilisateur, autorisent l’insertion de nouveaux enregistrements dans cette table.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si les rôles de l’utilisateur autorisent la création d’enregistrements dans cette table. Valeurs valides :
|
Cet exemple de code écrit si l’utilisateur actuel peut créer des enregistrements dans la table Incident du journal système.
var now_GR = new GlideRecord('incident');
gs.info(now_GR.canCreate());
GlideRecord inclus dans le champ d’application : canDelete()
Détermine si les règles de contrôle d’accès, qui incluent les rôles de l’utilisateur, autorisent la suppression d’enregistrements dans cette table.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si les rôles de l’utilisateur autorisent la suppression d’enregistrements dans cette table. Valeurs valides :
|
Cet exemple de code écrit si l’utilisateur actuel peut supprimer des enregistrements de la table Incident dans le journal système.
var att = new GlideRecord('sys_attachment');
gs.info(att.canDelete());
GlideRecord inclus dans le champ d’application : canRead()
Détermine si les règles de contrôle d’accès (ACL) autorisent la lecture des enregistrements dans cette table. Cette méthode évalue tous les types d’ACL, tels que les rôles d’utilisateur, les ACL scriptées, les ACL avec des conditions scriptées, etc.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si les rôles de l’utilisateur autorisent la lecture des enregistrements de cette table. Valeurs valides :
|
Cet exemple de code écrit si l’utilisateur actuel peut lire les enregistrements de la table Incident dans le journal système.
var now_GR = new GlideRecord('incident');
gs.info(now_GR.canRead());
GlideRecord inclus dans le champ d’application : canWrite()
Détermine si les règles de contrôle d’accès, qui incluent les rôles de l’utilisateur, autorisent la modification des enregistrements dans cette table.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si les rôles de l’utilisateur autorisent l’écriture d’enregistrements dans cette table. Valeurs valides :
|
Cet exemple de code écrit si l’utilisateur actuel peut écrire des enregistrements dans la table Incident du journal système.
var now_GR = new GlideRecord('incident');
gs.info(now_GR.canWrite());
GlideRecord dans le champ d’application/global : chooseWindow(Number firstRow, Number lastRow, Boolean forceCount)
Définit une plage de lignes à renvoyer par les requêtes suivantes.
| Nom | Type | Description |
|---|---|---|
| Firstrow | Numéro | Première ligne à inclure. Étant donné que l’index commence à 0, une valeur de 0 renvoie la première ligne. |
| Lastrow | Numéro | Numéro de ligne de la première ligne basé sur 0 à ne PAS revenir. Se comporte de la même manière que la méthode String.substring(a,b) de Java. Par exemple, si lastRow = 4 et firstRow = 2, deux enregistrements sont renvoyés (4-2). |
| forceCount (en anglais seulement) | Booléen | Facultatif. Marqueur indiquant si une requête de nombre de lignes doit être forcée. Dans la plupart des implémentations de cet appel, le nombre de lignes est effectué. Il existe des cas aberrants, tels que les recherches de texte, où un comptage de lignes n’est pas effectué. Définir ce marqueur garantit que le nombre de lignes se produit. Valeurs valides :
Valeur par défaut : false |
| Type | Description |
|---|---|
| nul |
Cet exemple montre le renvoi des enregistrements 3 et 4 à partir de la table Incident.
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');
}
Sortie
*** Script: INC0000003 is within window
*** Script: INC0000004 is within window
GlideRecord inclus dans le champ d’application : deleteMultiple()
Supprime tous les enregistrements qui répondent à la requête.
Cette méthode ne supprime pas les pièces jointes.
N’utilisez pas deleteMultiple() sur les tables avec des champs de devise. Supprimez toujours chaque enregistrement individuellement. De plus, n’utilisez pas cette méthode avec les méthodes chooseWindow() ou setLimit() lorsque vous travaillez avec des tables volumineuses. La méthode setLimit() ne limite pas le nombre d’enregistrements supprimés avec deleteMultiple(). Tous les enregistrements renvoyés par la requête sont supprimés indépendamment de setLimit().
La glide.db.forced.chunk.threshold propriété système définit le seuil au-dessus duquel les enregistrements de blocs sont supprimés et mis à jour. Le découpage en bloc permet d’éviter que des suppressions de clés non primaires sur des tables volumineuses n’entraînent des problèmes de réplication. Pour plus d'informations, consultez Available system properties.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Néant |
Cet exemple montre comment supprimer tous les enregistrements inactifs de la table Incident.
var now_GR = new GlideRecord('incident');
now_GR.addQuery('active','false');
now_GR.query();
now_GR.deleteMultiple();
GlideRecord inclus dans le champ d’application : deleteRecord()
Supprime l’enregistrement actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur qui indique si l’enregistrement a été correctement supprimé. Valeurs valides :
|
Cet exemple montre comment supprimer un enregistrement spécifié de la table Incident.
var now_GR = new GlideRecord('incident');
//to delete one record
if (now_GR.get('99ebb4156fa831005be8883e6b3ee4b9'))
now_GR.deleteRecord();
Cet exemple montre comment supprimer un enregistrement de la table Incident immédiatement après son insertion. L’incident GlideRecord doit être rechargé après l’insertion avant de pouvoir être supprimé.
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
Sortie :
true
GlideRecord inclus dans le champ d’application : get(nom de l’objet, valeur de l’objet)
Renvoie l’enregistrement spécifié dans l’objet GlideRecord actuel.
Cette méthode accepte un ou deux paramètres. Si un seul paramètre est transmis, la méthode suppose qu’il s’agit du sys_id de l’enregistrement souhaité. S’il ne le trouve pas, il essaie alors de faire correspondre la valeur à la valeur d’affichage. Si deux paramètres sont transmis, le premier est le nom de la colonne dans le GlideRecord à rechercher. La seconde est la valeur à rechercher.
Si plusieurs enregistrements sont trouvés, utilisez next() pour accéder aux enregistrements supplémentaires.
| Nom | Type | Description |
|---|---|---|
| nom | Objet | Facultatif. Nom de la colonne GlideRecord instanciée pour rechercher le paramètre spécifié value . Si un seul paramètre est transmis, la méthode suppose que ce paramètre est la valeur de sys_id ou d’affichage. |
| valide | Objet | Valeur à faire correspondre. |
| Type | Description |
|---|---|
| Booléen | Indique si l’enregistrement demandé a été localisé :
|
Cet exemple montre comment obtenir un enregistrement d’incident en transmettant le 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
Cet exemple montre comment obtenir un enregistrement d’incident en transmettant le champ à rechercher (caller_id.name) et la valeur à y trouver.
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 inclus dans le champ d’application : getAttribute(String fieldName)
Renvoie les attributs de dictionnaire pour le champ spécifié.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Nom de champ pour lequel renvoyer les attributs de dictionnaire |
| Type | Description |
|---|---|
| Chaîne | Attributs du dictionnaire |
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 inclus dans le champ d’application : getClassDisplayValue()
Renvoie l’étiquette de la table actuelle.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Étiquette qui identifie la table. |
Cet exemple imprime l’étiquette de la table transmise.
// Display the incident table label
var now_GR = new GlideRecord("incident");
var value = now_GR.getClassDisplayValue();
gs.info("The table label is " + value + ".");
Sortie :
The table label is Incident.
GlideRecord inclus dans le champ d’application : getDisplayValue()
Récupère la valeur d’affichage de l’enregistrement actuel.
Les valeurs d'affichage sont manipulées en fonction de la valeur réelle dans la base de données, ainsi que des paramètres et préférences système ou utilisateur.
- Champs de choix : la valeur de base de données peut être un nombre, mais la valeur d'affichage sera plus descriptive.
- Champs de date : la valeur de base de données est au format UTC, tandis que la valeur d'affichage est basée sur le fuseau horaire de l'utilisateur.
- Texte chiffré : la valeur de base de données est chiffrée, tandis que la valeur d'affichage n'est pas chiffrée en fonction du contexte de chiffrement de l'utilisateur.
- Champs de référence : la valeur de base de données est sys_id, tandis que la valeur d'affichage est un champ d'affichage de l'enregistrement référencé.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Affichez la valeur de l’enregistrement actuel. |
Cet exemple écrit la valeur d’affichage d’un enregistrement d’incident spécifié dans le journal.
var now_GR = new GlideRecord('incident');
now_GR.get('sys_id','<sys_id>');
gs.info(now_GR.getDisplayValue());
Sortie :
INC0000050
GlideRecord inclus dans l’étendue : getED()
Renvoie le descripteur de l’élément.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| GlideElementDescriptor | Descripteur de l’élément. |
Cet exemple montre comment récupérer le champ nom d’un GlideRecord d’incident.
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 inclus dans l’étendue : getElement(String fieldName)
Récupère l’objet GlideElement pour le champ spécifié.
La valeur renvoyée par cette méthode est un objet GlideElement complet. Les résultats sont l’équivalent d’une remontée pas à pas d’une valeur de champ. Par exemple, now_GR.getElement('short_description') fournit le même résultat que nowGR.short_description.
Dans la plupart des cas, n’utilisez pas de remontée pas à pas pour obtenir les valeurs d’un enregistrement. La remontée pas à pas récupère l’objet entier au lieu de la valeur du champ. La récupération de l’objet utilise plus d’espace de stockage et peut entraîner des résultats indésirables lorsqu’elle est utilisée dans des tableaux ou dans Portail de services.
Au lieu de récupérer l’objet en entier, vous pouvez utiliser l’une des méthodes suivantes pour copier les valeurs de champ :
var mgr = current.caller_id.manager.toString();| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Nom de colonne pour lequel renvoyer l’objet GlideElement. |
| Type | Description |
|---|---|
| Élément Glide | GlideElement pour la colonne spécifiée de l’enregistrement actuel. Chaque objet décrit un champ dans le GlideRecord actuel. |
L’exemple suivant montre comment ajouter un nouvel enregistrement d’incident avec des détails dans le champ Brève description .
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());
Sortie :
My DB is not working
GlideRecord inclus dans l’étendue : getElements()
Renvoie un tableau d’objets GlideElement. Chaque objet décrit un champ dans le GlideRecord actuel.
var mgr = current.caller_id.manager.toString();| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Tableau | Tableau d’objets GlideElement . Chaque objet décrit un champ dans le GlideRecord actuel. |
L’exemple suivant affiche la valeur du champ Nom pour les cinq enregistrements les plus récents créés dans la table Question [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);
}
Sortie :
delivery_time_var
delivery_time
sequence
priority
assigned_group
GlideRecord inclus dans l’étendue : getEncodedQuery()
Récupère la condition de requête du jeu de résultats actuel sous forme de chaîne de requête codée.
Pour plus d’informations, consultez Chaînes de requêtes codées .
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne |
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);
Sortie :
active=true^priority=1
GlideRecord inclus dans l’étendue : getLabel()
Renvoie l’étiquette du champ.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Étiquette du champ |
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 inclus dans le périmètre : getLastErrorMessage()
Récupère le dernier message d’erreur. S’il n’y a pas de dernier message d’erreur, null est renvoyé.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Dernier message d’erreur sous forme de chaîne. |
// 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);
Sortie :
Data Policy Exception: Short description is mandatory
GlideRecord inclus dans le champ d’application : getLink(Boolean noStack)
Récupère le lien vers l’enregistrement actuel.
| Nom | Type | Description |
|---|---|---|
| noStack (Nœud de pile) | Booléen | Marqueur indiquant s’il faut ajouter le paramètre de sysparm_stack au lien renvoyé. Ce paramètre spécifie la page à visiter après la fermeture du lien actuel. Valeurs valides : Si vrai, le paramètre sysparm_stack n’est pas ajouté au lien.
|
| Type | Description |
|---|---|
| Chaîne | Lien vers l’enregistrement actuel. |
Cet exemple interroge tous les enregistrements d’incidents avec une priorité de « 1 » et écrit l’URI du servlet et le lien de l’enregistrement actuel dans le journal système.
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));
Sortie :
https://instance.service-now.com/incident.do?sys_id=46e2fee9a9fe19810049b49dee0daf58&sysparm_stack=incident_list.do?sysparm_query=active=true
GlideRecord inclus dans le champ d’application : getRecordClassName()
Récupère le nom de classe de l’enregistrement actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le nom de la classe. |
var now_GR = new GlideRecord('incident');
var recordClassName = now_GR.getRecordClassName();
gs.info(recordClassName);
Sortie :
incident
GlideRecord inclus dans le champ d’application : getRowCount()
Récupère le nombre de lignes (enregistrements) dans l’objet GlideRecord actuel.
- Récupération des enregistrements de numéros dans GlideRecord ou GlideAggregate
- Les API getRowCount() et getAggregate() GlideAggregate offrent des informations similaires. Utilisez les critères suivants pour déterminer l’option qui vous convient le mieux.
- La méthode GlideRecord getRowCount() vous indique combien d’enregistrements ont été renvoyés à partir d’une requête ainsi que les enregistrements eux-mêmes. Si vous avez besoin du nombre d’enregistrements dans le jeu de résultats avant ou après l’itération sur l’ensemble pour effectuer des actions sur les enregistrements, utilisez cette méthode.
- La méthode GlideAggregate getAggregate() récupère uniquement un nombre d’enregistrements correspondant à la requête, à l’exclusion des enregistrements réels. L’agrégat doit être défini sur l’objet GlideAggregate avant d’émettre la requête.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Numéro | Nombre de lignes dans le GlideRecord actuel. |
L’exemple suivant montre comment obtenir le nombre d’incidents à partir de la table Incident [incident].
var numberOfIncidents = new GlideRecord('incident');
numberOfIncidents.query();
gs.info("Records in incident table: " + numberOfIncidents.getRowCount());
Sortie :
Records in incident table: 6920
GlideRecord inclus dans le champ d’application : getTableName()
Récupère le nom de la table associée au GlideRecord.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Le nom de table |
var now_GR = new GlideRecord('incident');
gs.info(now_GR.getTableName());
GlideRecord inclus dans le champ d’application : getUniqueValue()
Obtient la clé primaire de l’enregistrement, qui est généralement la sys_id, sauf indication contraire.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Clé primaire unique sous forme de chaîne ou null si la clé est nulle. |
var now_GR = new GlideRecord('kb_knowledge');
now_GR.query();
now_GR.next();
var uniqueid = now_GR.getUniqueValue();
gs.info(uniqueid);
GlideRecord inclus dans le champ d’application : getValue(String name)
Récupère la valeur de chaîne d’un élément sous-jacent dans un champ.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du champ à partir duquel obtenir la valeur. |
| Type | Description |
|---|---|
| Chaîne | Valeur de chaîne de l’élément sous-jacent. Renvoie null si le champ est vide ou si le champ n’existe pas. Les valeurs booléennes sont renvoyées sous forme de valeurs de chaîne « 0 » et « 1 » au lieu de fausses et vraies. |
var now_GR = new GlideRecord('incident');
now_GR.orderBy('number');
now_GR.query('active','true');
now_GR.next();
gs.info(now_GR.getValue('number'));
Sortie :
INC0000002
GlideRecord inclus dans le périmètre : GlideRecord(String tableName)
Crée une instance de la classe GlideRecord pour la table spécifiée.
| Nom | Type | Description |
|---|---|---|
| tableName | Chaîne | Table à utiliser. |
var now_GR = new GlideRecord('incident');
GlideRecord inclus dans le champ d’application : hasNext()
Détermine s’il existe d’autres enregistrements dans l’objet GlideRecord.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai s’il existe d’autres enregistrements dans l’ensemble de résultats de la requête. |
var rec = new GlideRecord('incident');
rec.query();
if (rec.hasNext()) {
gs.info("Table is not empty");
}
GlideRecord inclus dans le champ d’application : insert()
Insère un nouvel enregistrement à l’aide des valeurs de champ qui ont été définies pour l’enregistrement actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | Sys_id de l’enregistrement inséré ou nul si l’enregistrement n’est pas inséré. |
var now_GR = new GlideRecord('incident');
now_GR.initialize();
now_GR.setValue('name', 'New Incident');
now_GR.setValue('description', 'Incident description');
now_GR.insert();
Sortie :
138fb4111b4d4d907cf30d03cd4bcb57
GlideRecord inclus dans le champ d’application - initialize()
Crée un enregistrement vide adapté au remplissage avant une insertion.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| nul |
var grIncident = new GlideRecord('incident');
grIncident.initialize();
grIncident.setValue('short_description', 'New Incident');
grIncident.setValue('description', 'Incident description');
grIncident.insert();
GlideRecord inclus dans l’étendue : isActionAborted()
Vérifie si l’action de base de données actuelle doit être abandonnée.
isActionAborted() est initialisé (défini sur false) pour les nouveaux threads et par la méthode next().
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’action de base de données actuelle doit être abandonnée. Valeurs valides :
|
var now_GR = new GlideRecord('incident');
gs.info(now_GR.isActionAborted());
Sortie :
false
GlideRecord inclus dans le périmètre : isEncodedQueryValid(requête de chaîne)
Vérifie si la requête codée spécifiée est valide.
Si la requête codée spécifiée est valide, alors la requête est appliquée, comme si vous aviez appelé addEncodedQuery(). Si la requête codée spécifiée n’est pas valide, sys_idNotValidnull est ajoutée en tant que requête codée.
| Nom | Type | Description |
|---|---|---|
| query | Chaîne | Requête codée à valider. Reportez-vous à la section Chaînes de requêtes codées. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si la requête codée spécifiée est valide.
|
Cet exemple de code montre comment valider une requête codée, puis exécuter la logique si la requête est valide.
var now_GR = new GlideRecord('incident_sla');
var isValidQuery = now_GR.isEncodedQueryValid('inc_impact=1^taskslatable_active=true');
if (isValidQuery) {
now_GR.query();
.
.
.
}
GlideRecord inclus dans le champ d’application : isNewRecord()
Vérifie si l’enregistrement actuel est un nouvel enregistrement qui n’a pas encore été inséré dans la base de données.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Vrai si l’enregistrement est nouveau et n’a pas été inséré dans la base de données. |
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 inclus dans l’étendue : isValid()
Détermine si la table actuelle est valide ou si l’enregistrement a été récupéré avec succès.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si la table est valide ou si l’enregistrement a été récupéré avec succès. Valeurs possibles :
|
var comment_GR = new GlideRecord('cf_comment');
var commentId = '99ebb4156fa831005be8883e6b3ee4b9';
comment_GR.get(commentId);
gs.info(comment_GR.isValid());
GlideRecord inclus dans le champ d’application : isValidEncodedQuery(requête de chaîne)
Vérifie si la requête codée spécifiée est valide.
| Nom | Type | Description |
|---|---|---|
| query | Chaîne | Requête codée à valider. Reportez-vous à la section Chaînes de requêtes codées. |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si la requête codée spécifiée est valide.
|
Cet exemple de code montre comment valider une requête codée, puis exécuter la logique si la requête est valide.
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 inclus dans le champ d’application : isValidField(String columnName)
Détermine si le champ spécifié est défini dans la table actuelle.
| Nom | Type | Description |
|---|---|---|
| columnName | Chaîne | Nom du champ. |
| Type | Description |
|---|---|
| Booléen | Vrai si le champ est défini pour la table actuelle. |
var now_GR = new GlideRecord('incident');
now_GR.initialize();
gs.info(now_GR.isValidField("short_description"));
GlideRecord inclus dans le champ d’application : isValidRecord()
Détermine si un enregistrement a réellement été renvoyé par l’opération requête/obtention d’enregistrement.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si un enregistrement a bien été renvoyé par l’opération requête/obtenir. Valeurs valides :
|
var rec = new GlideRecord('incident');
rec.query();
while (rec.next()) {
gs.info(rec.number + ' exists');
}
gs.info(rec.isValidRecord());
GlideRecord inclus dans l’étendue : isView()
Vérifie si l’enregistrement a été créé dans une vue ou une table.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant si l’enregistrement a été créé dans la table qui est une vue.
|
Cet exemple de code montre comment déterminer si un GlideRecord a été créé dans une vue ou une table.
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.');
}
Sortie :
This record was created in a view.
GlideRecord inclus dans le champ d’application : newRecord()
Crée un nouvel enregistrement GlideRecord, définit les valeurs par défaut pour les champs et affecte un ID unique à l’enregistrement.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| nul |
var now_GR = new GlideRecord("x_app_table");
now_GR.newRecord();
gs.info(now_GR.isNewRecord());
Sortie :
true
GlideRecord inclus dans le champ d’application : next()
Passe à l’enregistrement suivant dans l’objet GlideRecord.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant s’il existe un enregistrement « suivant » dans le GlideRecord. Valeurs valides :
|
Exemple
var rec = new GlideRecord('incident');
rec.query();
while (rec.next()) {
gs.info(rec.getValue('number') + ' exists');
}
INC0010112 exists
INC0010114 exists
INC0010119 exists
INC0010127 existsGlideRecord inclus dans le champ d’application : _next()
Passe à l’enregistrement suivant dans le GlideRecord. Fournit la même fonctionnalité que next(), utilisez cette méthode si le GlideRecord a une colonne nommée next.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Booléen | Marqueur indiquant s’il existe d’autres enregistrements dans l’ensemble de requêtes. Valeurs possibles :
|
L’exemple suivant montre comment répertorier chaque enregistrement dans la table Incidents [incident].
var rec = new GlideRecord('incident');
rec.query();
while (rec._next()) {
gs.info(rec.getValue('number') + ' exists');
}
Sortie :
INC0000060 exists
INC0009002 exists
INC0000009 exists
INC0000010 exists
INC0000011 exists
INC0000012 exists
...
GlideRecord inclus dans le champ d’application : operation()
Détermine si une opération doit être insérée, mise à jour ou supprimée.
Connaître l’opération permet d’utiliser current.operation() pour créer une règle métier générique capable de gérer chaque opération de manière unique.
Pour plus d’informations sur l’utilisation de la variable globale actuelle, reportez-vous à la section Variables globales dans les règles métier.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | L’opération en cours. Valeurs possibles :
|
L’exemple suivant montre comment utiliser cette méthode dans une règle métier. La méthode operation() détecte quelle opération a déclenché un événement et effectue une action différente en fonction des opérations de mise à jour et d’insertion.
if(current.operation() == "update") {
current.updates ++; }
if(current.operation() == "insert") {
current.updates = 0; }
GlideRecord inclus dans le champ d’application : orderBy(nom de chaîne)
Spécifie une colonne orderBy.
Appelez cette méthode plus d’une fois pour trier par plusieurs colonnes. Les résultats sont classés par ordre croissant. Pour organiser les enregistrements par ordre décroissant, reportez-vous à GlideRecord inclus dans le champ d’application : orderByDesc(nom de chaîne).
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de colonne à utiliser pour trier les enregistrements dans cet objet GlideRecord. |
| Type | Description |
|---|---|
| nul |
L’exemple suivant montre comment trier les enregistrements d’incidents par ordre croissant par Brève description.
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'));
}
Sortie :
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 inclus dans le champ d’application : orderByDesc(nom de chaîne)
Indique une colonne orderBy descendante.
Appelez cette méthode plus d’une fois pour trier par plusieurs colonnes. Les résultats sont classés par ordre décroissant. Pour organiser les enregistrements par ordre croissant, reportez-vous à la section GlideRecord inclus dans le champ d’application : orderBy(nom de chaîne).
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de colonne à utiliser pour organiser les enregistrements dans un objet GlideRecord. |
| Type | Description |
|---|---|
| nul |
L’exemple suivant montre comment trier les enregistrements d’incidents par Brève description, par ordre décroissant.
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'));
}
Sortie :
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 inclus dans le champ d’application : query(champ de chaîne, valeur de chaîne)
Exécute une requête sur la table en fonction des filtres spécifiés par les méthodes de requête telles que addQuery() et addEncodedQuery().
Cette méthode interroge la table GlideRecord ainsi que toutes les références de la table. Pour plus d’informations, reportez-vous à la rubrique Interrogation des tables dans le script.
Consultez l’article GlideRecord pour plus d’informations sur la création et l’exécution de requêtes.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Facultatif - doit également spécifier un paramètre de valeur. Nom du champ dans lequel rechercher la valeur spécifiée dans le paramètre de valeur. Remarque : Cette méthode est généralement exécutée sans arguments, mais vous pouvez spécifier une paire nom-valeur pour filtrer les enregistrements contenant les valeurs spécifiées. Si les paramètres sont spécifiés, la condition « nom=valeur » est ajoutée à la requête. |
| valide | Chaîne | Facultatif : doit également spécifier un paramètre de champ. Valeur à rechercher dans le paramètre de champ spécifié. |
| Type | Description |
|---|---|
| nul |
L’exemple suivant montre comment analyser le dictionnaire système [sys_dictionary] à la recherche de tables avec un champ de requête.
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]);
};
Sortie :
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 inclus dans le champ d’application : _query(champ de chaîne, valeur de chaîne)
Exécute une requête sur la table en fonction des filtres spécifiés par les méthodes de requête telles que addQuery() et addEncodedQuery(). Cette méthode est destinée à être utilisée sur les tables dans lesquelles il y a une colonne nommée « query », ce qui peut provoquer des erreurs lors de l’exécution de la méthode query().
Cette méthode interroge la table GlideRecord ainsi que toutes les références de la table. Pour plus d’informations, reportez-vous à la rubrique Interrogation des tables dans le script.
Consultez l’article GlideRecord pour plus d’informations sur la création et l’exécution de requêtes.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Facultatif - doit également spécifier un paramètre de valeur. Nom du champ dans lequel rechercher la valeur spécifiée dans le paramètre de valeur. Remarque : Cette méthode est généralement exécutée sans arguments, mais vous pouvez spécifier une paire nom-valeur pour filtrer les enregistrements contenant les valeurs spécifiées. Si les paramètres sont spécifiés, la condition « nom=valeur » est ajoutée à la requête. |
| valide | Chaîne | Facultatif : doit également spécifier un paramètre de champ. Valeur à rechercher dans le paramètre de champ spécifié. |
| Type | Description |
|---|---|
| nul |
L’exemple suivant montre comment interroger la table Feedback de la base de connaissances [kb_feedback] et répertorier les articles de la base de connaissances avec des commentaires qui incluent 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'));
}
Sortie :
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 inclus dans le périmètre : setAbortAction(Boolean b)
Définit un marqueur indiquant si la prochaine action de base de données (insérer, mettre à jour, supprimer) doit être abandonnée. Ceci est souvent utilisé dans les règles métier.
À utiliser dans une règle métier onBefore pour empêcher l’exécution de l’action de base de données. La règle métier continue de s’exécuter après l’appel de setAbortAction(). L’appel de setAbortAction() n’empêche pas l’exécution des règles métier suivantes. L’appel de cette méthode empêche uniquement l’action de base de données de se produire.
| Nom | Type | Description |
|---|---|---|
| b | Booléen | True pour annuler l’action suivante. Faux si l’action doit être autorisée. |
| Type | Description |
|---|---|
| nul |
// Often used in business rule to check whether the current operation should be aborted.
if (current.size > 16) {
current.setAbortAction(true);
}
GlideRecord inclus dans le champ d’application : setLimit(Number maxNumRecords)
Définit la limite du nombre d’enregistrements récupérés par la requête GlideRecord.
| Nom | Type | Description |
|---|---|---|
| maxNumRecords | Numéro | Le nombre maximal d’enregistrements à extraire. |
| Type | Description |
|---|---|
| nul |
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 inclus dans le champ d’application : setNewGuidValue(String guid)
Définit la valeur sys_id de l’enregistrement actuel.
| Nom | Type | Description |
|---|---|---|
| guid | Chaîne | GUID à affecter à l’enregistrement actuel. |
| Type | Description |
|---|---|
| nul |
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 inclus dans le champ d’application : setValue(nom de chaîne, valeur de l’objet)
Définit la valeur du champ avec le nom spécifié sur la valeur spécifiée.
Normalement, le script fait un now_GR.category = value. Toutefois, si le nom de l’élément est lui-même une variable, vous pouvez utiliser now_GR.setValue(elementName, value). Lors de la définition d’une valeur, assurez-vous que le type de données du champ correspond au type de données de la valeur que vous saisissez.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom du champ. |
| valide | Objet | Valeur à affecter au champ. |
| Type | Description |
|---|---|
| nul |
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 inclus dans le périmètre : setWorkflow(booléen activé)
Active ou désactive l’exécution des règles métier, des moteurs de script et de l’audit.
| Nom | Type | Description |
|---|---|---|
| activer | Booléen | Marqueur indiquant s’il faut activer ou désactiver l’exécution des règles métier, des moteurs de script et de l’audit. Valeurs valides :
|
| Type | Description |
|---|---|
| nul |
//Enable business rules, scripts engines for x_app_table
var now_GR = new GlideRecord("x_app_table");
now_GR.setWorkflow(true);
GlideRecord inclus dans le champ d’application : update(String reason)
Met à jour le GlideRecord avec toutes les modifications apportées. Si l’enregistrement n’existe pas encore, il est inséré.
| Nom | Type | Description |
|---|---|---|
| motif | Chaîne | Facultatif. Motif de la mise à jour. Le motif apparaît dans l’enregistrement d’audit. |
| Type | Description |
|---|---|
| Chaîne | Sys_id de l’enregistrement nouveau ou mis à jour. Renvoie null si la mise à jour échoue. |
L’exemple suivant montre comment mettre à jour le champ Brève description d’un incident.
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'));
Sortie :
Update the short description.
GlideRecord inclus dans l’étendue : updateMultiple()
Met à jour chaque GlideRecord dans une requête déclarée avec un ensemble spécifié de changements.
Cette méthode ne prend pas en charge l’ajout de plusieurs entrées de journal.
La glide.db.forced.chunk.threshold propriété système définit le seuil au-dessus duquel les enregistrements de blocs sont supprimés et mis à jour. Le découpage en bloc permet d’éviter que des suppressions de clés non primaires sur des tables volumineuses n’entraînent des problèmes de réplication. Pour plus d'informations, consultez Available system properties.
gr.setValue('<field_name>', '4')) ; au lieu de gr.<field_name> = 4.Cette méthode définit de nouvelles valeurs et n’efface pas les valeurs existantes. Pour effacer une valeur existante, utilisez la méthode setValue() et définissez le champ sur null.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Néant |
Cet exemple montre comment mettre à jour l’état de tous les incidents actifs sur 4 - « En attente d’infos utilisateur ».
var now_GR = new GlideRecord('incident');
now_GR.addQuery('active', true);
now_GR.setValue('state', 4);
now_GR.updateMultiple();
GlideRecord inclus dans le champ d’application : updateWithReferences(motif de l’objet)
Met à jour un enregistrement et insère ou met à jour tout enregistrement connexe avec les informations fournies.
| Nom | Type | Description |
|---|---|---|
| motif | Objet | Motif des mises à jour. Le motif est affiché dans l’enregistrement d’audit. |
| Type | Description |
|---|---|
| Chaîne | sys_id de l’enregistrement en cours de mise à jour. |
Si vous traitez un incident où l’ID d’appelant est défini pour référencer sys_user’enregistrement « John Doe », le code suivant mettra à jour l’enregistrement utilisateur de John Doe. Si un incident pour lequel aucun ID d’appelant n’est spécifié, le code suivant crée un nouvel enregistrement de sys_user avec les informations fournies (first_name, last_name) et définit la valeur d’ID de l’appelant sur l’enregistrement de sys_user nouvellement créé.
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();
}