We're reclaiming inactive PDIs to keep them available for active builders. Learn what's changing, who's affected, and how to protect your work. Read More

Help with Event is not getting created!

gemini17
Kilo Guru

I created the business rule in the developer program, training.   I lost the original Marketing Event application, so I had to start all over and created a similar M_Events application.

My script for the business rule is:

function onAfter(current, previous) {

  //This function will be automatically called when this rule is processed.

  //Add event when attendee inserted

  if(current.operation() == 'insert' && current.marketing_event.changes()) {

  gs.eventQueue('x_19025_m_events_a_attendee.added', current,

  current.marketing_event, current.email);

  }

  //Add event when marketing event changes

  if(current.operation() == 'update' && current.marketing_event.changes()) {

  gs.eventQueue('x_19025_m_events_a_attendee.deleted', previous,

  previous.marketing_event, previous.email);

  gs.eventQueue('x_19025_m_events_a_attendee.added', current,

  current.marketing_event, current.email);

  }

  //Add event when attendee deleted

  if(current.operation() == 'delete') {

  gs.eventQueue('x_19025_m_events_a_attendee.deleted', current,

  current.marketing_event, current.email);

  }

}

when I try to add attendees< I get error:

Access to event 'x_19025_m_events_a_attendee.added' from scope 'M_Events_Application' has been refused. The event is not defined.

Any help is appreciated.

Kind regards

Danny Raj

15 REPLIES 15

Hey Corey:



Thanks for taking the time, to explain.



Kind regards


Danny Raj


Hello,



I have the same issue in the developer program in this part of events.



My issue is that when I search for my events in the event log, I don't see the names that i was should suppose to see.


My business rule is like this:



function onAfter(current, previous) {


    //This function will be automatically called when this rule is processed.


  //Add event when attendee inserted


  if(current.operation() == 'insert' && current.marketing_event.changes()) {


  gs.eventQueue('x_66095_marketing,attendee.added', current,


current.marketing_event, current.email);


  }


  //Add event when marketing event changes


  if(current.operation() == 'update' && current.marketing_event.changes()) {


  gs.eventQueue('x_66095_marketing,attendee.deleted', previous,


previous.marketing_event, previous.email);


  gs.eventQueue('x_66095_marketing,attendee.added', current,


current.marketing_event, current.email);


  }


  //Add event when attendee deleted


  if(current.operation() == 'delete') {


  gs.eventQueue('x_66095_marketing,attendee.deleted', current,


                          current.marketing_event, current.email);


}


}



My table name is:     x_66095_marketing_attendee




and my script action is:


(function addAttendees() {


  //Get marketing event from event


  var id= current.marketing_event;


  var mrkevent = new GlideRecord('x_66095_marketing_marketing_event');


  mrkevent.get(event.parm1);


  //Count attendees for marketing event


  var numOfAttendees = 0;


  var attendees = new GlideAggregate('x_66095_marketing_attendee');


  attendees.addQuery('marketing_event',event.parm1);


  attendees.addAggregate('COUNT');


  attendees.query();


  if(attendees.next())


  numOfAttendees = attendees.getAggregate('COUNT');



  //Set attendees registered field


  mrkevent.number_of_attendees_expected = numOfAttendees;


  mrkevent.update();


}());



I also registered the events in the event registry as;   suffix: attendee.added


and event name : x_66095_marketing.attendee.added



what is wrong in my code that I dont see the proper funcionality? please help


because if I look in the event log for


  1. Add the following filter row. [Name] [starts with] [x_].       I do not get any result like my events are not getting created.

All of your events have a comma in them:



gs.eventQueue('x_66095_marketing--->,<---attendee.deleted', previous,


previous.marketing_event, previous.email);



Is your event registered like that?


Hello Mike,



I updated the comma for dot :


function onAfter(current, previous) {


    //This function will be automatically called when this rule is processed.


  //Add event when attendee inserted


  if(current.operation() == 'insert' && current.marketing_event.changes()) {


  gs.eventQueue('x_66095_marketing.attendee.added', current,


current.marketing_event, current.email);


  }


  //Add event when marketing event changes


  if(current.operation() == 'update' && current.marketing_event.changes()) {


  gs.eventQueue('x_66095_marketing.attendee.deleted', previous,


previous.marketing_event, previous.email);


  gs.eventQueue('x_66095_marketing.attendee.added', current,


current.marketing_event, current.email);


  }


  //Add event when attendee deleted


  if(current.operation() == 'delete') {


  gs.eventQueue('x_66095_marketing.attendee.deleted', current,


                          current.marketing_event, current.email);


}



but still is not working... is not doing my script action:


(function addAttendees() {


  //Get marketing event from event


  var id= current.marketing_event;


  var mrkevent = new GlideRecord('x_66095_marketing_marketing_event');


  mrkevent.get(event.parm1);


  //Count attendees for marketing event


  var numOfAttendees = 0;


  var attendees = new GlideAggregate('x_66095_marketing_attendee');


  attendees.addQuery('marketing_event',event.parm1);


  attendees.addAggregate('COUNT');


  attendees.query();


  if(attendees.next())


  numOfAttendees = attendees.getAggregate('COUNT');



  //Set attendees registered field


  mrkevent.number_of_attendees_expected = numOfAttendees;


  mrkevent.update();


}());



it supposed to update the numOfAttendees field every time I add a new record because of my business rule... but is not working


also when I search in the event log for events starting with x_   there not records...


Are the events making it into the event log?