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