Email notifications: Getting multiple emails for every record auto-updated in a table, just want 1 email

cathytyner
Kilo Expert

Hi all!

I have a custom table u_classroom_codes with 86 records. Every 3 months I replace data in the table with a scheduled data import. I have an email notification set up so that I receive an email letting me know that the table has been updated with current data. I get 86 emails. I assume I'm getting one email for every record that has been updated. I just want to get one single email so that I know the table has been updated. Can someone suggest how to setup my email notification correctly? Below is a screen shot of how it is currently set. Please note I'm a newbie with no scripting experience.

I think the problem is that the table I selected within 'Email Notifications' is my table with 86 records. The notification is doing as it's told and alerting me every time a record is updated. Maybe I can select a different table such as one that that will only have one records which updates upon my successful data load or maybe when my scheduled job has been completed...?

Components:

  • Table: u_classroom_codes (always 86 records)
  • Data Source: auto_load_classroom_codes
  • Table Transform Map: Auto Classroom Code load
  • Scheduled Data Import: Classroom Codes
  • Registry: classroom_codes_update.completed
  • System Policy > Notifications: "Notify that Classroom Codes table data updated"

Screen Shot 2015-03-11 at 11.08.45 AM.png

Much thanks!!

Cathy

1 ACCEPTED SOLUTION

edwin_munoz
Mega Guru

Hello Cathy,



You can follow these steps to get the notification you want.



1. Create event in System Policy -> Events -> Registry


      Name: classroom.import.completed


      Table: Import Set


2. Go to the Auto Classroom Code load transform map and select the Transform scripts tab. Create a new transform map script:


      When: onComplete


      Script:


gs.eventQueue("classroom.import.completed", import_set);



3. Edit your notification to be sent when an event is triggered and select the classroom.import.completed event.




EDIT: Maybe you don't have to create a new event and you can use the one you already have.classroom_codes_update.completed.



Who should receive this email? is it always going to be you? or the person who runs the import?




View solution in original post

36 REPLIES 36

Thank you. I set the email notification so that the subject is: Classroom Codes data updated for ${u_quarter}


I added the 3rd parameter to my Transform Script as you suggested.


I tested and it did not work (I got the email, without the "u_quarter field" populated.



You mentioned I can "access it from the notification as: event.parm1." However I am not sure what you mean by that, or what steps I need to take. Could you elaborate?


Can you please share again how the event is appearing in the log? Just want to make sure that parm1 contains the value you want.



I'm not sure if you can use event.parm1 directly in the subject (maybe it will work). But I'm sure that you can do something like this in the message of the email:



<mail_script>


        email.setSubject("Classroom Codes data updated for" + event.parm1);


</mail_script>


I just tested that, and it almost works - except it seems to return the SysID:



Classroom Codes data updated for0afc45eefcd6e14007055fafd85f0f3a




If it helps, it doesn't matter if the field "u_quarter" is in the subject or the body of the email...






Cathy,



I'm assuming u_quarter is a choice field?   If so, try using this as your event.parm1:


target.u_quarter.getDisplayValue()




If it's a reference field, you might need to do something like:


target.u_quarter.(name of field you want to add)




For example: target.u_quarter.quarter_name;


Thank you Jamie. I just tried that with the same results: SysID returned. Not sure if I implemented your suggestion correctly. Below is what I see:



1. Script in notification


Screen Shot 2015-03-11 at 5.32.52 PM.png


2. Transform Script in Transform map


Screen Shot 2015-03-11 at 5.36.00 PM.png