How to pass multiple parameters in eventparam1
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-29-2020 03:43 AM
can anyone help me, how we pass multiple parameters in eventparam1.
Thanks.Smitha

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-29-2020 03:46 AM
use array to store the result and then pass it in eventQueue()
assuming you are using eventQueue()
var userList = [];
var userRec = new GlideRecord("sys_user");
userRec.addEncodedQuery(YOUR-ENCODED-QUERY);
userRec.query();
while (userRec.next()) {
if (userList.toString().indexOf(userRec.sys_id) == -1) {
userList.push(userRec.sys_id + "");
}
}
gs.eventQueue("EVENT-NAME", current, userList.toString());
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-29-2020 03:54 AM
Hi,
Do you want to send more than 1 value in event parm1?
If yes then form a json object and send it in 3rd parameter of eventQueue() method
Usually recipients are sent in parm1; for sending additional information to the email script you can use parm2
sample script below
var jsonObj = {};
jsonObj.name = 'Abel Tuter';
jsonObj.email = 'abel.tuter@example.com';
gs.eventQueue('Event Name', GlideRecord Obj, recipientArray, JSON.stringify(jsonObj));
In the email script use this to parse the json
var jsonObj = JSON.parse(event.parm2);
var email = jsonObj.email;
var name = jsonObj.name;
Mark ✅ Correct if this solves your issue and also mark 👍 Helpful if you find my response worthy based on the impact.
Thanks
Ankur
Ankur
✨ Certified Technical Architect || ✨ 9x ServiceNow MVP || ✨ ServiceNow Community Leader
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
10-09-2020 11:18 PM
Hello Ankur,
I have a similar requirement where i need to populate 'Kb article num + Valid date' in email notification currently only Kb Article num is populating by using below Email script could you please help me out what changes need to be made to populate Valid date along with Kb article.
Email script:
(function runMailScript(current, template, email, email_action, event) {
// Add your code here
var obj = new getEmailBody();
var objSubjectBody = obj.getEmailSubjectBody('metlife.emailScript.kb.artiles.expiry',current.author);
var subject_value = objSubjectBody[0] ;
template.print(objSubjectBody[1] + "</br></br>");
email.setSubject(subject_value);
var know = event.parm2;
var kb = know.split(',');
var instanceURL = gs.getProperty('glide.servlet.uri');
var ui_page;
for(var i =0 ; i <= kb.length ; i++)
{
if(kb[i]){
ui_page = instanceURL+'kb_view.do?sysparm_article='+kb[i];
template.print("<a href="+ui_page+">"+kb[i] + " "+"</a></br>");
}
}
template.print("</br>");
ui_page = instanceURL+'kb_view.do?sysparm_article='+ gs.getProperty('update.expiring.kb.article');
var objSubjectBody2 = obj.getEmailSubjectBody('metlife.emailScripts.kb.knowledge.expiry.articleLink',current.author);
template.print("<a href="+ui_page+">"+objSubjectBody2[1] + " "+"</a></br>");
// prints the email footer
var objSubjectBody1 = obj.getEmailSubjectBody('Automated.email',current.author);
template.print("</br></br>"+objSubjectBody1[1]);
})(current, template, email, email_action, event);
Scheduled Job:
var kb ='' ;
var kb1 ='' ;
var usr = '';
var group = '';
var days = gs.getProperty('kb.articles.expiry.days');
var qrystr = "active=true^workflow_state=published^valid_toBETWEENjavascript:gs.nowDateTime()@javascript:gs.daysAgo(-"+days+")";
var expdt = new GlideRecord("kb_knowledge");
expdt.addEncodedQuery(qrystr);
expdt.orderByDesc('author');
expdt.query();
while(expdt.next()){
// If author field is not empty and if it is a valid user, send author's email in parm1
// else it is send Author group members email in parm1
if(!gs.nil(expdt.author) && expdt.author.active == true)
{
var id = expdt.author.toString();
if(id != usr){
usr = id;
var str = "active=true^workflow_state=published^valid_toBETWEENjavascript:gs.nowDateTime()@javascript:gs.daysAgo(-"+days+")^author="+expdt.author;
var k = new GlideRecord("kb_knowledge");
k.addEncodedQuery(str);
k.query();
while(k.next()){
kb = kb + ',' + k.number;
}
//gs.print(expdt.author.name + " " + kb);
gs.eventQueue('reminder.kb.articles.expiration',expdt,expdt.author.email,kb);
kb = '';
}
}
else
{
var grpMem = [];
var groupId = expdt.u_author_group.toString();
if (!gs.nil(expdt.u_author_group) && (groupId != group))
{
group = groupId;
// collects the group members email
var grp = expdt.u_author_group;
var mem = new GlideRecord('sys_user_grmember');
mem.addQuery('group',grp);
mem.query();
while(mem.next()){
grpMem.push(mem.user.email);
}
// collects all the KB articles for author group
var str1 = "workflow_state=published^valid_toBETWEENjavascript:gs.nowDateTime()@javascript:gs.daysAgo(-"+days+")^author.active=false^active=true^u_author_group="+grp;
var k1 = new GlideRecord("kb_knowledge");
k1.addEncodedQuery(str1);
k1.query();
while(k1.next()){
kb1 = kb1 + ',' + k1.number;
}
//gs.print(" group members " + grpMem.length + " " + expdt.number + " " + mem.group.name);
gs.eventQueue('reminder.kb.articles.expiration',expdt,grpMem,kb1);
kb1 = '';
}
}
}
Email Notification :
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
01-29-2020 04:14 AM
1. Create one array/object and push all parameters in that variable.
2. Send that parameter as eventparam1 in the gs.eventQueue statement.
3. Pop out the parameters from eventparam1 wherever required in the notification script.