GlideAggregate : global
L’API GlideAggregate permet de créer des requêtes d’agrégation de base de données.
La classe GlideAggregate est une extension de la classe GlideRecord et fournit des requêtes d’agrégation de base de données (AVG, COUNT, GROUP_CONCAT, GROUP_CONCAT_DISTINCT, MAX, MIN, STDDEV, SUM). Cette fonctionnalité peut être utile lors de la création de rapports personnalisés ou dans les calculs de champs calculés.
Lorsque vous utilisez des méthodes GlideAggregate sur des champs de devise ou de prix, vous utilisez la valeur de la devise de référence. Assurez-vous de convertir les valeurs agrégées dans la devise de la session de l’utilisateur pour l’affichage. Étant donné que le taux de conversion entre la valeur de la devise ou du prix (valeur affichée) et sa valeur de devise de référence (valeur d’agrégation) peut changer, le résultat peut ne pas correspondre aux attentes de l’utilisateur.
Pour utiliser cette API et créer des attributs dynamiques, vous devez disposer du rôle dynamic_schema_writer. Pour lire des données dynamiques à l’aide de cette API, vous devez disposer du rôle dynamic_schema_reader.
Pour plus d’informations sur les attributs dynamiques, reportez-vous à la section Dynamic Schema.
GlideAggregate : addAggregate(Agrégat de chaîne, nom de chaîne)
Ajoute un agrégat à une requête de base de données.
| Nom | Type | Description |
|---|---|---|
| Agrégat | Chaîne | Nom d’un agrégat à utiliser. Valeurs valides :
|
| nom | Chaîne | Facultatif pour le nom du champ. Nom du champ, ou chemin d’accès à un attribut dans un magasin d’attributs dynamique, sur lequel regrouper les résultats de l’agrégation. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
Pour plus d’informations sur les attributs dynamiques, reportez-vous à la section Dynamic Schema. Valeur par défaut : nul |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant montre comment utiliser les fonctions GlideAggregate dans la table Incident [incident].
var incidentGA = new GlideAggregate('incident');
incidentGA.groupBy('category');
incidentGA.orderByAggregate('COUNT', 'sys_mod_count');
incidentGA.addAggregate('AVG', 'sys_mod_count');
incidentGA.addAggregate('COUNT', 'sys_mod_count');
incidentGA.addAggregate('GROUP_CONCAT', 'sys_mod_count');
incidentGA.addAggregate('GROUP_CONCAT_DISTINCT', 'sys_mod_count');
incidentGA.addAggregate('MAX', 'sys_mod_count');
incidentGA.addAggregate('MIN', 'sys_mod_count');
incidentGA.addAggregate('STDDEV', 'sys_mod_count');
incidentGA.addAggregate('SUM', 'sys_mod_count');
incidentGA.query();
while (incidentGA.next()) {
gs.info('CATEGORY: ' + incidentGA.getValue('category'));
gs.info('AVG: ' + incidentGA.getAggregate('AVG', 'sys_mod_count'));
gs.info('COUNT: ' + incidentGA.getAggregate('COUNT', 'sys_mod_count'));
gs.info('GROUP_CONCAT: ' + incidentGA.getAggregate('GROUP_CONCAT', 'sys_mod_count'));
gs.info('GROUP_CONCAT_DISTINCT: ' + incidentGA.getAggregate('GROUP_CONCAT_DISTINCT', 'sys_mod_count'));
gs.info('MAX: ' + incidentGA.getAggregate('MAX', 'sys_mod_count'));
gs.info('MIN: ' + incidentGA.getAggregate('MIN', 'sys_mod_count'));
gs.info('STDDEV: ' + incidentGA.getAggregate('STDDEV', 'sys_mod_count'));
gs.info('SUM: ' + incidentGA.getAggregate('SUM', 'sys_mod_count'));
gs.info(' ');
}
Sortie.
CATEGORY: inquiry
AVG: 8.42424242424242424242424242424242424242E00
COUNT: 33
GROUP_CONCAT: 0,0,0,0,1,2,2,4,4,4,5,5,5,6,6,6,6,6,6,6,6,7,8,8,8,8,9,15,15,19,32,33,36
GROUP_CONCAT_DISTINCT: 0,1,2,4,5,6,7,8,9,15,19,32,33,36
MAX: 36
MIN: 0
STDDEV: 9.15843294125113629932710147135171494439E00
SUM: 278
CATEGORY: software
AVG: 21
COUNT: 13
GROUP_CONCAT: 3,4,5,5,6,7,9,10,10,11,14,94,95
GROUP_CONCAT_DISTINCT: 3,4,5,6,7,9,10,11,14,94,95
MAX: 95
MIN: 3
STDDEV: 3.27693962918655755532970326989852794087E01
SUM: 273
CATEGORY: Hardware
AVG: 6.8
COUNT: 10
GROUP_CONCAT: 2,5,5,6,6,6,7,7,9,15
GROUP_CONCAT_DISTINCT: 2,5,6,7,9,15
MAX: 15
MIN: 2
STDDEV: 3.39280283999985933622820108982884699755E00
SUM: 68
CATEGORY: network
AVG: 18
COUNT: 5
GROUP_CONCAT: 3,12,17,21,37
GROUP_CONCAT_DISTINCT: 3,12,17,21,37
MAX: 37
MIN: 3
STDDEV: 1.25698050899765347157025586536136512302E01
SUM: 90
CATEGORY:
AVG: 9.5
COUNT: 4
GROUP_CONCAT: 8,8,10,12
GROUP_CONCAT_DISTINCT: 8,10,12
MAX: 12
MIN: 8
STDDEV: 1.91485421551267621995020382273964310607E00
SUM: 38
CATEGORY: database
AVG: 29
COUNT: 2
GROUP_CONCAT: 8,50
GROUP_CONCAT_DISTINCT: 8,50
MAX: 50
MIN: 8
STDDEV: 2.969848480983499602483546320840365965E01
SUM: 58
L’exemple suivant montre comment appeler cette méthode à l’aide d’un attribut dans un magasin d’attributs dynamiques.
var ga_Inc = new GlideAggregate('incident');
ga_Inc.groupBy('inc_dynamic_schema->cars->make');
ga_Inc.addAggregate('AVG', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('MIN', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('MAX', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('SUM', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('COUNT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('STDDEV', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost');
ga_Inc.query();
while (ga_Inc.next()) {
gs.info(gr_Inc.getValue('inc_dynamic_schema->cars->make'));
gs.info('AVG: ' + ga_Inc.getAggregate('AVG', 'inc_dynamic_schema->cars->cost'));
gs.info('MAX: ' + ga_Inc.getAggregate('MAX', 'inc_dynamic_schema->cars->cost'));
gs.info('MIN: ' + ga_Inc.getAggregate('MIN', 'inc_dynamic_schema->cars->cost'));
gs.info('SUM: ' + ga_Inc.getAggregate('SUM', 'inc_dynamic_schema->cars->cost'));
gs.info('COUNT: ' + ga_Inc.getAggregate('COUNT', 'inc_dynamic_schema->cars->cost'));
gs.info('STDDEV: ' + ga_Inc.getAggregate('STDDEV', 'inc_dynamic_schema->cars->cost'));
gs.info('GROUP_CONCAT: ' + ga_Inc.getAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost'));
gs.info('GROUP_CONCAT_DISTINCT: ' + ga_Inc.getAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost'));
gs.info('COUNT(DISTINCT: ' + ga_Inc.getAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost'));
gs.info(' ');
}
Sortie :
*** Script: BMW
*** Script: AVG: 31852.066666666667
*** Script: MAX: 49182
*** Script: MIN: 16544
*** Script: SUM: 477781
*** Script: COUNT: 15
*** Script: STDDEV: 10376.50218706
*** Script: GROUP_CONCAT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
*** Script: GROUP_CONCAT_DISTINCT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
*** Script: COUNT(DISTINCT: 15
*** Script:
*** Script: Ford
*** Script: AVG: 31520.090909090909
*** Script: MAX: 47408
*** Script: MIN: 16080
*** Script: SUM: 346721
*** Script: COUNT: 11
*** Script: STDDEV: 11355.75551388
*** Script: GROUP_CONCAT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
*** Script: GROUP_CONCAT_DISTINCT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
*** Script: COUNT(DISTINCT: 11
*** Script:
*** Script: Honda
*** Script: AVG: 31972.750000000000
*** Script: MAX: 49187
*** Script: MIN: 15208
*** Script: SUM: 511564
*** Script: COUNT: 16
*** Script: STDDEV: 10240.67632207
*** Script: GROUP_CONCAT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
*** Script: GROUP_CONCAT_DISTINCT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
*** Script: COUNT(DISTINCT: 16
*** Script:
*** Script: Lexus
*** Script: AVG: 29841.250000000000
*** Script: MAX: 48406
*** Script: MIN: 15517
*** Script: SUM: 238730
*** Script: COUNT: 8
*** Script: STDDEV: 12073.56647214
*** Script: GROUP_CONCAT: 15517,16964,22371,23900,32421,36620,42531,48406
*** Script: GROUP_CONCAT_DISTINCT: 15517,16964,22371,23900,32421,36620,42531,48406
*** Script: COUNT(DISTINCT: 8
*** Script:
*** Script: Tesla
*** Script: AVG: 30790.000000000000
*** Script: MAX: 45032
*** Script: MIN: 16724
*** Script: SUM: 431060
*** Script: COUNT: 14
*** Script: STDDEV: 8510.068136760580
*** Script: GROUP_CONCAT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
*** Script: GROUP_CONCAT_DISTINCT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
*** Script: COUNT(DISTINCT: 14
*** Script:
*** Script: Toyota
*** Script: AVG: 32115.444444444444
*** Script: MAX: 49418
*** Script: MIN: 15188
*** Script: SUM: 289039
*** Script: COUNT: 9
*** Script: STDDEV: 12120.76776767
*** Script: GROUP_CONCAT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
*** Script: GROUP_CONCAT_DISTINCT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
*** Script: COUNT(DISTINCT: 9
*** Script:
Équivalent dans le champ d’application
Pour utiliser la méthode addAggregate() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addAggregate().
GlideAggregate : addBizCalendarTrend(String fieldName, String bizCalendarSysId)
Ajoute la tendance d’un calendrier d’entreprise à la requête d’agrégat. Cette méthode vous permet de choisir un champ de date et d’heure dans le GlideRecord correspondant et de regrouper les enregistrements en fonction d’une période de calendrier professionnel spécifiée.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Champ de date et d’heure dans le GlideRecord associé à utiliser pour déterminer dans quel groupe ou période du calendrier l’enregistrement sera inclus. |
| bizCalendarSysId | Chaîne | Sys_id de l’enregistrement de calendrier à utiliser. Il s’agit du calendrier qui contient les intervalles de temps souhaités. |
| Type | Description |
|---|---|
| Néant |
L’exemple de code suivant montre le nombre d’enregistrements d’incidents regroupés par périodes du calendrier professionnel « Mois ».
var monthCal = "4d7ddda353f3001076bcddeeff7b12b1"
var ga = new GlideAggregate('incident');
ga.addAggregate('COUNT');
ga.addBizCalendarTrend('opened_at', monthCal);
ga.setGroup(false);
ga.query();
gs.print(ga.getRowCount());
while (ga.next()) {
gs.info(ga.getValue('bizcalref') + ', ' + ga.getValue('bizcalrefend') + ', ' + ga.getAggregate('COUNT'));
}
Sortie :
13
2015-08-01 00:00:00, 2015-09-01 00:00:00, 2
2015-11-01 00:00:00, 2015-12-01 00:00:00, 2
2016-08-01 00:00:00, 2016-09-01 00:00:00, 3
2016-12-01 00:00:00, 2017-01-01 00:00:00, 1
2018-08-01 00:00:00, 2018-09-01 00:00:00, 3
2018-09-01 00:00:00, 2018-10-01 00:00:00, 3
2018-10-01 00:00:00, 2018-11-01 00:00:00, 2
2019-07-01 00:00:00, 2019-08-01 00:00:00, 2
2020-06-01 00:00:00, 2020-07-01 00:00:00, 1
2021-01-01 00:00:00, 2021-02-01 00:00:00, 1
2023-04-01 00:00:00, 2023-05-01 00:00:00, 15
2023-05-01 00:00:00, 2023-06-01 00:00:00, 23
2023-07-01 00:00:00, 2023-08-01 00:00:00, 9
GlideAggregate : addEncodedQuery(requête de chaîne)
Ajoute une requête codée aux autres requêtes qui ont pu être définies pour cet agrégat.
| Nom | Type | Description |
|---|---|---|
| query | Chaîne | Chaîne de requête codée à ajouter à l’agrégat. |
| Type | Description |
|---|---|
| Néant |
var agg = new GlideAggregate('incident');
agg.addAggregate('count','category');
agg.orderByAggregate('count', 'category');
agg.orderBy('category');
agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)');
agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)');
agg.query();
while (agg.next()) {
var category = agg.category;
var count = agg.getAggregate('count','category');
var query = agg.getQuery();
var agg2 = new GlideAggregate('incident');
agg2.addAggregate('count','category');
agg2.orderByAggregate('count', 'category');
agg2.orderBy('category');
agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
agg2.addEncodedQuery(query);
agg2.query();
var last = "";
while (agg2.next()) {
last = agg2.getAggregate('count','category');
}
gs.log(category + ": Last month:" + count + " Previous Month:" + last);
}
Équivalent dans le champ d’application
Pour utiliser la méthode addEncodedQuery() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addEncodedQuery().
GlideAggregate : addHaving(Nom de chaîne, Opérateur de chaîne, Valeur de chaîne)
Ajoute un élément « ayant » à l’agrégat, tel que sélectionner une catégorie, nombre(*) à partir du groupe d’incidents par catégorie HAVING nombre(*) > 5.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Agrégat sur lequel filtrer. Par exemple, COUNT. |
| opérateur | Chaîne | Symbole de l’opérateur. Par exemple <, >, =, !=. |
| valide | Chaîne | Valeur à interroger. Par exemple, « 5 ». |
| Type | Description |
|---|---|
| Néant |
var trend = new GlideAggregate('incident');
trend.addTrend ('opened_at','Month');
trend.addAggregate('COUNT');
//addHaving limits the results returned to those in which the aggregate COUNT is greater than 2
trend.addHaving('COUNT', '>', '2');
trend.setGroup(false);
trend.query();
while(trend.next()) {
gs.print(('Incidents by month ' + trend.getValue('timeref') + ' where count is more than 2 count is: ' + trend.getAggregate('COUNT'));
}
Sortie :
Incidents by month 9/2018 where count is more than 2 count is: 3
Incidents by month 10/2018 where count is more than 2 count is: 8
Incidents by month 11/2018 where count is more than 2 count is: 14
GlideAggregate : addHaving(String aggName, String fieldName, String operator, String value)
Ajoute un élément « ayant » à l’agrégat, tel que sélectionner une catégorie, nombre(*) à partir du groupe d’incidents par catégorie HAVING nombre(*) > 5. Cette implémentation de la méthode vous permet de spécifier un champ spécifique dans une table ou un attribut dynamique sur lequel agir.
| Nom | Type | Description |
|---|---|---|
| aggName | Chaîne | Agrégat sur lequel filtrer. Par exemple, COUNT. |
| Fieldname | Chaîne | Nom de champ ou chemin d’accès à un attribut dans un magasin d’attributs dynamique. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
Pour plus d’informations sur les attributs dynamiques, reportez-vous à la section Dynamic Schema. |
| opérateur | Chaîne | Symbole de l’opérateur. Par exemple <, >, =, !=. |
| valide | Chaîne | Valeur à interroger. Par exemple, « 5 ». |
| Type | Description |
|---|---|
| Néant |
L’exemple de code suivant montre comment identifier les numéros de série en double dans la table cmdb à l’aide d’un nom de champ dans l’appel de méthode addHaving( ).
function getDupes(tableName, dpField) {
var ga = new GlideAggregate(tableName);
ga.addAggregate('COUNT', dpField); // Aggregate to count values in whatever field is passed as dpField
ga.addHaving('COUNT', dpField, '>', '1'); // Returns only records having more than one active instance of dpField
ga.query();
var arDupes = new Array(); // Build array to push the results into
while (ga.next()) {
arDupes.push(ga.getValue(dpField)); // Push the value of the dupe field to the array
}
return arDupes;
}
var tableName = "cmdb";
var dpField = "serial_number";
gs.print(getDupes(tableName, dpField));
Sortie :
Incidents by month 9/2018 where count is more than 2 count is: 3
Incidents by month 10/2018 where count is more than 2 count is: 8
Incidents by month 11/2018 where count is more than 2 count is: 14
L’exemple suivant montre comment identifier les doublons, mais utilise un attribut dynamique au lieu d’un champ dans l’appel de méthode addHaving( ).
function getDupes(tableName, dpField) {
var ga = new GlideAggregate(tablename);
ga.addAggregate('COUNT', dpField); // Aggregate to count values in whatever dynamic attribute is passed as dpField
ga.addHaving('COUNT', dpField, '>', '1'); // Returns only records having more than one active instance of dpField
ga.query();
var arDupes = new Array(); // Build array to push the results into
while (ga.next()) {
arDupes.push(ga.getValue(dpField)); // Push the value of the dupe field to the array
}
return arDupes;
}
var tableName = "cmdb";
var dpField = "dyn_att_field->group->attr";
gs.print(getDupes(tableName, dpField));
Sortie :
Incidents by month 9/2018 where count is more than 2 count is: 3
Incidents by month 10/2018 where count is more than 2 count is: 8
Incidents by month 11/2018 where count is more than 2 count is: 14
GlideAggregate : addTrend(String fieldName, String timeInterval, Number numUnits)
Ajoute une tendance pour un champ. Utilisez une tendance pour afficher des schémas sur une période de temps.
| Nom | Type | Description |
|---|---|---|
| Fieldname | Chaîne | Nom du champ pour lequel la tendance doit se produire. |
| intervalle de temps | Chaîne | Intervalle de temps pour la tendance. Valeurs valides :
|
| Unités num | Numéro | Facultatif. Valide uniquement lorsque = timeIntervalminute. Nombre de minutes à inclure dans la tendance. Valeur par défaut : 1 |
| Type | Description |
|---|---|
| Néant |
var trend = new GlideAggregate('incident');
trend.addTrend ('opened_at','month');
trend.addAggregate('COUNT');
trend.setGroup(false);
trend.query();
while(trend.next()) {
gs.print(trend.getValue('timeref') + ': ' + trend.getAggregate('COUNT'));
}
Sortie :
9/2018: 3
10/2018: 8
11/2018: 14
Équivalent dans le champ d’application
Pour utiliser la méthode addTrend() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : addTrend().
GlideAggregate : getAggregate(String agg, String name)
Obtient la valeur d’un agrégat à partir de l’enregistrement actuel.
| Nom | Type | Description |
|---|---|---|
| Agrégat | Chaîne | Type de l’agrégat. Valeurs valides :
|
| nom | Chaîne | Nom du champ ou chemin d’accès à un attribut dans un schéma dynamique à partir duquel obtenir l’agrégat. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
Pour plus d’informations sur les attributs dynamiques, reportez-vous à la section Dynamic Schema. |
| Type | Description |
|---|---|
| Chaîne | Valeur de l’agrégation. Si les valeurs regroupées sont des valeurs de devises FX, la valeur renvoyée est au format <currency_code ; currency_value>, tels que : USD ; 134.980000. Remarque : Si le champ spécifié contient des valeurs de devises FX de types de devises mixtes, la méthode n’est pas en mesure d’agréger les valeurs et renvoie un point-virgule (;)). |
Cet exemple montre comment obtenir l’agrégat COUNT.
function doMyBusinessRule(assigned_to, number) {
var agg = new GlideAggregate('incident');
agg.addQuery('assigned_to', assigned_to);
agg.addQuery('category', number);
agg.addAggregate("COUNT");
agg.query();
var answer = 'false';
if (agg.next()) {
answer = agg.getAggregate("COUNT");
if (answer > 0)
answer = 'true';
else
answer = 'false';
}
return answer;
}
Cet exemple montre l’agrégation d’un champ Devise FX.
var ga = new GlideAggregate('laptop_tracker');
ga.addAggregate('SUM', 'cost');
ga.groupBy('name');
ga.query();
while (ga.next()) {
gs.info('Aggregate results ' + ga.getValue('name') + ' => ' + ga.getAggregate('SUM', 'cost'));
}
Sortie :
*** Script: Aggregate results Apple MacBook Air => USD;1651.784280000000
*** Script: Aggregate results Apple MacBook Pro => USD;1651.784280000000
*** Script: Aggregate results Dell XPS => USD;470.852672000000
*** Script: Aggregate results LG =>
*** Script: Aggregate results Samsung Galaxy => USD;225.320000000000
*** Script: Aggregate results Surface3 => USD;2895.560369520000
*** Script: Aggregate results Toshiba => USD;9385.202875800000
L’exemple suivant montre comment appeler cette méthode à l’aide d’un attribut dans un magasin d’attributs dynamiques.
var ga_Inc = new GlideAggregate('incident');
ga_Inc.groupBy('inc_dynamic_schema->cars->make');
ga_Inc.addAggregate('AVG', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('MIN', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('MAX', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('SUM', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('COUNT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('STDDEV', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost');
ga_Inc.addAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost');
ga_Inc.query();
while (ga_Inc.next()) {
gs.info(gr_Inc.getValue('inc_dynamic_schema->cars->make'));
gs.info('AVG: ' + ga_Inc.getAggregate('AVG', 'inc_dynamic_schema->cars->cost'));
gs.info('MAX: ' + ga_Inc.getAggregate('MAX', 'inc_dynamic_schema->cars->cost'));
gs.info('MIN: ' + ga_Inc.getAggregate('MIN', 'inc_dynamic_schema->cars->cost'));
gs.info('SUM: ' + ga_Inc.getAggregate('SUM', 'inc_dynamic_schema->cars->cost'));
gs.info('COUNT: ' + ga_Inc.getAggregate('COUNT', 'inc_dynamic_schema->cars->cost'));
gs.info('STDDEV: ' + ga_Inc.getAggregate('STDDEV', 'inc_dynamic_schema->cars->cost'));
gs.info('GROUP_CONCAT: ' + ga_Inc.getAggregate('GROUP_CONCAT', 'inc_dynamic_schema->cars->cost'));
gs.info('GROUP_CONCAT_DISTINCT: ' + ga_Inc.getAggregate('GROUP_CONCAT_DISTINCT', 'inc_dynamic_schema->cars->cost'));
gs.info('COUNT(DISTINCT: ' + ga_Inc.getAggregate('COUNT(DISTINCT', 'inc_dynamic_schema->cars->cost'));
gs.info(' ');
}
Sortie :
*** Script: BMW
*** Script: AVG: 31852.066666666667
*** Script: MAX: 49182
*** Script: MIN: 16544
*** Script: SUM: 477781
*** Script: COUNT: 15
*** Script: STDDEV: 10376.50218706
*** Script: GROUP_CONCAT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
*** Script: GROUP_CONCAT_DISTINCT: 16544,18427,19083,22144,24126,27018,32353,34934,35691,35698,35799,36814,41257,48711,49182
*** Script: COUNT(DISTINCT: 15
*** Script:
*** Script: Ford
*** Script: AVG: 31520.090909090909
*** Script: MAX: 47408
*** Script: MIN: 16080
*** Script: SUM: 346721
*** Script: COUNT: 11
*** Script: STDDEV: 11355.75551388
*** Script: GROUP_CONCAT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
*** Script: GROUP_CONCAT_DISTINCT: 16080,16082,16996,27621,31662,33478,35201,36965,38085,47143,47408
*** Script: COUNT(DISTINCT: 11
*** Script:
*** Script: Honda
*** Script: AVG: 31972.750000000000
*** Script: MAX: 49187
*** Script: MIN: 15208
*** Script: SUM: 511564
*** Script: COUNT: 16
*** Script: STDDEV: 10240.67632207
*** Script: GROUP_CONCAT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
*** Script: GROUP_CONCAT_DISTINCT: 15208,17926,18365,20942,25557,28215,29090,34336,34857,34969,37144,38097,41541,41805,44325,49187
*** Script: COUNT(DISTINCT: 16
*** Script:
*** Script: Lexus
*** Script: AVG: 29841.250000000000
*** Script: MAX: 48406
*** Script: MIN: 15517
*** Script: SUM: 238730
*** Script: COUNT: 8
*** Script: STDDEV: 12073.56647214
*** Script: GROUP_CONCAT: 15517,16964,22371,23900,32421,36620,42531,48406
*** Script: GROUP_CONCAT_DISTINCT: 15517,16964,22371,23900,32421,36620,42531,48406
*** Script: COUNT(DISTINCT: 8
*** Script:
*** Script: Tesla
*** Script: AVG: 30790.000000000000
*** Script: MAX: 45032
*** Script: MIN: 16724
*** Script: SUM: 431060
*** Script: COUNT: 14
*** Script: STDDEV: 8510.068136760580
*** Script: GROUP_CONCAT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
*** Script: GROUP_CONCAT_DISTINCT: 16724,17173,21049,24837,28431,30594,31871,32549,32675,33778,36963,37946,41438,45032
*** Script: COUNT(DISTINCT: 14
*** Script:
*** Script: Toyota
*** Script: AVG: 32115.444444444444
*** Script: MAX: 49418
*** Script: MIN: 15188
*** Script: SUM: 289039
*** Script: COUNT: 9
*** Script: STDDEV: 12120.76776767
*** Script: GROUP_CONCAT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
*** Script: GROUP_CONCAT_DISTINCT: 15188,16453,24596,28529,32863,34697,42790,44505,49418
*** Script: COUNT(DISTINCT: 9
*** Script:
Équivalent dans le champ d’application
Pour utiliser la méthode getAggregate() dans une application incluse dans le périmètre, utilisez la méthode correspondante : getAggregate().
GlideAggregate : getDynamicAttributeValue(String fullPath)
Renvoie la valeur de l’attribut dynamique situé sur un chemin d’accès spécifié.
| Nom | Type | Description |
|---|---|---|
| fullPath | Chaîne | Chemin d’accès à utiliser pour localiser l’attribut dynamique souhaité. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
|
| Type | Description |
|---|---|
| Objet | Valeur de l’attribut dynamique situé sur le chemin d’accès spécifié. Si le fullPath paramètre contient des données non valides ou si la valeur d’attribut spécifiée n’est pas l’un des types de données pris en charge, renvoie null. |
L’exemple de code suivant montre comment appeler cette méthode.
var ga_Tab = new GlideAggregate('u_mytable');
ga_Tab.groupBy('u_dyn_attr_store->paint->color');
ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
ga_Tab.query();
while(ga_Tab.next()) {
gs.info(
"color: " + ga_Tab.getDynamicAttributeValue('u_dyn_attr_store->paint->color')
+ " avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
}
*** Script: color: blue avg: 5.0000
*** Script: color: red avg: 8.0000
*** Script: color: yellow avg: 7.0000GlideAggregate : getDynamicAttributeValue(String, dynamicAttributeField, String, groupAttrPath)
Renvoie la valeur de l’attribut dynamique situé dans un champ spécifié dans la table actuelle et un chemin d’accès d’attribut spécifié.
| Nom | Type | Description |
|---|---|---|
| dynamicAttributeField | Chaîne | Nom du champ dans la table qui contient l’attribut dynamique. |
| groupAttrPath | Chaîne | Chemin d’accès d’attribut à utiliser pour localiser l’attribut de schéma dynamique associé. Format : « group_name->attr_name »
Par exemple : |
| Type | Description |
|---|---|
| Objet | Valeur de l’attribut dynamique situé sur le chemin d’accès spécifié. Si les dynamicAttributeField paramètres OU groupAttrPath ne sont pas valides, renvoie la valeur null. |
L’exemple de code suivant montre comment appeler cette méthode.
var ga_Tab = new GlideAggregate('u_mytable');
ga_Tab.groupBy('u_dyn_attr_store->paint->color');
ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
ga_Tab.query();
while(ga_Tab.next()) {
gs.info(
"color: " + ga_Tab.getDynamicAttributeValue('u_dyn_attr_store', 'paint->color')
+ " avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
}
*** Script: color: blue avg: 5.0000
*** Script: color: red avg: 8.0000
*** Script: color: yellow avg: 7.0000GlideAggregate : getDynamicAttributeDisplayValue(String fullPath)
Renvoie la valeur d’affichage de l’attribut dynamique situé sur le chemin d’accès spécifié.
| Nom | Type | Description |
|---|---|---|
| fullPath | Chaîne | Chemin d’accès à utiliser pour localiser l’attribut dynamique souhaité. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
|
| Type | Description |
|---|---|
| Chaîne | Valeur d’affichage de l’attribut dynamique situé sur le chemin d’accès spécifié. Si le paramètre n’est fullPath pas valide, renvoie null. |
L’exemple de code suivant montre comment appeler cette méthode.
var ga_Tab = new GlideAggregate('u_mytable');
ga_Tab.groupBy('u_dyn_attr_store->paint->color');
ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
ga_Tab.query();
while(ga_Tab.next()) {
gs.info(
"color: " + ga_Tab.getDynamicAttributeDisplayValue('u_dyn_attr_store->paint->color')
+ " avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
}
*** Script: color: blue avg: 5.0000
*** Script: color: red avg: 8.0000
*** Script: color: yellow avg: 7.0000GlideAggregate : getDynamicAttributeDisplayValue (String dynamicAttributeField, String groupAttrPath)
Renvoie la valeur d’affichage de l’attribut dynamique situé dans un champ de table et un chemin d’accès d’attribut spécifiés.
| Nom | Type | Description |
|---|---|---|
| dynamicAttributeField | Chaîne | Nom du champ dans la table qui contient l’attribut dynamique. |
| groupAttrPath | Chaîne | Chemin d’accès d’attribut à utiliser pour localiser l’attribut de schéma dynamique associé. Format : « group_name->attr_name »
Par exemple : |
| Type | Description |
|---|---|
| Chaîne | Valeur d’affichage de l’attribut dynamique situé sur le chemin d’accès spécifié. Si les dynamicAttributeField paramètres OU groupAttrPath ne sont pas valides, renvoie la valeur null. |
L’exemple de code suivant montre comment appeler cette méthode.
var ga_Tab = new GlideAggregate('u_mytable');
ga_Tab.groupBy('u_dyn_attr_store->paint->color');
ga_Tab.addAggregate('AVG', 'u_dyn_attr_store->paint->number');
ga_Tab.query();
while(ga_Tab.next()) {
gs.info(
"color: " + ga_Tab.getDynamicAttributeDisplayValue('u_dyn_attr_store', 'paint->color')
+ " avg: " + ga_Tab.getAggregate('AVG', 'u_dyn_attr_store->paint->number'));
}
*** Script: color: blue avg: 5.0000
*** Script: color: red avg: 8.0000
*** Script: color: yellow avg: 7.0000GlideAggregate : getQuery()
Récupère la requête nécessaire pour renvoyer l’agrégat actuel.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Chaîne | La requête. |
var agg = new GlideAggregate('incident');
agg.addAggregate('count','category');
agg.orderByAggregate('count', 'category');
agg.orderBy('category');
agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)');
agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)');
agg.query();
while (agg.next()) {
var category = agg.category;
var count = agg.getAggregate('count','category');
var query = agg.getQuery();
var agg2 = new GlideAggregate('incident');
agg2.addAggregate('count','category');
agg2.orderByAggregate('count', 'category');
agg2.orderBy('category');
agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
agg2.addEncodedQuery(query);
agg2.query();
var last = "";
while (agg2.next()) {
last = agg2.getAggregate('count','category');
}
gs.log(category + ": Last month:" + count + " Previous Month:" + last);
}
GlideAggregate : getRowCount()
Récupère le nombre de lignes dans l’objet GlideAggregate.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Numéro | Nombre de lignes dans l’objet GlideAggregate. |
var count = new GlideAggregate('incident');
count.addAggregate('MIN', 'sys_mod_count');
count.addAggregate('MAX', 'sys_mod_count');
count.addAggregate('AVG', 'sys_mod_count');
count.groupBy('category');
count.query();
gs.info(count.getRowCount());
while (count.next()) {
var min = count.getAggregate('MIN', 'sys_mod_count');
var max = count.getAggregate('MAX', 'sys_mod_count');
var avg = count.getAggregate('AVG', 'sys_mod_count');
var category = count.category.getDisplayValue();
gs.info(category + " Update counts: MIN = " + min + " MAX = " + max + " AVG = " + avg);
}
6
Database Update counts: MIN = 8 MAX = 48 AVG = 28.0000
Hardware Update counts: MIN = 4 MAX = 14 AVG = 6.6250
Inquiry / Help Update counts: MIN = 0 MAX = 34 AVG = 6.5714
Network Update counts: MIN = 3 MAX = 37 AVG = 18.6000
Request Update counts: MIN = 5 MAX = 39 AVG = 13.4000
Software Update counts: MIN = 4 MAX = 98 AVG = 24.0000Équivalent dans le champ d’application
Pour utiliser la méthode getRowCount() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : Scoped GlideAggregate : getRowCount().
GlideAggregate : getTotal(String agg, nom de chaîne)
Renvoie le nombre d’enregistrements en additionnant un agrégat.
| Nom | Type | Description |
|---|---|---|
| Agrégat | Chaîne | Nom d’un agrégat à utiliser. Valeurs valides :
|
| nom | Chaîne | Nom du champ à regrouper. |
| Type | Description |
|---|---|
| Numéro | Nombre d’enregistrements. |
var incidentGA = new GlideAggregate('incident');
incidentGA.addQuery('category', 'software');
incidentGA.addAggregate('COUNT');
incidentGA.addTrend('opened_at','year'); // Counting number of incidents for software category per year
incidentGA.setGroup(false);
incidentGA.query();
while(incidentGA.next()){
gs.info('Incidents opened on year - '+incidentGA.getValue('timeref')+' - '+incidentGA.getAggregate('COUNT'));
}
gs.info('Total Aggregate Value >> '+ incidentGA.getTotal('COUNT'));
Sortie :
Incidents opened on year - 2015 - 1
Incidents opened on year - 2018 - 5
Incidents opened on year - 2020 - 10
Total Aggregate Value >> 16
GlideAggregate : getValue(nom de chaîne)
Renvoie la valeur d’un champ ou d’un attribut dynamique.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de champ ou chemin d’accès à un attribut dans un magasin d’attributs dynamique. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
|
| Type | Description |
|---|---|
| Chaîne | Valeur du champ spécifié. Renvoie null si non valide (ne fait pas partie de l’ensemble de résultats). |
var trend = new GlideAggregate('incident');
trend.addTrend ('opened_at','Month');
trend.addAggregate('COUNT');
//addHaving limits the results returned to those in which the aggregate COUNT is greater than 2
trend.addHaving('COUNT', '>', '2');
trend.setGroup(false);
trend.query();
while(trend.next()) {
gs.print(('Incidents by month ' + trend.getValue('timeref') + ' where count is more than 2 count is: ' + trend.getAggregate('COUNT'));
}
Sortie :
Incidents by month 9/2018 where count is more than 2 count is: 3
Incidents by month 10/2018 where count is more than 2 count is: 8
Incidents by month 11/2018 where count is more than 2 count is: 14
Équivalent dans le champ d’application
Pour utiliser la méthode getValue() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : getValue().
GlideAggregate : groupBy (nom de chaîne)
Fournit le nom d’un champ ou d’un attribut dans un magasin d’attributs dynamiques à utiliser lors du regroupement des agrégats.
Peut être appelé plusieurs fois pour définir plusieurs champs de groupe.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de champ ou chemin d’accès à un attribut dans un magasin d’attributs dynamique. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
Pour plus d’informations sur les attributs dynamiques, reportez-vous à la section Dynamic Schema. |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant montre comment appeler cette méthode.
var count = new GlideAggregate('incident');
count.addAggregate('MIN', 'sys_mod_count');
count.addAggregate('MAX', 'sys_mod_count');
count.addAggregate('AVG', 'sys_mod_count');
count.groupBy('category');
count.query();
while (count.next()) {
var min = count.getAggregate('MIN', 'sys_mod_count');
var max = count.getAggregate('MAX', 'sys_mod_count');
var avg = count.getAggregate('AVG', 'sys_mod_count');
var category = count.category.getDisplayValue();
gs.log(category + " Update counts: MIN = " + min + " MAX = " + max + " AVG = " + avg);
}
L’exemple suivant montre comment appeler cette méthode à l’aide d’un attribut dans un magasin d’attributs dynamiques.
var ga_AppTab = new GlideAggregate('application_table');
ga_AppTab.addGroupBy('dyn_att_field->group->attr');
ga_AppTab.addAggregate('AVG', 'dyn_att_field->group->attr1');
ga_AppTab.addHaving('SUM', 'dyn_att_field->group->attr2', '>=', 420);
ga.query();
Équivalent dans le champ d’application
Pour utiliser la méthode groupBy() dans une application incluse dans le périmètre, utilisez la méthode correspondante : groupBy().
GlideAggregate : orderBy(nom de chaîne)
Trie les agrégats en fonction de la valeur du champ, du chemin d’accès de l’attribut dynamique ou de la fonction Glide. Le champ est également ajouté à la liste grouper par.
| Nom | Type | Description |
|---|---|---|
| nom | Chaîne | Nom de champ, chemin d’accès à un attribut dans un magasin d’attributs dynamiques ou fonction Glide à utiliser pour ordonner les agrégats. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
Pour plus d’informations sur les attributs dynamiques, reportez-vous à la section Dynamic Schema. Format GlideFunction : |
| Type | Description |
|---|---|
| Néant |
var agg = new GlideAggregate('incident');
agg.addAggregate('count','category');
agg.orderByAggregate('count', 'category');
agg.orderBy('category');
agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)');
agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)');
agg.query();
while (agg.next()) {
var category = agg.category;
var count = agg.getAggregate('count','category');
var query = agg.getQuery();
var agg2 = new GlideAggregate('incident');
agg2.addAggregate('count','category');
agg2.orderByAggregate('count', 'category');
agg2.orderBy('category');
agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
agg2.addEncodedQuery(query);
agg2.query();
var last = "";
while (agg2.next()) {
last = agg2.getAggregate('count','category');
}
gs.log(category + ": Last month:" + count + " Previous Month:" + last);
}
Équivalent dans le champ d’application
Pour utiliser la méthode orderBy() dans une application incluse dans le périmètre, utilisez la méthode correspondante : orderBy().
GlideAggregate : orderByAggregate(String agg, String fieldName)
Trie les agrégats en fonction de l’agrégat et du champ ou de l’attribut dynamique spécifiés.
| Nom | Type | Description |
|---|---|---|
| Agrégat | Chaîne | Type d’agrégation. Valeurs valides :
|
| Fieldname | Chaîne | Nom du champ ou du chemin d’accès à un attribut dans un magasin d’attributs dynamiques à regrouper. Format du chemin d’accès dynamique : dyn_att_field->group_name->attribute_name
Pour plus d’informations sur les attributs dynamiques, reportez-vous à la section Dynamic Schema. |
| Type | Description |
|---|---|
| Néant |
var agg = new GlideAggregate('incident');
agg.addAggregate('count','category');
agg.orderByAggregate('count', 'category');
agg.orderBy('category');
agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)');
agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)');
agg.query();
while (agg.next()) {
var category = agg.category;
var count = agg.getAggregate('count','category');
var query = agg.getQuery();
var agg2 = new GlideAggregate('incident');
agg2.addAggregate('count','category');
agg2.orderByAggregate('count', 'category');
agg2.orderBy('category');
agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
agg2.addEncodedQuery(query);
agg2.query();
var last = "";
while (agg2.next()) {
last = agg2.getAggregate('count','category');
}
gs.log(category + ": Last month:" + count + " Previous Month:" + last);
}
Équivalent dans le champ d’application
Pour utiliser la méthode orderByAggregate() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : orderByAggregate().
GlideAggregate : query()
Émet la requête et obtient les résultats.
| Nom | Type | Description |
|---|---|---|
| Aucun |
| Type | Description |
|---|---|
| Néant |
var agg = new GlideAggregate('incident');
agg.addAggregate('count','category');
agg.orderByAggregate('count', 'category');
agg.orderBy('category');
agg.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(2)');
agg.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(2)');
agg.query();
while (agg.next()) {
var category = agg.category;
var count = agg.getAggregate('count','category');
var query = agg.getQuery();
var agg2 = new GlideAggregate('incident');
agg2.addAggregate('count','category');
agg2.orderByAggregate('count', 'category');
agg2.orderBy('category');
agg2.addQuery('opened_at', '>=', 'javascript:gs.monthsAgoStart(3)');
agg2.addQuery('opened_at', '<=', 'javascript:gs.monthsAgoEnd(3)');
agg2.addEncodedQuery(query);
agg2.query();
var last = "";
while (agg2.next()) {
last = agg2.getAggregate('count','category');
}
gs.log(category + ": Last month:" + count + " Previous Month:" + last);
Équivalent dans le champ d’application
Pour utiliser la méthode query() dans une application incluse dans le périmètre, utilisez la méthode correspondante : query().
GlideAggregate : setAggregateWindow(Number firstRow, Number lastRow)
Limite le nombre de lignes de la table à inclure dans la requête d’agrégat.
| Nom | Type | Description |
|---|---|---|
| première ligne | Numéro | Index de base zéro de la première ligne à inclure dans la requête d’agrégat, incluse. |
| dernière ligne | Numéro | Index de base zéro de la dernière ligne à inclure dans la requête d’agrégat, exclusif. |
| Type | Description |
|---|---|
| Néant |
Imprime le nombre de chaque catégorie pour les dix premiers enregistrements dans la table Incident [incident].
var incidentGroup = new GlideAggregate('incident');
incidentGroup.addAggregate('COUNT', 'category');
incidentGroup.setAggregateWindow(0, 10);
incidentGroup.query();
while (incidentGroup.next()) {
var incidentCount = incidentGroup.getAggregate('COUNT', 'category');
gs.info('{0} count: {1}', [incidentGroup.getValue('category'), incidentCount]);
}
Sortie :
database count: 1
Hardware count: 1
inquiry count: 7
software count: 1
Équivalent dans le champ d’application
Pour utiliser la méthode setAggregateWindow() dans une application incluse dans le périmètre, utilisez la méthode correspondante : setAggregateWindow().
GlideAggregate : setGroup(booléen b)
Définit s’il faut regrouper les résultats.
| Nom | Type | Description |
|---|---|---|
| b | Booléen | Marqueur indiquant s’il faut regrouper ou non les résultats. Valeurs valides :
|
| Type | Description |
|---|---|
| Néant |
var ga = new GlideAggregate('incident');
ga.addAggregate('COUNT', 'category');
ga.setGroup(true);
Équivalent dans le champ d’application
Pour utiliser la méthode setGroup() dans une application incluse dans le périmètre, utilisez la méthode correspondante : setGroup().
GlideAggregate : setIntervalYearIncluded(booléen b)
Définit s’il faut regrouper les résultats par année pour les tendances du jour de la semaine. Ces tendances sont créées à l’aide de la méthode addTrend() avec l’intervalle dayofweek de temps.
Dépendance : GlideAggregate : addTrend('<fieldName>', 'dayofweek').
| Nom | Type | Description |
|---|---|---|
| b | Booléen | Marqueur indiquant s’il faut inclure une année pour une tendance avec un intervalle de temps de jour de la semaine. Valeurs valides :
Par défaut : true |
| Type | Description |
|---|---|
| Néant |
L’exemple suivant montre comment compter les incidents créés au cours des six derniers mois. Les incidents sont séparés par le jour de la semaine, mais sans inclure l’année. Par exemple, les résultats par défaut pour jeudi incluraient l’année, comme jeudi /2023 : 16.
var incidentGroup = new GlideAggregate('incident');
incidentGroup.addEncodedQuery("sys_created_onRELATIVEGT@month@ago@6");
incidentGroup.addTrend('sys_created_on', 'dayofweek');
incidentGroup.addAggregate('COUNT');
incidentGroup.setIntervalYearIncluded(false);
incidentGroup.query();
while (incidentGroup.next()) {
gs.info(incidentGroup.getValue('timeref') + ': ' + incidentGroup.getAggregate('COUNT'))};
Sortie :
Sunday: 1
Monday: 15
Tuesday: 1
Wednesday: 7
Thursday: 16
Saturday: 1
Équivalent dans le champ d’application
Pour utiliser la méthode setIntervalYearIncluded() dans une application incluse dans le périmètre, utilisez la méthode incluse dans le périmètre correspondante : setIntervalYearIncluded().