Rest API explorer- mapping date fields

Garima13
Tera Contributor

Hi,

 

I am trying to create a custom service catalog cart submit api. Every variable is getting mapped correctly but the date fields are getting mapped to the current date

 

(function process( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {

var reqbody = request.body.dataString;

try {
var parser = new global.JSON();
var parsedData = parser.decode(reqbody);

var requestedFor = parsedData.variables.requested_for;
var startDate = parsedData.variables.start_date.toString();
var firmstartDate = parsedData.variables.firm_start_date.toString();
var selectOne = parsedData.variables.select_one;
var phoneModel = parsedData.variables.phone_model;
var phoneNumber = parsedData.variables.phone_number;
var phoneCarrier = parsedData.variables.phone_carrier;

var cartId = GlideGuid.generate(null);
var cart = new Cart(cartId);

var sysid;
var grUsr = new GlideRecord('sys_user');
grUsr.addQuery('user_name', requestedFor);
grUsr.query();
if (grUsr.next()) {
sysid = grUsr.sys_id;
}



var item = cart.addItem('53df2fbe87ada15098a041d8cebb352b', 1);


cart.setVariable(item, "requested_for", sysid);
cart.setVariable(item, "start_date",startDate);
cart.setVariable(item, "firm_start_date"firmstartDate);
cart.setVariable(item, "select_one", selectOne);
cart.setVariable(item, "phone_model", phoneModel);
cart.setVariable(item, "phone_number", phoneNumber);
cart.setVariable(item, "phone_carrier", phoneCarrier);

var rc = cart.placeOrder();


var reqNumber = rc.number;

var ritm = new GlideRecord('sc_req_item');
ritm.get('request.number', reqNumber);
var ritmNumber = ritm.number;

var res = {};
res.body = {
"message": "Success",
"Request Number": ""+ reqNumber +"",
"RITM Number":""+ritmNumber+""
// "detail": "Request Number: " + reqNumber + ", RITM Number: " + ritmNumber
};

response.setBody(res);

} catch (e) {

var resObj = {};

var sErrorcatch = new sn_ws_err.ServiceError();
this.status = 400;
this.action = 'Error';
sErrorcatch.setStatus(this.status);
resObj.body = {
"message": "Transaction Ignored at run time! Error thrown is: " + e,
"detail": "Unexpected exception occurred during processing the request. Check if the payload and attributes are correct."
};
sErrorcatch.setMessage(resObj.body.message);
sErrorcatch.setDetail(resObj.body.detail);
return sErrorcatch;
}


})(request, response);
3 REPLIES 3

Garima13
Tera Contributor

Ankur Bawiskar
Tera Patron
Tera Patron

@Garima13 

what's coming in logs for startDate and firmstartDate after parsing the json?

Regards,
Ankur
Certified Technical Architect  ||  9x ServiceNow MVP  ||  ServiceNow Community Leader

After parsing, logs are showing correct date that I passed.

There is some issue happening in the mapping. Because even if I pass static past dates, it is changing it into current date.