Name

global.KnowledgeFeedbackUpdateSNC

Description

Contains methods used to migrate feedback from kb_feedback to live_message Customers should not change this class directly This class is never called directly.

Script

var KnowledgeFeedbackUpdateSNC = Class.create();
KnowledgeFeedbackUpdateSNC.prototype = {
  initialize: function() {
  },
  
  upgrade: function(){
  	//Migrates comment feedback to live_message
  	var feedback = new GlideRecord('kb_feedback');
  	feedback.setUseEngines(false);
  	feedback.addNotNullQuery('comments');
  	feedback.addNullQuery('live_message');
  	feedback.query();
  	while (feedback.next()) {
  		var userId = feedback.getValue("user");
  		var liveProfileId = null;
  		if (!JSUtil.nil(userId))
  			liveProfileId = new GlideappLiveProfile().getID(userId);

  		var articleId = feedback.getValue('article');
  		var article = feedback.article.getDisplayValue();
  		if (JSUtil.nil(articleId)) {
  			gs.logWarning("\"kb_feedback\" record does not have an article - equivalent \"live_message\" record will not be created","KnowledgeFeedbackUpdateSNC");
  			continue;
  		}
  		
  		var liveGroupProfileId = new GlideappLiveFeedUIAction().getGroupID("kb_knowledge", articleId);
  		if (JSUtil.nil(liveGroupProfileId)) {
  			gs.logWarning("Failed to create \"live_group_profile\" record for \"kb_knowledge\"" + article + " on \"kb_feedback\" record with sys_id \"" + feedback.getUniqueValue() + "\"","KnowledgeFeedbackUpdateSNC");
  			continue;
  		}
  			
  		var liveMessageId = this.migrateFeedback(liveGroupProfileId, liveProfileId, feedback);
  		if (!JSUtil.nil(liveMessageId)) {
  			feedback.live_message = liveMessageId;
  			feedback.update();
  		}
  	}
  },
  
  migrateFeedback: function(liveGroupProfileId, liveProfileId, feedback) {
  	// migrates comments
  	var liveMessage = new GlideRecord('live_message');
  	liveMessage.initialize();
  	liveMessage.autoSysFields(false);
  	liveMessage.setUseEngines(false);
  	liveMessage.setWorkflow(false);
  	liveMessage.message = feedback.getValue('comments');
  	liveMessage.sys_created_by = feedback.user.getDisplayValue();
  	liveMessage.sys_created_on = feedback.getValue('sys_created_on');
  	liveMessage.group = liveGroupProfileId;
  	liveMessage.profile = liveProfileId;
  
  	return liveMessage.insert();
  },
  
  type: 'KnowledgeFeedbackUpdateSNC'
}

Sys ID

6ff2247bb712230026778d78ee11a9d9

Offical Documentation

Official Docs: