Name
global.related_list_edit_helper
Description
No description available
Script
var related_list_edit_helper = Class.create();
related_list_edit_helper.prototype = {
initialize: function() {},
create: function( /*RESTAPIRequest*/ request, /*RESTAPIResponse*/ response) {
var json = this.getJsonBody(request);
if (response.getStatusCode === 400)
return;
var itemFilterQuery = json.itemFilterQuery;
var m2mQuery = json.newItemsQuery;
var userGivenTable = json.userGivenTable;
var parentRecordSysId = json.parentRecordSysId;
var parentFieldName = json.parentFieldName;
var referencedFieldName = json.referencedFieldName;
var m2mTableName = json.m2mTableName;
var type = json.type;
var result = [];
try {
var gr = new GlideRecord(userGivenTable);
gr.addQuery(itemFilterQuery);
gr.addQuery(m2mQuery);
gr.query();
// for each new item, create a new record in the m2m table
if (type === 'm2m') {
while (gr.next()) {
var m2m = new GlideRecord(m2mTableName);
if (m2m.canCreate() || m2m.canWrite()) {
m2m.initialize();
m2m.setValue(parentFieldName, parentRecordSysId);
m2m.setValue(referencedFieldName, gr.getUniqueValue());
m2m.insert();
result.push(m2m.getUniqueValue());
}
}
} else if (type === 'o2m') {
while (gr.next()) {
var parentTable = gr[parentFieldName].getReferenceTable();
if (gr.canWrite() || new global.BulkAddRecords().canRelateRecord(parentTable, gr, parentFieldName)) {
gr.setValue(parentFieldName, parentRecordSysId);
gr.update();
}
}
}
this.setResponse(response, result);
} catch (e) {
response.setStatus(400);
}
},
setResponse: function( /*RESTAPIResponse*/ response, responseObj) {
response.setStatus(200);
response.setContentType('application/json');
response.setBody(responseObj);
},
getJsonBody: function( /*RESTAPIRequest*/ request) {
var body = "";
var json = "";
try {
var requestBody = request.body;
var requestString = requestBody.dataString;
return JSON.parse(requestString);
} catch (e) {
response.setStatus(400);
var msg = gs.getMessage("CRUD operation failed: {0}", e);
throw new sn_ws_err.BadRequestError(msg);
}
},
type: 'related_list_edit_helper'
};
Sys ID
052c5b0f7707330022f7f4d268106131