Why my event is in Error state in Sytem Log after beeing fired ?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-21-2018 02:25 AM
Dear all,
I have the following script in a scheduleJob :
//Build record object on asset table
var gr = new GlideRecord('alm_asset');
//Append the querry to generate the view record based on condition
gr.addEncodedQuery('u_send_record_to_mail=true');
gr.query();
//If tehre is at least one records, we fire the event
if(gr.getRowCount() > 0){
gs.eventQueue("Asset.retired.ccchange", gr);
while (gr.next()) {
//we reset the flag in order to avoid unneeded resend
gr.u_send_record_to_mail = false;
gr.update();
}
}
What it does is that it collect all records with u_send_record_to_mail = true in Asset table
Then if tehre is at least 1 record, the event is fire.
Then once the event is fired, I cycle through collected records and reset to false the flag.
What when I test my script by pressing Execute now, in system log Event, I can see my event with a State=Error.
Any idea why and how can I solve this ?
regards
- Labels:
-
Scripting and Coding

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-21-2018 05:27 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-21-2018 05:41 AM
Hello,
I have a Notification email which is define to trig when my Event is fired.
STEP 1 : Notification not activated
If I set my Notification Active=false, just to test my event and then trig my event, then if I look in System Log> Event I can see my event and if I open it, it state is set to READY..
STEP 2 : Notification activated
When my notification is activated and define it as :
Type :EMAIL
Send When = Event fired
Event name : name of my event (same as in scrip above)
What it will contain : I simply define Subject email, and some dummy hard code text to see if mail gets send.
At this point when I start my schedule job, my Event has its STATE set to Error
see image
Any idea ?
It seems that it is link to email sending, do I have to specify some email provider configuration or stuff like this somewhere ?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-21-2018 05:36 AM
I've made a few minor clean up tweaks to the script below. It brings up additional questions:
- Ensure you spelled the event name correctly
- Ensure the event is registered in the event registry (System Policy> Events> Registry)
Note that you haven't retrieved a 'gr' record yet, so it has the value of null when the event is triggered. I've substituted a null for the GlideRecord argument (2).
//Build record object on asset table
var gr = new GlideRecord('alm_asset');
//Append the querry to generate the view record based on condition
gr.addQuery('u_send_record_to_mail', true);
gr.query();
//If there is at least one record, we fire the event
if(gr.hasNext()){
gs.eventQueue("Asset.retired.ccchange", null, '', '');
while (gr.next()) {
//we reset the flag in order to avoid unneeded resend
gr.u_send_record_to_mail = false;
gr.update();
}
}
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎11-21-2018 05:53 AM
Hi chuck,
let me know if I am doing wrong ..
Based on your initial question, yes all is in place
STEP 1 :
Now based on the parameter NULL for the event, I though 'gr' object was containing records
I am new to this area, my goal is tor trig an event as about and then retrieve collected all records with u_send:record_to_mail =true in order to write them in an email body.
Does it mean I have to pass those match records as part of the Event param ?
If yes I can I send the record to the event ?
STEP 2 :
When my email notification trig based on my event, I need to collect those matching record from my event Object ?
Initialy I have made a Notification Email Script ( seen in sample around), in order to be injected in my mail body but have no idea how this script will be executed and when .
(function runMailScript(/* GlideRecord */ current, /* TemplatePrinter */ template,
/* Optional EmailOutbound */ email, /* Optional GlideRecord */ email_action,
/* Optional GlideRecord */ event) {
template.print("Records which has beend retired or have cost Center change. \n\n");
var gr = new GlideRecord ("alm_asset");
gr.addQuery('u_send_record_to_mail', true);
gr.query();
>>>>> ????? WhaT TO PLACE HERE TO COLLECT RECORDS INTO CELLS BELOW
template.print("<table border=1 boardercolor=black>");
template.print("<tr><th align='left'>name</th><th align='left'>State</th></tr>");
>>>>> ????? WhaT TO PLACE HERE TO COLLECT RECORDS INTO CELLS BELOW
template.print("</table>");
})(current, template, email, email_action, event);
Any help, could not find full sample and get confused