Name
global.PDDiagramActivityAppObjectRepository
Description
No description available
Script
var PDDiagramActivityAppObjectRepository = Class.create();
PDDiagramActivityAppObjectRepository.prototype = {
initialize: function(tableName) {
this.table = tableName || PDDiagramConstants.TABLES.PD_DIAGRAM_ACTIVITY_APP_OBJECT;
},
getByActivities: function(activitySysIds) {
if (!Array.isArray(activitySysIds)) return null;
var gr = new GlideRecord(this.table);
gr.addQuery(PDDiagramConstants.FIELDS.ACTIVITY, 'IN', activitySysIds.join(','));
gr.query();
var result = [];
while (gr.next()) {
result.push(PDDiagramUtils.grToObject(gr, this.RECORD_FIELDS));
}
return result;
},
insertActivityAppObject: function(activityAppObject) {
var activityId = (activityAppObject || {}).activityId;
var targetTable = (activityAppObject || {}).targetTable;
var targetRecord = (activityAppObject || {}).targetRecord;
var sysId = (activityAppObject || {}).sysId;
if (!activityId || !targetTable || !targetRecord)
throw (gs.getMessage(
'Missing one or more of required fields: activityId, targetTable, targetRecord'));
var FIELDS = PDDiagramConstants.FIELDS;
var gr = new GlideRecord(this.table);
gr.setValue(FIELDS.ACTIVITY, activityId);
gr.setValue(FIELDS.TARGET_TABLE, targetTable);
gr.setValue(FIELDS.TARGET_RECORD, targetRecord);
if (sysId)
gr.setNewGuidValue(sysId);
if (!gr.insert())
throw (gs.getMessage('Unable to insert record in {0}', this.table));
return PDDiagramUtils.grToObject(gr, this.RECORD_FIELDS);
},
deleteActivityAppObjects: function(activityAppObjects) {
var noAppObjectsErrMsg = gs.getMessage('No activity app objects to delete');
if (!Array.isArray(activityAppObjects) || !activityAppObjects.length)
throw (noAppObjectsErrMsg);
var activityId;
var targetRecords = [];
for (var i = 0; i < activityAppObjects.length; i++) {
var aao = activityAppObjects[i];
if (!activityId)
activityId = aao.activityId;
if (aao.activityId !== activityId)
throw (
gs.getMessage('App objects for deletion must belong to the same Activity'));
if (aao.targetRecord)
targetRecords.push(aao.targetRecord);
}
if (!targetRecords.length)
throw (noAppObjectsErrMsg);
var FIELDS = PDDiagramConstants.FIELDS;
var m2mIds = [];
var grM2M = new GlideRecord(this.table);
grM2M.addQuery(FIELDS.ACTIVITY, activityId);
grM2M.addQuery(FIELDS.TARGET_RECORD, 'IN', targetRecords.join(','));
grM2M.query();
while(grM2M.next())
m2mIds.push(grM2M.getUniqueValue());
grM2M = new GlideRecord(this.table);
grM2M.addQuery(FIELDS.SYS_ID, 'IN', m2mIds.join(','));
grM2M.query();
grM2M.deleteMultiple();
},
RECORD_FIELDS: [{
name: PDDiagramConstants.FIELDS.SYS_ID,
hasDisplayValue:true
},
{
name: PDDiagramConstants.FIELDS.ACTIVITY,
hasDisplayValue:true
},
{
name: PDDiagramConstants.FIELDS.TARGET_TABLE,
hasDisplayValue:true
},
{
name: PDDiagramConstants.FIELDS.TARGET_RECORD,
hasDisplayValue:true
}
],
type: 'PDDiagramActivityAppObjectRepository'
};
Sys ID
72251e710beb011082422fa5c5673ac7