Name

global.PayloadScannerAJAX

Description

Scans an application to create an application template

Script

var PayloadScannerAJAX = Class.create();

PayloadScannerAJAX.prototype = Object.extendsObject(AbstractAjaxProcessor, {

  /**
   * Run the PayloadScannerAJAX for the current sys_app record
   */
 scanCurrentApplication: function (sourceId, sourceName, reuseTemplateApp) {	
  	try {

  		var isMaint = gs.hasRole('maint');
  		var isAppTemplateAuthor = gs.hasRole('app_template_author');
  		var allowRoleBasedAccess = 
  			gs.getProperty('com.snc.app_templates.enable_role_based_authoring', 'false') === 'true';

  		//If I'm not maint nor app_template_author (and we allow role based access), fail
  		if (!(isMaint || (allowRoleBasedAccess && isAppTemplateAuthor))) {
  			gs.addErrorMessage(gs.getMessage('App template creation not allowed'));
  			return;
  		}
  		
  		sourceId = this.getParameter('sysparm_source_id') || sourceId;
  		sourceName = this.getParameter('sysparm_source_name') || sourceName;
  		reuseTemplateApp = this.getParameter('sysparm_reuse_template_app') || reuseTemplateApp;
  					
  		var preCheckScanner = new sn_templates.PreScanChecker();
  		var preCheckResult = preCheckScanner.scan(sourceId, sourceName);
  		
  		if (gs.nil(preCheckResult) || preCheckResult.isTemplatizable() === false) {
  			var errorMessage = gs.getMessage('Template cannot be created, reasons: {0}', preCheckResult.getReasons());
  			gs.addErrorMessage(errorMessage);
  			return;
  		}
  		
  		var scanner = new sn_templates.PayloadScanner();
  		var result = scanner.scan(sourceId, sourceName, reuseTemplateApp);

  		if (gs.nil(result) || result.getStatus() !== 'SUCCESS') {
  			// If we can't kick off the progress worker, tell the user
  			gs.addErrorMessage(gs.getMessage('Error starting template creation: {0}', [result.getErrorMessage()]));
  			return;
  		}
  					
  		progressWorkerId = result.getProgressWorkerId();
  		return progressWorkerId;

  	} catch (e) {
  		gs.addErrorMessage(e.message);
  	}
  },

 type: 'PayloadScannerAJAX'
});

Sys ID

271d3cfa5b91301083f30f216581c762

Offical Documentation

Official Docs: