Name

sn_irm_shared_cmn.IRMPluginManager

Description

Utility class to get retrieve information about plugins in a ServiceNow instance.

Script

var IRMPluginManager = Class.create();
IRMPluginManager.prototype = {
  initialize: function() {},

  type: 'IRMPluginManager',
};

/**
* Check if a plugin/store application is active in an instance.
*
* @param String pluginID - Plugin ID.
* @param String appID - Store application ID, if not provided, the method will try to retrieve the application ID automatically (less performant).
* @return boolean isActive
*/
IRMPluginManager.isActive = function(pluginID, appID) {
  var self = this;
  var pluginManager = new GlidePluginManager();
  var isPluginActive = pluginManager.isActive(pluginID);
  if (isPluginActive) {
      return true;
  }

  if (!appID) {
      appID = self._getAppID(pluginID);
  }

  return pluginManager.isActive(appID);
};

/**
* Get Store application ID by PluginID
*
* @param String pluginID - Plugin ID.
* @return String appID
*/
IRMPluginManager._getAppID = function(pluginID) {
  var appRecord = new GlideRecord('sys_store_app');
  appRecord.addQuery('sys_code', pluginID);
  appRecord.setLimit(1);
  appRecord.query();

  return appRecord.next() ? appRecord.getValue('source') : '';
};

Sys ID

dd3e52dfc311111097d7f51ca140dddb

Offical Documentation

Official Docs: