Inbound Action Script Broke
Options
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎06-25-2024 01:28 PM
We pushed a change to a Flow that didn't trigger due to the Inbound Email Action having the wrong "from" address. Adjusted that and reprocessed email which triggered the Flows properly. A new email came in and didn't trigger the Flow. Any attempt to reprocess the email also failed to trigger the Flow.
(function runAction( /*GlideRecord*/ current, /*GlideRecord*/ event, /*EmailWrapper*/ email, /*ScopedEmailLogger*/ logger, /*EmailClassifier*/ classifier) {
gs.include('validators');
//if email is recevied from 'acctadmin@ashn.com'
try {
var twoStepEnabled = gs.getProperty('glide.sc.checkout.twostep', false);
var debugLogger = '**Create Request: Workstation Build Req**';
var catItemId = WorkstationCatalogItemSysId.WORKSTATION_REQUEST_ID;
var companyEmailDomainInfo = WorkstationCatalogItemSysId.COMPANY_EMAIL_DOMAIN;
var emailFrom = email.origemail;
var emailBodyText = email.body_text;
var emailName = email.body.name.toString();
var emailLogin = email.body.login.toString();
var emailDept = email.body.dept.toString();
var emailLocation = email.body.location.toString();
if( gs.nil(emailName) || gs.nil(emailLogin) || gs.nil(emailDept) || gs.nil(emailLocation))
{
return; //if any of the fields are empty, terminate the script action
}
var reqForUser = WorkstationCatalogItemSysId.WORKSTATION_REQUESTED_FOR_USER_ID; //emailFrom;
var newHireUserId = getUserInfo(emailLogin, companyEmailDomainInfo, emailName) || reqForUser;
debugLogger += '\nemailLogin= ' + emailLogin;
debugLogger += '\nnewHireUserId= ' + newHireUserId;
debugLogger += '\nemailUserName= ' + emailName;
debugLogger += '\nemailLocation= ' + emailLocation;
/*
The Following User is new hire. Please proceed with Workstation Build.
Email to AcctAdmin@ashn.com Body Contains: "The Following User is new hire"
*****
Name:
Login:
Dept:
Location:
*/
var ciInfoparser = '';
var cart = '';
var item = '';
var cartDetails = '';
cart = new sn_sc.CartJS();
item = {
'sysparm_id': catItemId.toString(),
'sysparm_quantity': '1',
'variables': {
'requested_for': newHireUserId.toString(), //new user or itoadmin
'userid': emailLogin.toString(),
'name': emailName.toString(),
'dept': emailDept.toString(),
'location': emailLocation.toString(),
'is_new_hire': 'Yes'
}
};
cartDetails = cart.addToCart(item);
debugLogger += '\n' + JSON.stringify(cartDetails);
//cart.setRequestedFor(cartReqFor);
var cartItems = cart.getCartItems();
var checkoutInfo = false;
//var checkoutInfo = cart.checkoutCart();
debugLogger += '\ntwoStepEnabled= ' + twoStepEnabled;
//If two-step checkout is not enabled
if (!twoStepEnabled || twoStepEnabled == 'false') {
checkoutInfo = cart.checkoutCart();
request_number = checkoutInfo.request_number.toString();
debugLogger += '\nCartItems: ' + JSON.stringify(checkoutInfo);
} else {
checkoutInfo = cart.checkoutCart();
debugLogger += '\nCartItems twoStepEnabled: ' + JSON.stringify(checkoutInfo);
requestDetails = cart.submitOrder(checkoutInfo);
request_number = requestDetails.request_number.toString();
debugLogger += '\nRequestDetails : ' + JSON.stringify(requestDetails);
}
cart.empty();
debugLogger += '\nrequest_number: ' + request_number;
gs.info(debugLogger);
//set current to match the request that was created
if (!JSUtil.nil(request_number)) {
var scReqRec = new GlideRecord('sc_request');
scReqRec.addQuery('number', request_number);
scReqRec.query();
if (scReqRec.next()) {
//current = scReqRec;
scReqRec.work_notes = "received from: " + email.origemail + "\n\n" + email.body_text;
scReqRec.update();
sys_email.target_table = 'sc_request';
sys_email.instance = current.sys_id;
sys_email.update();
}
var scReqItemRec = new GlideRecord('sc_req_item');
scReqItemRec.addQuery('request.number', request_number);
scReqItemRec.query();
while (scReqItemRec.next()) {
scReqItemRec.work_notes = "received from: " + email.origemail + "\n\n" + email.body_text;
scReqItemRec.update();
sys_email.target_table = 'sc_req_item';
sys_email.instance = scReqItemRec.sys_id;
sys_email.update();
}
}
} catch (err) {
gs.error('Error in inbound action: Create Request: Workstation Build Req: ' + err);
gs.info(debugLogger);
}
})(current, event, email, logger, classifier);
function getUserInfo(userName, companyEmailDomainInfo, firstLastName) {
var userId = '';
//if userName is empty or if undefined, return
if (JSUtil.nil(userName)) {
return userId;
}
//query user table for existing user and if found, return, else create new user based on userName
var userRec = new GlideRecord('sys_user');
userRec.addActiveQuery();
userRec.addQuery('user_name', 'STARTSWITH', userName);
userRec.query();
if (userRec.next()) {
userId = userRec.getValue('sys_id');
} else {
userRec.initialize();
userRec.user_name = userName + '' + companyEmailDomainInfo;
userRec.email = userName + '' + companyEmailDomainInfo;
if (!JSUtil.nil(firstLastName)) {
var firstName = firstLastName.split(" ")[0];
var lastName = firstLastName.split(" ")[1];
if (!JSUtil.nil(firstName)) {
userRec.first_name = firstName;
}
if (!JSUtil.nil(lastName)) {
userRec.last_name = lastName;
}
}
userId = userRec.insert();
}
return userId;
}
0 REPLIES 0