UI ポリシーのエラーメッセージについて
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
06-19-2024 04:32 AM
コミュニティの皆様
UIポリシーで必須化している項目を入力せずに更新した際に出る、
エラーメッセージにつきまして、表示文言を変更したいと考えているのですが、
このエラーメッセージの内容は変更は可能なのでしょうか?
もし可能であれば、どこから変更できるのかご教示いただけますと幸いです。
※添付画像の赤線のメッセージです。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
06-20-2024 07:44 AM
そのメッセージの原本(英語の文章)を変更する方法は知らないですが、日本語だけ書き換えるなら方法があります。
メニューの「システムローカリゼーション」の「メッセージ」で
キー「the following mandatory fields are not filled in」を検索してください似たようなのがいくつかありますが完全一致する物を探してください。言語「日本語」のメッセージを変えると、日本語の時だけ変えることが出来ます。
以下の例は「(カスタマイズ)」を先頭に付けた例です。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
06-20-2024 11:38 PM - 編集済み 06-20-2024 11:40 PM
ご回答いただき、ありがとうございます!
こちらの設定からですと、すべての必須項目の文言が変わると思うのですが、
ピンポイントで特定のフィールドのみ必須メッセージを変更したく、
その場合の手法につきまして、ご存知でございますか?
現状を簡単に説明しますと以下の通りとなっております。
1.フィールドAは特定ステータスの場合に必須のため、UIポリシーにて条件設定をして必須にしている
2.ステータスを次のステータスに変更するボタンをUIアクションにて作成し設置
3.UIアクション内で、Aフィールドが未入力の場合に表示される文言を記述
4.Aフィールド未入力の場合にボタンを押下すると、UIポリシーのデフォルト文言が表示されてしまう
※UIポリシーを非アクティブにするとUIアクションで作成したメッセージ表示される
こちらの4番で、UIポリシーのデフォルト文言が出てしまう件を解消したいです。
1インスタンスを複数のプロジェクトで使用しているため、グローバルで影響のでそうな設定はなるべく控えたいと考えております。
UIポリシーのスクリプトや、UIアクションのスクリプト上で解決などは可能でしょうか。。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
06-26-2024 06:20 PM
その場合は、onChange(onLoadも兼ねる)で、先にチェックしてフィールドメッセージを表示するのはどうでしょうか。最初からフィールドの下に警告やエラーメッセージを表示させることで対処することになります。 必須でエラーメッセージは標準のままですが伝えたいメッセージは表示された状態(最初から表示されている状態)にはなります。
または、必須項目にはしないでUI Action内でエラーメッセージを表示することも選択肢のひとつかもしれません。
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
07-04-2024 05:33 PM - 編集済み 07-04-2024 05:36 PM
3.UI Actionの書き方によりますが、onClickの処理で
フィールドに値が入っているかどうかをチェック>無かったらエラーメッセージを出す>有ればステータスを更新
という順でScriptを書けば、UI Actionボタンを押したらチェックロジックが先に走り出して、なかったら自分で設定したエラーメッセージが表示されるはずです。(レコード保存の前なので、Globalのエラーメッセージが表示されないです。)
ただ、UI Action使わずに普通にレコードを保存する場合、UIポリシーのデフォルトエラーメッセージが表示されます。
// ボタンのonClickイベントにこのスクリプトを設定します
function checkMandatory() {
var gr = new GlideRecord('your_table_name'); // ここで対象のテーブル名に変更してください
gr.get(g_form.getUniqueValue());
// 1. フィールドに値が入っているかどうかをチェックする
if (!gr.field_name) { // ここで対象のフィールド名に変更してください
// 2. 値が入ってなかったらエラーメッセージを表示
g_form.addErrorMessage('XXX field is mandatory.');
} else {
// レコードを更新して保存する
gr.update();
g_form.addInfoMessage('Record status has been updated to 9.');
}
}