Name
sn_grc.GRCAbstractGeneratorStrategyBase
Description
NOTE This script include is deprecated, please use GRCAbstractGeneratorV2StrategyBase instead. Shared item generator strategy utilities
Script
var GRCAbstractGeneratorStrategyBase = Class.create();
GRCAbstractGeneratorStrategyBase.prototype = {
itemTable: null,
initialize: function() {
},
generate: function() {
},
canCreateItems: function(contentId) {
return this._canCreateItems(contentId);
},
recordCanCreateItems: function(record) {
return this._recordCanCreateItems(record);
},
generateItem: function(profile, content, source) {
if (this.itemTable == null)
return "";
var item = new GlideRecord(this.itemTable);
item.addQuery("content", content.sys_id);
item.addQuery("profile", profile.sys_id);
item.addQuery('instance', true);
item.query();
if (item.next()) {
item.active = true;
this._updateSource(item, source);
item.update();
var status = new GlideRecord('sn_grc_item_generation');
status.addQuery('content', content.sys_id);
status.addQuery('profile', profile.sys_id);
status.query();
if (status.next()) {
status.setValue('running', 'complete');
status.update();
}
new GRCUtils().checkItemGenerationStatus(content.sys_id, profile.sys_id);
return "";
} else {
item.initialize();
item.profile = profile.sys_id;
item.content = content.sys_id;
this._updateSource(item, source);
item.insert();
return item.getUniqueValue();
}
},
setContentFields: function(content, item) {
if (!content.nil()) {
this._setGeneralContentFields(content, item);
this._setSpecificContentFields(content, item);
}
},
setDocumentFields: function(document, item) {
if (!document.nil()) {
this._setGeneralDocumentFields(document, item);
this._setSpecificDocumentFields(document, item);
}
},
_updateSource: function(item, source) {
item.created_one_off = false;
if ((item.source + '').indexOf(source) == -1)
item.source += source + ",";
},
_setGeneralContentFields: function(content, item) {
item.active = content.active;
if (item.category == '')
item.category = content.category;
item.classification = content.classification;
if (item.name == '')
item.name = content.name;
item.type = content.type;
if (item.attestation.nil())
item.attestation = content.attestation;
},
_setSpecificContentFields: function(content, item) {
},
_setGeneralDocumentFields: function(document, item) {
item.state = document.state;
},
_setSpecificDocumentFields: function(document, item) {
},
_canCreateItems: function(contentId) {
return false;
},
_recordCanCreateItems: function(record) {
return false;
},
type: 'GRCAbstractGeneratorStrategyBase'
};
Sys ID
553d83622f3202007eaf77cfb18c9591