Name

global.linkGeneratorWorkspace

Description

No description available

Script

var linkGeneratorWorkspace = Class.create();

// Workspace constants
linkGeneratorWorkspace.WORKSPACE_ACTION_OPEN_URL = 'e477ea65532333003eddddeeff7b12eb';
linkGeneratorWorkspace.WORKSPACE_PAYLOAD_TABLE_OPEN_URL = 'var__m_sys_declarative_action_payload_field_e477ea65532333003eddddeeff7b12eb';
linkGeneratorWorkspace.WORKSPACE_MODEL_FIELD = '15920e6d534723003eddddeeff7b1244';

linkGeneratorWorkspace.prototype = {
  initialize: function() {},
  
  createWorkspaceDecoratorForLinkMapping: function(grLinkMapping) {
  	var gr = new GlideRecord('sys_declarative_action_assignment');
  	
  	gr.initialize();
  	gr.setValue('action_type', 'field');
  	gr.setValue('client_action', linkGeneratorWorkspace.WORKSPACE_ACTION_OPEN_URL);
  	gr.setValue('declarative_action_type', 'dispatch_action');
  	gr.setValue('design_icon', 'open_link_right_outline');
  	gr.setValue('model', linkGeneratorWorkspace.WORKSPACE_MODEL_FIELD);
  	gr.setValue('payload_map_input_table', linkGeneratorWorkspace.WORKSPACE_PAYLOAD_TABLE_OPEN_URL);
  	
  	this._setDecoratorFieldsFromLinkMapping(grLinkMapping, gr);

  	return gr.insert();
  },
  
  updateWorkspaceDecoratorForLinkMapping: function(grLinkMapping) {
  	if (grLinkMapping.workspace_decorator.nil())
  		return;
  	
  	var gr = grLinkMapping.workspace_decorator.getRefRecord();
  	
  	this._setDecoratorFieldsFromLinkMapping(grLinkMapping, gr);
  	
  	gr.update();
  },
  
  removeWorkspaceDecoratorForLinkMapping: function(grLinkMapping) {
  	if (grLinkMapping.workspace_decorator.nil())
  		return;
  	
  	var gr = grLinkMapping.workspace_decorator.getRefRecord();
  	
  	if (gr.isValidRecord())
  		gr.deleteRecord();
  },
  
  _setDecoratorFieldsFromLinkMapping : function(grLinkGeneratorMapping, grDeclarativeActionMapping) {
  	grDeclarativeActionMapping.setValue('active', grLinkGeneratorMapping.active && 'agent_workspace' == grLinkGeneratorMapping.type);
  	grDeclarativeActionMapping.setValue('label', grLinkGeneratorMapping.btn_name);
  	grDeclarativeActionMapping.setValue('action_name', grLinkGeneratorMapping.btn_name);
  	grDeclarativeActionMapping.setValue('table', grLinkGeneratorMapping.map_table);
  	grDeclarativeActionMapping.setValue('field_name', grLinkGeneratorMapping.map_field_name);
  	grDeclarativeActionMapping.setValue('payload_map', 'url=/api/now/generatedlink/getGeneratedFormURL?name=' + grLinkGeneratorMapping.link_generator.value + '&tableName={{tableName}}&recordId={{recordSysId}}&fieldName={{fieldName}}&fieldValue={{value}}');
  	grDeclarativeActionMapping.setValue('script_condition', 'current.getTableName() == "' + grLinkGeneratorMapping.map_table + '"');
  },

  type: 'linkGeneratorWorkspace'
};

Sys ID

eeb135003ba333003585802b13efc4e4

Offical Documentation

Official Docs: