Name

global.DynamicSegmentProtection

Description

Contains common logic for checking dynamic segment configuration

Script

var DynamicSegmentProtection = Class.create();

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

  //define if static/dynamic mode
  defineConfigurationMode: function(className, formScreenId) {
  	var dynamicFormSegmentTable = "sys_sg_dynamic_form_segment";
  	var formScreenColumnName = "form";
  	var dynamicMode = "dynamic";
  	var staticMode = "static";
  	
  	if(className == dynamicFormSegmentTable)
  		return dynamicMode;
  	
  	var formSegmentGR = new GlideRecord(dynamicFormSegmentTable);
  	formSegmentGR.addQuery(formScreenColumnName, formScreenId);
  	formSegmentGR.query();
  	if(formSegmentGR.next())
  		return dynamicMode;

  	return staticMode;
  },
  
  checkStaticSegment: function(staticSegmentGR, index, messagePrefix){
  	var isSuccessful = true;
  	if(!staticSegmentGR.header_view_config) {
  		gs.addErrorMessage(
  			messagePrefix + " "+
  			gs.getMessage("The field \"Header card\" is empty. It must be set to work together with a dynamic segment"));
  		
  		isSuccessful = false;
  	}

      if(staticSegmentGR.is_sticky && index != 0) {
  		gs.addErrorMessage(gs.getMessage(
  			messagePrefix + " "+
  			"The property \"Sticky\" should be set to false. Only the first static segment may be marked as sticky"));
  		
  		isSuccessful = false;
  	}
  	
  	return isSuccessful;
 },
  
  type: 'DynamicSegmentProtection'
};

Sys ID

d035a3187313101002ef7a2f1bf6a722

Offical Documentation

Official Docs: