Name

global.KBParentData

Description

This script include is used to return the parent categories of a given knowledge article

Script

var KBParentData = Class.create();
KBParentData.prototype = {
  initialize: function() {},
  getParentCategory: function(input, category) {
      var parentId, parentName, childRecord, parentRecord, parentKBRecord;
      var isKBRecord = false;
      var cat = (typeof category === 'string') ? [category] : category;
      childRecord = new GlideRecord('kb_category');
      childRecord.addQuery('sys_id', input);
      childRecord.addActiveQuery();
      childRecord.query();
      while (childRecord.next())
          parentId = childRecord.parent_id;
      parentRecord = new GlideRecord('kb_category');
      parentRecord.addQuery('sys_id', parentId);
      parentRecord.addActiveQuery();
      parentRecord.query();
      while (parentRecord.next())
          parentName = parentRecord.label;
      if (!parentName) {
          parentKBRecord = new GlideRecord('kb_knowledge_base');
          if (parentKBRecord.get(parentId)) {
              parentName = parentKBRecord.getDisplayValue('title');
              isKBRecord = true;
          }
      }
      if (parentName && parentId) {
          cat.unshift(parentName);
          return isKBRecord ? cat : this.getParentCategory(parentId, cat);
      }
      return cat;
  },

  type: 'KBParentData'
};

Sys ID

bd61cbb373a13300ede6ff0ee2f6a7e3

Offical Documentation

Official Docs: