How to Add conditions to Workspace Client Script in UI Action

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-19-2024 10:32 PM
Hi all,
I'm struggling to get the Conditions that normally work in my UI Action, to work in my Service Ops workspace.
I've got the UI Action button itself working, and doing what it is meant to do, but I can't get it to recognise my conditions.....
Do I need to add the conditions separately again to the Workspace Client Script itself?
If so can someone help me transform these into the client script (remembering we cannot use the "gs." server side stuff)
Condition:
gs.hasRole('itil,sn_change_write') && !current.isNewRecord() && new RiskCalculator(current).showRiskAssessment() && !new ChangeRiskAsmt().hasCompletedAssessment(current)
Workspace Client Script:
function onClick(g_form) {
var id = g_form.getUniqueValue();
var ga = new GlideAjax('ChangeRiskAsmtAjax');
ga.addParam('sysparm_name','invokeAssessmentAjax');
ga.addParam('sysparm_id',id);
ga.addParam('sysparm_class','change_request');
ga.getXML(ajaxAnswer);
}
function ajaxAnswer (response) {
var answer = response.responseXML.documentElement.getAttribute("answer");
answer = JSON.parse(answer);
var asmtInstanceSysId = answer.asmtInstanceSysId;
var changeRiskAsmtSysId = answer.changeRiskAsmtSysId;
var changeRequestSysId = answer.changeRequestSysId;
var riskAsmtName = answer.riskAsmtName;
handleAsmt(asmtInstanceSysId, changeRiskAsmtSysId, changeRequestSysId, riskAsmtName);
}
function handleAsmt(asmtInstanceSysId, changeRiskAsmtSysId, changeRequestSysId, riskAsmtName) {
var asmtUiPage = "assessment_take2";
var url1 = asmtUiPage + ".do";
url1 += "?sysparm_assessable_sysid=" + asmtInstanceSysId;
url1 += "&sysparm_assessable_type=" + changeRiskAsmtSysId;
url1 += "&sysparm_hide_header=true";
url1 += "&sysparm_hide_save=true";
url1 += "&sysparm_hide_cancel=true";
url1 += "&sysparm_hide_source_details=true";
url1 += "&sysparm_stack=no";
url1 += "&sysparm_return_url=" + getEncodedUrl(changeRequestSysId, asmtInstanceSysId);
g_modal.showFrame({
url: url1,
title: riskAsmtName + "",
size: 'lg',
height: 500
});
window.NOW.change_managment = { "riskAsmtAction" : "delete" };
window.g_parentDialog = dialogWindow;
}
function getEncodedUrl(changeRequestSysId, asmtInstanceSysId) {
var closeUiPage = "change_risk_asmt_close_dialog";
var url = "/" + closeUiPage + ".do";
url += "?sysparm_stack=no";
url += "&sysparm_id=" + changeRequestSysId;
url += "&sysparm_asmtInstanceSysId=" + asmtInstanceSysId;
return encodeURIComponent(url);
}

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
08-20-2024 04:57 PM
If this can't be achieved I'd like to possibly have a solution where the risk assessment form button in Service Ops workspace is hidden when the risk assessment completes.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-22-2025 11:01 AM
Did you get answer for this @mattmm ?

- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
07-22-2025 04:29 PM
I didn't unfortunately @NiveditaM . We ended up using the risk assessment plugins native option of the Risk assess section and button in the overview section as with this screenshot