Name
sn_table_builder.FlowRecords
Description
No description available
Script
var FlowRecords = Class.create();
FlowRecords.prototype = {
/**
* @param {string} - tableName on records exists
*/
initialize: function(options) {
this.tableName = options && options.tableName || '';
this.sortQuery = options && options.sortQuery || '';
this.query = options && options.query || '';
},
/**
*/
getRecordDetails: function() {
var rows = [];
var triggerTypes = [
'record_create_or_update',
'record_create',
'record_update',
//'record_delete',
];
var flowIdTriggerMap = this._getFlowSysIds(triggerTypes, this.tableName);
var flowSysIds = Object.keys(flowIdTriggerMap);
var query = TBUtil.applySortQuery(this.query, this.sortQuery);
var flows = FlowQueries.getFlowDataOfTable(flowSysIds, query);
var canCreate = flows.canCreate();
while (flows.next()) {
var flowDetail = this._getFlowDetail(flows, flowIdTriggerMap);
rows.push(flowDetail);
}
return {
rows: rows,
canCreate: canCreate,
};
},
_getFlowDetail: function(obj, flowIdTriggerMap) {
var sysId = obj.getValue('sys_id');
return {
sysId: sysId,
name: obj.getDisplayValue('name'),
active: !!JSON.parse(obj.getValue('active')),
triggerType: flowIdTriggerMap[sysId],
status: obj.getDisplayValue('status'),
updated: obj.getDisplayValue('sys_updated_on'),
updatedBy: this._getUserDisplayName(obj.getDisplayValue('sys_updated_by')),
canDelete: obj.canDelete(),
canWrite: obj.canWrite(),
};
},
_getFlowSysIds: function(triggerTypes, tbName) {
var triggers = FlowQueries.getTriggersOfType(triggerTypes);
var sysIds = {};
while (triggers.next()) {
var tableName = triggers.getDisplayValue('trigger_inputs.table');
if (tableName === tbName) {
var triggerType = triggers.getValue('trigger_type');
var sysId = triggers.getValue('flow');
sysIds[sysId] = triggerType;
}
}
return sysIds;
},
_getUserDisplayName: function(userName) {
var users = new GlideRecord('sys_user');
users.addQuery('user_name', userName);
users.query();
if (users.next()) {
return users.getDisplayValue('name');
}
},
type: 'FlowRecords'
};
Sys ID
ab56a948772a811031e3b3c64b5a99bf