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

Cathy,



Can you try this code?



  1. gs.eventQueue("classroom_codes_import.completed", import_set, target.u_quarter, target.u_quarter);


Thanks Edwin. I just tried that and still, I only see the SysID.



Here's what I currently have:



1. Email script:


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



2. Transform script:


gs.eventQueue("classroom_codes_import.completed", import_set, target.u_quarter, target.u_quarter);


Cathy,



And you are still not seeing the correct value of u_quarter in any of parm1 or parm2 in the event log? according to the documentation "target" has the last row of the target table so it should have u_quarter.



You can write another test by writing this line after the gs.eventQueue statment:



gs.log("The quarter value is " + target.u_quarter );



If the correct value is being logged, then the problem is in the event creation. If you still get a sys_id, then we will have to figure out another method to get the quarter value.


Here is what I see in the Event logs - only the SysID (see pic below). Also below are the scripts I am currently using.



1. Email script:


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



2. Transform script:


gs.eventQueue("classroom_codes_import.completed", import_set, target.u_quarter, target.u_quarter);


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


Thank you so much for your help! I will check back tomorrow to see if there are any other suggestions to try. Have a good night!


Sorry I missed your suggestion to add the test. I just updated my script to read:



gs.eventQueue("classroom_codes_import.completed", import_set, target.u_quarter, target.u_quarter);


gs.log("The quarter value is " + target.u_quarter );



and still, the same results. After running that test, I only see the SysId in column Parm1 of event log.



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