Name

global.CatalogTaskGenerator

Description

Generates child tasks (from a delivery plan) for a request item. Subclasss of DeliveryPlanTaskGenerator. Differs in two ways 1) Slightly different field set in _createTask 2) Sets parent fields property for a catalog task

Script

gs.include('DeliveryPlanTaskGenerator');
var CatalogTaskGenerator= Class.create(); 

CatalogTaskGenerator.prototype = Object.extendsObject(DeliveryPlanTaskGenerator, {

  _createTask : function(/* TaskToken */ tt) {

    var template = new GlideRecord('sc_cat_item_delivery_task');
    template.get(tt.getId());
    var description = template.short_description;	
    if (!description)
       description = this.parentItem.cat_item.short_description;

    // if we're still nil use the task name
    if (!description) 
    description = template.name;

    var task = new GlideRecord(this.plan.getTaskTable());
    task.initialize();
    this._setParentage(task);
    task.short_description = description;
    task.description = template.instructions;
    task.work_notes = template.work_notes;
    task.due_date.setValue(tt.getDueDate(this._now));
    task.assignment_group = template.group;
    task.assigned_to = template.assigned_to;
    task.order = tt.getOrder();
    task.delivery_task = tt.getId();
    task.expected_start.setValue(tt.getExpectedStart(this._now));
    task.state = -5;
    task.cmdb_ci = this.parentItem.configuration_item;
    task.request_item.setRefRecord(this.parentItem);
    this._runTaskScript(task, tt);
    if (tt.getType() == 1)
       this._addApprovalDetails(tt, task);
    var id = task.insert();
    this._map[tt.getId()] = id;
 },

 _setParentage : function (/* GlideRecord */ task) {
    task.parent = this.parentItem.sys_id;
    if (task.getRecordClassName() == 'sc_task')
       task.request_item = this.parentItem.sys_id;
 }

});

Sys ID

20979bc60a0a0b9900aa6333aaf155bc

Offical Documentation

Official Docs: