- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2025 04:37 AM
Hello,
I have an issue with a script and I don't know what wrong.
The script returns the same value for x and y instead of two different values. Can you help?
var x,y;
var req, item;
var i=1;
var gr2 = GlideRecord('sc_req_item');
gr2.addQuery('requested_for', '86f01750db3cdf00269cfd431d9619d3');
gr2.addQuery('cat_item', 'e660f7838781b1101709a8280cbb35e0');
gr2.orderByDesc('sys_created_on');
gr2.setLimit(2);
gr2.query();
while (gr2.next()) {
if (i == 1) {
x = gr2.sys_id;
i++;
}
if (i == 2) {
y = gr2.sys_id;
i++;
}
gs.info('sys_id=' + gr2.sys_id + ' for=' + gr2.requested_for + ' created=' + gr2.sys_created_on);
}
gs.info('id1='+x+' id2='+y);
and the result is:
*** Script: sys_id=426e27b2c3106e109dd63fc90501312c for=86f01750db3cdf00269cfd431d9619d3 created=2025-03-19 13:30:36
*** Script: sys_id=27cdab72c3106e109dd63fc905013193 for=86f01750db3cdf00269cfd431d9619d3 created=2025-03-19 13:27:58
*** Script: id1=27cdab72c3106e109dd63fc905013193 id2=27cdab72c3106e109dd63fc905013193
why are id1 and id2 igal?
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-20-2025 04:43 AM
Hi @Lom
verify with below updated script:
var x, y;
var i = 1;
var gr2 = new GlideRecord('sc_req_item');
gr2.addQuery('requested_for', '86f01750db3cdf00269cfd431d9619d3');
gr2.addQuery('cat_item', 'e660f7838781b1101709a8280cbb35e0');
gr2.orderByDesc('sys_created_on');
gr2.setLimit(2);
gr2.query();
while (gr2.next()) {
if (i == 1) {
x = gr2.sys_id.toString(); // Ensure string conversion
} else if (i == 2) {
y = gr2.sys_id.toString();
}
gs.info('sys_id=' + gr2.sys_id + ' for=' + gr2.requested_for + ' created=' + gr2.sys_created_on);
i++;
}
gs.info('id1=' + x + ' id2=' + y);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-21-2025 01:11 AM
Now if you add toString() only, id1 and id2 are still the same:
var x,y;
var req, item;
var i=1;
var gr2 = GlideRecord('sc_req_item');
gr2.addQuery('requested_for', '86f01750db3cdf00269cfd431d9619d3');
gr2.addQuery('cat_item', 'e660f7838781b1101709a8280cbb35e0');
gr2.orderByDesc('sys_created_on');
gr2.setLimit(2);
gr2.query();
while (gr2.next()) {
if (i == 1) {
x = gr2.sys_id.toString();
i++;
}
if (i == 2) {
y = gr2.sys_id.toString();
i++;
}
gs.info('sys_id=' + gr2.sys_id + ' for=' + gr2.requested_for + ' created=' + gr2.sys_created_on);
}
gs.info('id1='+x+' id2='+y);
*** Script: sys_id=ffd8fc53c3d0ae109dd63fc905013127 for=86f01750db3cdf00269cfd431d9619d3 created=2025-03-20 13:34:26
*** Script: sys_id=a7187853c3d0ae109dd63fc905013151 for=86f01750db3cdf00269cfd431d9619d3 created=2025-03-20 13:31:07
*** Script: id1=ffd8fc53c3d0ae109dd63fc905013127 id2=ffd8fc53c3d0ae109dd63fc905013127
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-21-2025 04:59 AM
Ah, yes, in this use case you should also only increment 'i' once in the while loop instead of in each if block:
var x,y;
var req, item;
var i=1;
var gr2 = GlideRecord('sc_req_item');
gr2.addQuery('requested_for', '86f01750db3cdf00269cfd431d9619d3');
gr2.addQuery('cat_item', 'e660f7838781b1101709a8280cbb35e0');
gr2.orderByDesc('sys_created_on');
gr2.setLimit(2);
gr2.query();
while (gr2.next()) {
if (i == 1) {
x = gr2.getValue('sys_id');
}
if (i == 2) {
y = gr2.getValue('sys_id');
}
i++;
gs.info('sys_id=' + gr2.sys_id + ' for=' + gr2.requested_for + ' created=' + gr2.sys_created_on);
}
gs.info('id1='+x+' id2='+y);