- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-06-2022 09:22 PM
Change Risk Assessmentに定義されている、同カテゴリの[Metric Category]質問[Metric]で特定の選択肢が選ばれた時に、同カテゴリの別の質問[Metric]を必須またはリードオンリーにしたりする事は可能でしょうか?
どんな些細な事でなにかご存知であれば、ご教授頂けると幸いです。
宜しくお願い致します。
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-07-2022 08:48 PM
標準機能としてはなさそうです。UI Policyや Catalog Client Scriptのような機能は提供されていないです。
唯一動的に制御できるのがDependency で、例えば選択肢の1番を選んだ時だけ表示するような制御ができます。この仕組みで読み取り専用項目を、特定の選択肢が選ばれた時だけ表示することは出来ます。
もし、本格的にScriptを改造してでも、対応したいのであれば、UI Action の 「Risk Assessment」でRisk Assessment を表示した後、Client Scriptを実行させる個所があります。「$j("iframe[src...」の個所です。こうすることで追加の制御を入れることが可能です。「dialogWindow.on("beforeclose"...」もイベントによるスクリプト実行です。
//UI Action の Risk Assessment の一部抜粋
handleAsmt: function(asmtInstanceSysId, changeRiskAsmtSysId, changeRequestSysId, riskAsmtName) {
//------省略------
var dialogWindow = new GlideModal("change_risk_asmt_" + asmtInstanceSysId, false, "modal-lg");
dialogWindow.setTitle(riskAsmtName + "");
dialogWindow.setAutoFullHeight(true);
dialogWindow.setPreference("sysId", changeRequestSysId);
dialogWindow.setPreference("focusTrap", true);
dialogWindow.on("beforeclose", this.deleteAsmt.bind(this, asmtInstanceSysId));
dialogWindow.renderIframe(url, function() {
$j("iframe[src*='" + asmtUiPage + ".do']").contents().find("td[class='spacerCellSmall']").each(
function(i,e) {
e.remove();
}
);
});
そこより、根本のUI Pageを変更するのであれば UI Page「assessment_take2」 がそのPageになります。
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
09-07-2022 08:48 PM
標準機能としてはなさそうです。UI Policyや Catalog Client Scriptのような機能は提供されていないです。
唯一動的に制御できるのがDependency で、例えば選択肢の1番を選んだ時だけ表示するような制御ができます。この仕組みで読み取り専用項目を、特定の選択肢が選ばれた時だけ表示することは出来ます。
もし、本格的にScriptを改造してでも、対応したいのであれば、UI Action の 「Risk Assessment」でRisk Assessment を表示した後、Client Scriptを実行させる個所があります。「$j("iframe[src...」の個所です。こうすることで追加の制御を入れることが可能です。「dialogWindow.on("beforeclose"...」もイベントによるスクリプト実行です。
//UI Action の Risk Assessment の一部抜粋
handleAsmt: function(asmtInstanceSysId, changeRiskAsmtSysId, changeRequestSysId, riskAsmtName) {
//------省略------
var dialogWindow = new GlideModal("change_risk_asmt_" + asmtInstanceSysId, false, "modal-lg");
dialogWindow.setTitle(riskAsmtName + "");
dialogWindow.setAutoFullHeight(true);
dialogWindow.setPreference("sysId", changeRequestSysId);
dialogWindow.setPreference("focusTrap", true);
dialogWindow.on("beforeclose", this.deleteAsmt.bind(this, asmtInstanceSysId));
dialogWindow.renderIframe(url, function() {
$j("iframe[src*='" + asmtUiPage + ".do']").contents().find("td[class='spacerCellSmall']").each(
function(i,e) {
e.remove();
}
);
});
そこより、根本のUI Pageを変更するのであれば UI Page「assessment_take2」 がそのPageになります。