Join the #BuildWithBuildAgent Challenge! Get recognized, earn exclusive swag, and inspire the ServiceNow Community with what you can build using Build Agent.  Join the Challenge.

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.