Name

global.RMv2Relationships

Description

Manage and query relationships between Release Management v2 (and SDLC, Scrum) products, release, and other task records.

Script

var RMv2Relationships = Class.create();

RMv2Relationships.prototype = {
initialize : function() {
},

// return URL of planning board to display, based upon current record and its parent
//  type  - rm_product, rm_release, rm_release_phase
//  record - relevant planned_task record
//  bq    - base query (URL encoded)
planningBoardURL: function(type, current, bq) {
   var formURL;
   var record = current;
   if (type == 'rm_product')
      formURL = 'cardboard_release_v2.do';
   else if (type == 'rm_release') {
      formURL = 'cardboard_release_v2_release.do';
      // a release can have another release as its parent (to many levels)
      // if this one doesn't have any active children, then plan its parent
      var relGR = new GlideRecord('rm_release');
      relGR.addQuery('parent', current.getUniqueValue());
      relGR.addActiveQuery();
      relGR.addQuery('sys_class_name', 'IN', 'rm_release,rm_release_phase'); // releases, release phases only
      relGR.query();
      if (!relGR.next())
         record = current.parent;
   }
   else if (type == 'rm_release_phase') {
      formURL = 'cardboard_release_v2_release.do';
      record = current.parent;
   }
   else
      return;

   var baseId = record.sys_id;
   var shortD = record.short_description;
   var ci = record.cmdb_ci;
   var q = this.queryString(record);
   bq += this.fixedQueryString(record); // assumes bq is non empty String

   formURL += '?sysparm_query=' + q + '&sysparm_fixed_query=' + bq + '&sysparm_sys_id=' + baseId + '&sysparm_view=release&sysparm_cmdb_ci=' + ci + '&sysparm_display_name=' + shortD;    
   return formURL; 
},

queryString: function(gr) {
   var q = 'parent=^ORparent=' + gr.sys_id;
   return q;
},

fixedQueryString: function(gr) {
   var q = '';
   if (!gr.cmdb_ci.nil()) {
     q += '^cmdb_ci=' + gr.cmdb_ci;
   }
   return q;
},

type: RMv2Relationships
}

Sys ID

033b3c8b0a0a2c39322b3c97f0c01a38

Offical Documentation

Official Docs: