- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2022 02:41 AM
Hi everyone,
How can we combine multiple email scripts as one email script for fetching data on email body for different tables.
Scripts:
var gr = new GlideRecord("cmdb_ci_business_app");
gr.addQuery('assigned_to.name', event.parm2);
gr.query();
while (gr.next()) {
template.print(gr.number);
template.print("<br/>");
}
var gr = new GlideRecord("cmdb_ci_service_discovered");
gr.addQuery('assigned_to.name', event.parm2);
gr.query();
while (gr.next()) {
template.print(gr.number);
template.print("<br/>");
}
Thanks
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2022 05:46 AM
we need to two email scripts in this case
Reason :
Events and notifications work in such a way that event is on the same table and the notification is on the same table .
So the your notification is on business app table and the event used there is business app so what ever you write in as event.parm1 and event.parm2 it will get only business app records even if you are glide recording another table and using event.parm2 of its corresponding event it wont catch the value it catches business app assigned to name only as the notification is on Business app table
so please have two email scripts in this case
please mark my answer correct if it helps you and close the thread
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2022 04:37 AM
i think i got the issue .
See if you are merging two email scripts into one always remember you use different event parameters which are event.parm1 and event.parm2
Reason:
you glide recorded to cmdb_ci_business_app and you are receiving parameter as event.parm2 to compare the assigned to name
you glide recorded cmdb_ci_service_discovered and you are receiving parameter as event.parm2 which again contains the value of event parameter for cmdb_ci_business_app which will render the same data even if you glide recorded two different tables because you are using event.parm2 two times for two different glide records which will contain same value
so while triggering the event for cmdb_ci_business_app send the assigned_to.name value in parm1 and do glide record as below
var gr = new GlideRecord("cmdb_ci_business_app");
gr.addQuery('assigned_to.name', event.parm1);
gr.query();
while (gr.next()) {
template.print(gr.number);
template.print("<br/>");
}
while triggering the event for cmdb_ci_service_discovered send the assigned_to.name value in parm2 and do glide record as below
var ds = new GlideRecord("cmdb_ci_service_discovered");
ds.addQuery('assigned_to.name', event.parm2);
ds.query();
while (ds.next()) {
template.print(ds.number);
template.print("<br/>");
}
OR
Best to have two email scripts with out any confusion in the same email body like you have
PLEASE MARK MY ANSWER CORRECT IF IT HELPS YOU
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2022 04:56 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2022 05:05 AM
can you post how the events are triggered and how are paramters getting passed in to it ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2022 05:31 AM
When event if fired, the notification will trigger.
Script:
//Scheduled job for when Accountable owner (user) is inactive on Business Application (cmdb_ci_business_app) table and/or Application Services (cmdb_ci_service_discovered) table then Notification Email needs to send for their manager on every monday 07:00 AM.
var bussinessArr = [];
var bussRecipients = [];
var gr = new GlideRecord("cmdb_ci_service_discovered");
gr.addEncodedQuery('assigned_to.active=false^assigned_to.sys_updated_onONLast 7 days@javascript:gs.beginningOfLast7Days()@javascript:gs.endOfLast7Days()');
gr.query();
while (gr.next()) {
bussRecipients.push(gr.assigned_to.toString());
}
var arrayUtil = new ArrayUtil();
var a1 = arrayUtil.unique(bussRecipients);
for (var i = 0; i <= a1.length; i++) {
var gr1 = new GlideRecord("sys_user");
gr1.addQuery("sys_id", a1[i]);
gr1.setLimit(1);
gr1.query();
if (gr1.next()) {
gs.eventQueue('fa.business.app.accountable.owner', gr1, gr1.manager.email, gr1.name);
}
}
var bussinessArr1 = [];
var bussRecipients1 = [];
var gr2 = new GlideRecord("cmdb_ci_business_app");
gr2.addEncodedQuery('assigned_to.active=false^assigned_to.sys_updated_onONLast 7 days@javascript:gs.beginningOfLast7Days()@javascript:gs.endOfLast7Days()');
gr2.query();
while (gr2.next()) {
bussRecipients1.push(gr2.assigned_to.toString());
}
var arrayUtil1 = new ArrayUtil();
var a2 = arrayUtil1.unique(bussRecipients1);
for (var j = 0; j <= a2.length; j++) {
var gr3 = new GlideRecord("sys_user");
gr3.addQuery("sys_id", a2[j]);
gr3.setLimit(1);
gr3.query();
if (gr3.next()) {
gs.eventQueue('fa.business.app.accountable.owner', gr3, gr3.manager.email, gr3.name);
}
}
Thanks
Venugopal
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-10-2022 05:36 AM