Trigger Survey through a UI Action?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-17-2022 01:48 AM
Requirement: Need to Trigger a Assessment for Expediting a Change where certain questions need to be answered.
Assessment should be triggered via a UI Action called as Expedite.
Issues: 01. Created UI action but Assessment is not getting popped up in same window, it is getting opened in a separate window, Ideally it should open in same window.
02. When we are clicking on the UI Action Expedite Assessment is getting generated for all the changes and get opened in new window, How to trigger it for that particular change record only!
Below are the codes of UI Action and the Script Include:
Script Include: customSurveyUtil
var customSurveyUtil = Class.create();
customSurveyUtil.prototype = Object.extendsObject(AbstractAjaxProcessor, {
createSurvey: function() {
var typeSysID = 'b5e8e52f1b1811900210a7d6b04bcb84'; //The sys_id of an "Assessment Metric Type" record (asmt_metric_type)
var createAssessmentOutput = (new SNC.AssessmentCreation()).createAssessments(typeSysID, "", gs.getUserID());
var assessmentDetailsArray = createAssessmentOutput.split(',');
var assessmentInstanceSysId = assessmentDetailsArray[0];
var grAsmtInstance = new GlideRecord('asmt_assessment_instance');
if (grAsmtInstance.get(assessmentInstanceSysId)) {
grAsmtInstance.trigger_table = this.getParameter('sysparm_tablename');
grAsmtInstance.trigger_id = this.getParameter('sysparm_sysid');
grAsmtInstance.update();
return 'assessment_take2.do?sysparm_assessable_sysid=' + grAsmtInstance.sys_id.toString() + '&sysparm_assessable_type=' + grAsmtInstance.metric_type.toString() + '&sysparm_trigger_id =' + grAsmtInstance.trigger_id.sys_id.toString();
}
},
type: 'customSurveyUtil'
});
UI Action: Expedite
function onClick() {
var ga = new GlideAjax('global.customSurveyUtil');
ga.addParam('sysparm_name', 'createSurvey');
ga.addParam('sysparm_tablename', g_form.getTableName());
ga.addParam('sysparm_sysid', g_form.getUniqueValue());
ga.getXML(ajaxResponse);
function ajaxResponse(serverResponse) {
var answer = serverResponse.responseXML.documentElement.getAttribute("answer");
g_navigation.openPopup(answer);
}
}
- Labels:
-
Scripting and Coding