Name
global.ExternalDependencyChange
Description
No description available
Script
var ExternalDependencyChange = Class.create();
ExternalDependencyChange.prototype = {
initialize: function() {
},
updateDependencyTypeInRelations: function (_current) {
gs.info("Into ExternalDependencyChange.changeDependency -> " + _current.getValue("sys_id"));
var shadowTasksInProject = this.findShadowTasksInProject(_current.getValue('sys_id'));
var shadowTasksInOtherProjects = this.findShadowTasksInOtherProjects(_current.getValue('sys_id'));
var relations;
if ( shadowTasksInProject.length > 0 ) {
relations = new GlideRecord('planned_task_rel_planned_task');
relations.addQuery('parent', 'IN', shadowTasksInProject.join(','));
relations.setValue('inter_task_dependency_type', _current.getValue('external_dependency'));
relations.updateMultiple();
relations = new GlideRecord('planned_task_rel_planned_task');
relations.addQuery('parent', 'IN', shadowTasksInProject.join(','));
relations.query();
while ( relations.next() ) {
var externalRelation = ShadowTaskQueryHelper.findExternalRelation(relations.getValue('sys_id'));
externalRelation.setValue('inter_task_dependency_type', _current.getValue('external_dependency'));
externalRelation.setWorkflow(false);
externalRelation.update();
}
}
if ( shadowTasksInOtherProjects.length > 0 ) {
relations = new GlideRecord('planned_task_rel_planned_task');
relations.addQuery('child', 'IN', shadowTasksInOtherProjects.join(','));
relations.setValue('inter_task_dependency_type', _current.getValue('external_dependency'));
relations.updateMultiple();
}
},
findShadowTasksInProject: function(projectSysId) {
gs.info("Into ExternalDependencyChange.shadowTasks -> " + projectSysId);
var gr = new GlideRecord("planned_task");
gr.addQuery("top_task", projectSysId);
gr.addNotNullQuery("orig_sys_id").addOrCondition("shadow", "true");
gr.query();
var tasks = [];
while ( gr.next() )
tasks.push(gr.getValue('sys_id'));
return tasks;
},
findShadowTasksInOtherProjects: function(projectSysId) {
var tasks = [];
var gr = new GlideRecord('planned_task');
gr.addQuery('orig_sys_id.top_task', projectSysId);
gr.query();
while ( gr.next() ) {
tasks.push(gr.getValue('sys_id'));
}
return tasks;
},
type: 'ExternalDependencyChange'
};
Sys ID
08d30ab19fb22200598a5bb0657fcf26