did not create or update sn_customerservice_case using current

Vikram3
Giga Guru

Hello everyone,

I am totally not clear what is happening to my inbound email actions. All code are clear and perfect. I tried putting logs everywhere and it is returning values as expected. But still I am getting this below error with target empty. Can anybody help me on this issue. Recently system has upgraded to Orlando.

org.mozilla.javascript.EcmaError: The undefined value has no properties.
Caused by error in <refname> at line 1

==> 1: current.short_description = email.subject;
2: //current.description = email.subject +' Type: '+email.body_text;
3: //var instanceM = email.instance;
9 REPLIES 9

 

try this way. i pasted inside anonymous function. 

 

(function runAction(/*GlideRecord*/ current, /*GlideRecord*/ event, /*EmailWrapper*/ email, /*ScopedEmailLogger*/ logger, /*EmailClassifier*/ classifier) {

	// Implement email action here
	current.short_description = email.subject;

	var contactID2;
	current.description = email.subject;
	var senderEmail = email.from;
	var contact = new GlideRecord("customer_contact");
	var contactID = new CSEMailUtil().getUserIDFromEmail(email.from); //get User from Customer Contact Table list

	if (contactID == ''){
		contactID2 = new CSEMailUtil().getUserIDFromEmail2(email.from); //get User from User Table list
	}
	//gs.info('Contacty - '+contactID2.getUniqueValue());
	//gs.info('Contacty1 - '+contactID2.getValue('company'));

	var emailDomain = '';
	var emailLng = senderEmail.length;
	var startpt = senderEmail.indexOf('@');
	if (startpt > 0) {
		emailDomain = senderEmail.substring(startpt + 1,emailLng);
	}

	if (contactID2 !== ''){
		current.contact = contactID2.getUniqueValue();
		current.account = contactID2.getValue('company');
	}else{  //If contant is not present in Contact Table

		if (gs.getProperty('gogo.glide.pop3readerjob.create_contact') == 'true')
		{
			var emailLength = senderEmail.length;
			var emailPosition = senderEmail.indexOf('@');
			emailDomain = senderEmail.substring(emailPosition+1,emailLength);

			var acct = new GlideRecord('customer_account');
			acct.addQuery('u_company_domain', emailDomain);
			acct.query();
			if (acct.next())   //If domain gotten from the email of the email sender is present in the Account Table
			{
				var cont = new GlideRecord('customer_contact');
				cont.initialize();
				cont.email = senderEmail;
				cont.account = acct.sys_id;

				var emailFrom = '\nFrom:';
				var emailStr = ' <' + senderEmail + '>';
				var len = email.headers.length;
				var pos1 = email.headers.indexOf(emailFrom);
				var pos2 = email.headers.indexOf(emailStr);

				var fullName = email.headers.substring(pos1+6,pos2);
				var fnLength = fullName.length;
				var fnSpacePos = fullName.indexOf(' ');
				if (fnSpacePos > 0) {
					var firstName = fullName.substring(0,fnSpacePos);
					var lastName = fullName.substring(fnSpacePos+1,fnLength);
					cont.first_name = firstName;
					cont.last_name = lastName;
				}
				else {
					cont.last_name = fullName;
				}
				cont.user_name = cont.email;
				contactID = cont.insert();
			}
		}
	}

	var contact2 = new GlideRecord("customer_contact");
	if(contact2.get(contactID))
	{
		var accountID = contact2.account.getValue();
		var account = new GlideRecord("customer_account");
		if(account.get(accountID)){
			if(account.customer){
				current.contact = contact2.sys_id;
				current.account = account.sys_id;
			}
		}
	}

	/*if(contact.get(contactID))
{
	var accountID2 = contact.account;
	var account2 = new GlideRecord("customer_account");
	if(account2.get(accountID2)){
		if(account2.customer){
			current.contact = contact.sys_id;
			current.account = account2.sys_id;
		}
	}
}*/

	current.u_originating_email = email.from;

	var instanceEmail = gs.getProperty('glide.email.user');

	var rarray = email.recipients.toLowerCase().split(",");
	var rarray2 = rarray;
	var toarray = email.direct.toLowerCase().split(",");
	var k = '';

	current.assignment_group = 'b2ec8acd3c21f00010706276de4006de';  //Default Assignment Group as AMCC - b2ec8acd3c21f00010706276de4006de
	for (var i = 0; i<rarray.length; i++) 

	{

		if ( k !== 'STOP' ){//
			if ((rarray2[i].indexOf('amcc@ccc.com') > -1) || (rarray2[i].indexOf('amcc@a.cc.com') > -1)){
				current.assignment_group = 'b2ec8acd3c21f00010706276de4006de';  //AMCC assignment group b2ec8acd3c21f00010706276de4006de
				k = 'STOP';
			}else if ((rarray2[i].indexOf('noc@ccc.com') > -1) || (rarray2[i].indexOf('noc@a.ccc.com') > -1)){
				current.assignment_group = '7aec8acd3c21f00010706276de4006ad';  //NOC assignment group
				k = 'STOP';
			}else if (rarray2[i].indexOf('IT-CORP-APPS@ccc.com') > -1){
				current.assignment_group = '344e6044e56e1d00120bac1df1012fdb';  //IT-CORP-App assignment group
				k = 'STOP';
			}else if ((rarray2[i].indexOf('aog@ccc.com') > -1) || (rarray2[i].indexOf('aog@a.ccc.com') > -1)){
				current.assignment_group = '6de0b8a2db1ca200ed54785e0f96196d';  //AOG assignment group
				k = 'STOP';
			}else if ((rarray2[i].indexOf('supplychainoperations@ccc.com') > -1) || (rarray2[i].indexOf('supplychainoperations@a.ccc.com') > -1)){
				var domainAssignment = new GlideRecord('u_domain_assignment');
				domainAssignment.addQuery('u_domain', emailDomain);
				domainAssignment.query();
				if (domainAssignment.next()) {
					current.assignment_group = domainAssignment.u_assignment_group;
					k = 'STOP';
				}
				else {
					current.assignment_group = 'b51349b2dbbc5344352ff969af96190c';  //Supply Chain Operations assignment group
					k = 'STOP';
				}
			}
		}
		if (rarray[i] === instanceEmail || current.watch_list.toString().indexOf(rarray[i]) > -1 || rarray[i].indexOf('amcc@ccc.com') > -1 || rarray[i].indexOf('aog@ccc.com') > -1 || rarray[i].indexOf('supplychainoperations@ccc.com') > -1 || rarray[i].indexOf('noc@ccc.com') > -1 || rarray[i].indexOf('amcc@a.ccc.com') > -1 || rarray[i].indexOf('aog@a.ccc.com') > -1 || rarray[i].indexOf('supplychainoperations@a.ccc.com') > -1 || rarray[i].indexOf('noc@a.ccc.com') > -1) {
			rarray.splice(i, 1);
		}
	}
	current.watch_list = current.watch_list.toString() + "," + rarray.toString();
	gs.info('xWatchLister: '+ current.watch_list.toString());  //Testing Output
	gs.info('xWatchLister Recipients: '+rarray.toString());


	//Function to Remove Duplicate contacts on Watchlist with Sys_id instead of emails
	function getSID(rar,wahl){
		var mySID;
		var sID = new GlideRecord('sys_user');	
		sID.addQuery('email',rar);
		sID.query();
		var counter = sID.getRowCount();
		//	gs.info('Count: '+ sID.getRowCount());
		if (sID.getRowCount() > 1){
			while (sID.next()){
				mySID = sID.getUniqueValue();
				//			gs.info('sID: '+ mySID);
				if (wahl.toString().indexOf(mySID) > -1){
					return true;
				}
			}
		}else{
			sID.next();
			mySID = sID.getUniqueValue();
			if (wahl.toString().indexOf(mySID) > -1){
				return true;
			}
		}
		return false;
	}
	current.contact_type = "email";
	current.insert();

})(current, event, email, logger, classifier);

Nope. It didn't work. Still getting same error.

just for testing , can you make your code short, eg: 1 or 2 line of code. 

 

run this code and let me know what are you getting in logs. 

 

(function runAction(/*GlideRecord*/ current, /*GlideRecord*/ event, /*EmailWrapper*/ email, /*ScopedEmailLogger*/ logger, /*EmailClassifier*/ classifier) {


	
// write your script here 
gs.info('inbound action is running ' + email.subject);

current.description = email.subject;
current.insert();




})(current, event, email, logger, classifier);

 

Yep it works. Records are getting created.

so the issue is not with inbound action, you have to dig into your script and try to set part by part so this way you can identify which line of your script is not working here. 

 

 

 

If my answer helped you, kindly mark my answer as correct and helpful.