- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
07-31-2023 05:11 PM
コミュニティの皆様、いつもお世話になっております。
ChangeRequestテーブルに、「u_Assigned to(TLAgent)」フィールドを下記内容で作成しました。
・Label:u_Assigned to(TLAgent)
・Name:u_assigned_to_tl_agent
・Type:List
・Reference:User(sys_user)
(・ReadOnly:True)
上記フィールドに、自動でユーザがセットされるよう、OnChange型のClientScriptを作成しました。
ClientScriptの処理の概要としては、AssignmentGroupにグループが登録されたタイミングで、
グループのフィールド情報(u_tl_agent)などを取得して、ユーザを自動セットするという内容になります。
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
//Type appropriate comment here, and begin script below
var tlSet = g_form.getReference('assignment_group', callback);
function callback(tlSet) {
g_form.setValue('assigned_to', tlSet.u_tl);
g_form.setValue('u_assigned_to_tl_agent', tlSet.u_tl_agent);
}
}
「u_Assigned to(TLAgent)」フィールドのReadOnlyがFalseの場合、
上記スクリプトが想定通りに実行されることを確認済(スクショ①)ですが、
ReadOnlyがTrueの場合だと、一度レコードを保存しないとユーザが自動セットされません。(スクショ②)
以下2点確認させてください。
1.原因について、List型フィールドに何か制約や制限事項があるのではないかと考えておりますが、
List型フィールドもしくは上記に関する既知のエラーや公式ナレッジ等ございましたら、
ご教示頂けないでしょうか。
2.u_Assigned to(TLAgent)を読み取り専用にしたいというよりかは、
自動セットされたユーザを更新されないようにしたいというのが根本なので、
ReadOnlyにして検証していたのですが、何か良い代替案があれば教えて頂きたいです。
(起票時から読み取り専用にするのではなく、UI Policyで条件を設定して読み取り専用にする等、
試行錯誤中です)
よろしくお願いいたします。
※スクリーンショット
①
②
解決済! 解決策の投稿を見る。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-01-2023 06:36 PM
上記について、Now Supportに問合せしたところ、
Now Supportのインスタンスでも再現されたと回答があり、
PRBとして確認して頂けると回答がありました。
また類似の事象で、下記のナレッジ(PRB)があり、確認後、根本原因が同様である場合は、
同様に対応されるとのことです。
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1224679
※一旦状況の回答待ちという状況ですので、本投稿はクローズとさせて頂きます。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
07-31-2023 07:57 PM
下記でいかがでしょうか。
■ClientScript
function onChange(control, oldValue, newValue, isLoading, isTemplate) {
if (isLoading || newValue === '') {
return;
}
var ga = new GlideAjax("global.u_change_request_util"); /
ga.addParam('sysparm_name', 'getUserList');
ga.addParam('sysparm_group', newValue);
ga.getXMLAnswer(function(answer) {
g_form.setValue('u_assigned_to_tl_agent', answer);
});
}
■ScriptInclude
var u_change_request_util = Class.create();
u_change_request_util.prototype = Object.extendsObject(AbstractAjaxProcessor, {
getUserList: function() {
var groupId = this.getParameter("sysparm_group");
var gr = new GlideRecord('sys_user_grmember');
gr.addQuery('group', groupId);
gr.query();
returnArray = [];
while (gr.next()) {
returnArray.push(gr.getValue('user'));
}
return returnArray.toString(); //配列を文字列にして返す
},
type: 'u_change_request_util'
});
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
07-31-2023 09:09 PM
Yamada様、ご返信ありがとうございます。
Client ScriptをgetReferenceではなく、GlideAjaxで試しましたが、
状況は変わらないままです。。
ブラウザコンソールを確認しましたが、特にエラーは表示されておりませんでした。
他に気づき等ございましたら、ご連絡をお願いいたします。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
08-01-2023 06:36 PM
上記について、Now Supportに問合せしたところ、
Now Supportのインスタンスでも再現されたと回答があり、
PRBとして確認して頂けると回答がありました。
また類似の事象で、下記のナレッジ(PRB)があり、確認後、根本原因が同様である場合は、
同様に対応されるとのことです。
https://support.servicenow.com/kb?id=kb_article_view&sysparm_article=KB1224679
※一旦状況の回答待ちという状況ですので、本投稿はクローズとさせて頂きます。