how to pass the records in json?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-27-2018 02:00 AM
i used the below script where it pass the data in an aray,i need to push to an json array.
(function executeRule(current, previous /*null when async*/) {
try {
var r = new sn_ws.RESTMessageV2('direct_rest_transaction', 'direct_rest_transa');
var fields = current.getFields();
var hits = [];
var name=[];
var field=[];
var sysid=current.sys_id;
for (var i = 0; i < fields.size(); i++) {
var glideElement = fields.get(i);
if (glideElement.hasValue()) {
name.push(glideElement);
field.push(glideElement.getName());
hits.push(glideElement.getName() + ":" + glideElement);
}
}
hits.push("sys_id:" +sysid);
r.setStringParameterNoEscape("pay",hits);
r.setStringParameterNoEscape('name', name);
r.setStringParameterNoEscape('fields', field);
//r.setStringParameterNoEscape('type',1);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
}
catch(ex) {
var message = ex.message;
}
})(current, previous);
- Labels:
-
Scripting and Coding
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-27-2018 02:33 AM
I tried with that too its returning empty object
(function executeRule(current, previous /*null when async*/) {
try {
var r = new sn_ws.RESTMessageV2('direct_rest_transaction', 'direct_rest_transa');
var fields = current.getFields();
var hits = {};
var name={};
var field={};
var sysid=current.sys_id;
for (var i = 0; i < fields.size(); i++) {
var glideElement = fields.get(i);
if (glideElement.hasValue()) {
name.push(glideElement);
field.push(glideElement.getName());
hits.push(glideElement.getName() + ":" + glideElement);
}
}
hits.push("sys_id:" +sysid);
//var json=JSON.stringify(hits);
var parser = new JSON();
var str = parser.encode(hits);
gs.log(str,"soze");
r.setStringParameterNoEscape("pay",hits);
r.setStringParameterNoEscape('name', name);
r.setStringParameterNoEscape('fields', field);
//r.setStringParameterNoEscape('type',1);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
}
catch(ex) {
var message = ex.message;
}
})(current, previous);

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-27-2018 02:43 AM
HI,
While putting values into hits you should put like this:
var hits = {};
hits.sys_id = 'sys_id;
And then after stringifying it you can access value.
var parser = new JSONParser();
var parsedData = parser.parse(hits);
gs.print("Var1 is:"+parsedData.sys_id);
Thanks,
Ashutosh
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-27-2018 02:29 AM
Please see the below code it's working fine for me:
(function executeRule(current, previous /*null when async*/) {
// Add your code here
try {
var sd = current.short_description.toString();
var des = current.description.toString();
var cat = current.category.toString();
var ci = current.cmdb_ci.toString();
var cal = current.caller_id.toString();
var num = current.number.toString();
var r = new sn_ws.RESTMessageV2('Instance Integration', 'Post');
var req_body = {'short_description':sd, 'description':des, 'category':cat, 'cmdb_ci':ci, 'caller_id':cal/*, 'number':num*/};
var body = JSON.stringify(req_body);
r.setRequestBody(body);
var response = r.execute();
var responseBody = response.getBody();
gs.addInfoMessage(responseBody);
var httpStatus = response.getStatusCode();
gs.addInfoMessage(httpStatus);
}
catch(ex) {
var message = ex.message;
}
})(current, previous);
Please mark helpful/Correct Answer if you got your answer
Thanks
PKG
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-27-2018 02:35 AM
u have manually inserted the records i think that might work but i m getting those values from getFields(), its not storing in my json
(function executeRule(current, previous /*null when async*/) {
try {
var r = new sn_ws.RESTMessageV2('direct_rest_transaction', 'direct_rest_transa');
var fields = current.getFields();
var hits = {};
var name={};
var field={};
var sysid=current.sys_id;
for (var i = 0; i < fields.size(); i++) {
var glideElement = fields.get(i);
if (glideElement.hasValue()) {
name.push(glideElement);
field.push(glideElement.getName());
hits.push(glideElement.getName() + ":" + glideElement);
}
}
hits.push("sys_id:" +sysid);
//var json=JSON.stringify(hits);
var parser = new JSON();
var str = parser.encode(hits);
gs.log(str,"soze");
r.setStringParameterNoEscape("pay",hits);
r.setStringParameterNoEscape('name', name);
r.setStringParameterNoEscape('fields', field);
//r.setStringParameterNoEscape('type',1);
var response = r.execute();
var responseBody = response.getBody();
var httpStatus = response.getStatusCode();
}
catch(ex) {
var message = ex.message;
}
})(current, previous);
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
‎12-27-2018 02:36 AM
Yes, Okay I'll try to solve your issue