Inbound email action

developersn
Tera Contributor
Hi Folks : Need help to validate the below mentioned inbound email action as this is not working at all.
 
 
var requesterEmail = email.body.requested_for_email.trim();
var requesterName = email.body.requested_for_name.trim();
var sfCandId = email.body.sf_candidate_id.trim();

 

//Check if requested for user exists
var userGr = new GlideRecord('sys_user');
userGr.addActiveQuery('email', requesterEmail);
userGr.query();

 

//Check if all the mandatory field values are filled.

 

if (requesterName =="" || sfCandId =="") {

 

    gs.log("missing mandatory fields : No ticket created");

 

} else if (userGr.next()) {

 

    var cartId = GlideGuid.generate(null);
    var cart = new Cart(cartId);
 
    var item = cart.addItem("cat_item");
    cart.setVariable(item, 'requested_for_name', requesterName);
    cart.setVariable(item, 'sf_req', sf_req_ID);
   
    var rc = cart.placeOrder();
    gs.log("Ticket created successfully");

 

}
1 ACCEPTED SOLUTION

Amit Pandey
Kilo Sage

Hi @developersn 

 

Please check this-

 

var requesterEmail = email.body.requested_for_email.trim();
var requesterName = email.body.requested_for_name.trim();
var sfCandId = email.body.sf_candidate_id.trim();
var userGr = new GlideRecord('sys_user');
userGr.addActiveQuery('email', requesterEmail);
userGr.query();

if (requesterName === "" || sfCandId === "") {
    gs.log("Missing mandatory fields: No ticket created");
} else if (userGr.next()) {
    var cartId = GlideGuid.generate(null);
    var cart = new Cart(cartId);
 
    var item = cart.addItem("cat_item");
    cart.setVariable(item, 'requested_for_name', requesterName);

    var sf_req_ID = ''; 
    cart.setVariable(item, 'sf_req', sf_req_ID);
   
    var rc = cart.placeOrder();
    gs.log("Ticket created successfully");
} else {
    gs.log("Requested for user does not exist: No ticket created");
}

 

Please share error if any. 

 

Mark my answer helpful and correct.

 

Regards,

Amit

View solution in original post

5 REPLIES 5

RyanQ
Tera Contributor
Hi,
Please do not pass parameters to the addActiveQuery()
You can update the query as below and try if it works.

 

 

//Check if requested for user exists
var userGr = new GlideRecord('sys_user');
userGr.addQuery('email', requesterEmail);
userGr.addActiveQuery();
userGr.query();

 

 

Don't forget to check ServiceNow API when scripting.

Mark Wood
Tera Contributor

Hello @developersn,

Could you please provide more details about the issue you are encountering?

Thank you.

Regards,

Mark.

Amit Pandey
Kilo Sage

Hi @developersn 

 

Please check this-

 

var requesterEmail = email.body.requested_for_email.trim();
var requesterName = email.body.requested_for_name.trim();
var sfCandId = email.body.sf_candidate_id.trim();
var userGr = new GlideRecord('sys_user');
userGr.addActiveQuery('email', requesterEmail);
userGr.query();

if (requesterName === "" || sfCandId === "") {
    gs.log("Missing mandatory fields: No ticket created");
} else if (userGr.next()) {
    var cartId = GlideGuid.generate(null);
    var cart = new Cart(cartId);
 
    var item = cart.addItem("cat_item");
    cart.setVariable(item, 'requested_for_name', requesterName);

    var sf_req_ID = ''; 
    cart.setVariable(item, 'sf_req', sf_req_ID);
   
    var rc = cart.placeOrder();
    gs.log("Ticket created successfully");
} else {
    gs.log("Requested for user does not exist: No ticket created");
}

 

Please share error if any. 

 

Mark my answer helpful and correct.

 

Regards,

Amit

developersn
Tera Contributor

Error receiving :  did not create or update sc_req_item using current.

 

Another: Root cause of JavaScriptException: com.glideapp.servicecatalog.exceptions.CartException
: com.glideapp.servicecatalog.exceptions.CartException: Your cart has item(s) no longer available.