- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2024 01:16 AM
Hi All,
I have a system property where the data has been define like this ( array of objects format ):::
{
"email1@abc.com":["8452de8f8394865050ed47747daad391","Value 1.0"], //group1,version1
"email2@abc.com":["8965de9f8394811050edk7747daad391","Value 2.0"], //group2,version2
}
Using Inbound Action, I am trying to populate couple of fields by referring to this system property above, like this:::
var group = gs.getProperty('Email To Group Mapping');
var grp = JSON.parse(group);
var email_to = email.to;
email_to = email_to.toLowerCase();
email_to = email_to.split(',');
for (i = 0; i < email_to.length; i++) {
if (email_to[i].includes('email')) {
current.assignment_group = grp[email_to[i][0]];
current.u_version = grp[email_to[i][1]];
gs.info("Assignment Group: " + current.assignment_group);
gs.info("Version: " + current.u_version);
}
}
But unfortunately both the Assignment Group and Version is returning false! Can someone please help me to debug this piece or logic?
Thanks and Regards,
Saurabh Chatterjee
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2024 07:48 AM
Hi @chatsaurav19
No Worries , here i have updated the code logic as per your system property obj.
Code :
var group = gs.getProperty('Email.To.Group.Mapping'); //Your Own Sys Property
var group_p = JSON.parse(group);
gs.info("Saurabh Group: " + JSON.stringify(group_p));
var email_to = email.to;
email_to = email_to.toLowerCase().split(',');
gs.info("Saurabh Email: " + email_to);
for (var i = 0; i < email_to.length; i++) {
var emailKey = email_to[i].trim();
gs.info("Saurabh Email Key: " + emailKey);
gs.info("Saurabh Email Key PROP: " + group_p.hasOwnProperty(emailKey));
gs.info("Saurabh Email Key KEY LENGTH: " + group_p[emailKey].length);
if (group_p.hasOwnProperty(emailKey) && group_p[emailKey].length == 2) {
current.assignment_group = group_p[emailKey][0];
current.u_cockpit_version = group_p[emailKey][1];
gs.info("Saurabh Assignment Group: " + current_assignment_group);
gs.info("Saurabh Version: " + current_u_cockpit_version);
}
}
Note :
The "emailKey" is "abc.ab11.def@qwe.com", the key corresponding to the email address. The length of the array associated with this "emailKey" is 2 because there are two elements in the array: "8452de8f8394865050ed47747daad391" and "Value 1.0". Therefore, group_p[emailKey].length would evaluate to 2.
BG Script Code :
System Property SS :
Please mark my answer helpful and correct.
Regards,
Subhashis
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2024 01:29 AM
Hi Saurabh,
Could you please let me know what is value that is present in the variable email_to?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2024 01:38 AM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2024 03:31 AM
Hi @chatsaurav19
Please use this tested code to fulfill your requirement, I have retested it in my own PDI ..
var group = gs.getProperty('test.pro'); //Your Own Sys Property
group_p = JSON.parse(group);
gs.print(group_p);
var email_to = 'email1@abc.com'; //let's assume email id we got
email_to = email_to.toLowerCase().split(',');
for (var i = 0; i < email_to.length; i++) {
var emailKey = email_to[i].trim();
if (group_p.hasOwnProperty(emailKey) && group_p[emailKey].length >= 2) {
gs.print('in if');
assignment_group = group_p[emailKey][0];
u_version = group_p[emailKey][1];
gs.print("Assignment Group: " + assignment_group);
gs.print("Version: " + u_version);
break;
}
}
O/p:
Please mark my answer helpful and correct.
Regards,
Subhashis
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
03-22-2024 05:36 AM
Thank you for your valuable input. Actually I am still unable to get the values after applying your logic.
var group = gs.getProperty('Email To Group Mapping'); //Your Own Sys Property
group_p = JSON.parse(group);
gs.info("Saurabh Group: " + group_p);
var email_to = email.to;
email_to = email_to.toLowerCase().split(',');
gs.info("Saurabh Email: " + email_to);
for (var i = 0; i < email_to.length; i++) {
var emailKey = email_to[i].trim();
gs.info("Saurabh Email Key: " + emailKey);
if (group_p.hasOwnProperty(emailKey) && group_p[emailKey].length > 2) {
current.assignment_group = group_p[emailKey][0];
current.u_cockpit_version = group_p[emailKey][1];
gs.info("Saurabh Assignment Group: " + current.assignment_group);
gs.info("Saurabh Version: " + current.u_cockpit_version);
}
}
For me the the 'email_to' is like : abc.ab11.def@qwe.com . Also shouldn't the 'group_p' be a variable?
Regards,
Saurabh