ServiceDesk Plus オンプレミス版 ナレッジベース

フィールド & フォームルールの使用例


フィールド & フォームルールは、リリース 9.1で機能追加されました。

この中でJavaScriptを使用したカスタムスクリプトを実行できます。こちらのページでは、その使用例をご案内します。

なお、カスタムスクリプトの実行についてはお客様責任での実行となります。
そのため、スクリプトの作成および作成されたスクリプトのサポートはできかねます。

<使用例>
リクエスト送信時に入力された納期(日付)のチェックを行い、5日以上、
先の日付が指定されていない場合、エラーメッセージを表示して送信を中
断します。

<設定方法>

1. インシデントテンプレート用のフィールドを追加します

(1) 新規フィールドの追加ページを開きます
管理 > インシデント - 追加フィールド > 新規フィールドの追加

(2) 日付/時刻タブをクリックします
(3) ラベル名に"納期"と入力して保存します

2. インシデントテンプレートに作成したフィールドを追加します

(1) インシデントテンプレート一覧からルールを適用するテンプレートを
クリックして編集ページを開きます
管理 > インシデントテンプレート

(2) 入力フォームの(空白)部分にドラッグ&ドロップフィールド・セクシ
ョンから納期フィールドをドラッグ&ドロップして保存します

3. フィールド & フォームルールを追加します

(1) ステップ 2のテンプレートのフィールド & フォームルールタブをク
リックします
(2) 新規ルールボタンをクリックして、次のように設定します

ルール名: 納期の入力チェック
ユーザータイプ: Applies to All Users
ルール実行: On Create/Edit
イベントタイプ: フォーム送信時
アクション: Execute Script

(3) カスタムスクリプトの作成リンクをクリックします
(4) スクリプトコードのエディタが開きますので、次のコードを入力して
保存します

if(checkDeliveryDate())
{
alert("納期は、5日以上、先の日付を指定してください");
$CS.stopFormSubmission(); /*stop form submission*/
}

function checkDeliveryDate()
{
var dateVal=$CS.getValue("WorkOrder_Fields_UDF_DATE1");
var currentDate = new Date();

if ((dateVal.getYear() < currentDate.getYear()) ||
((dateVal.getYear() == currentDate.getYear()) &&
(dateVal.getMonth() < currentDate.getMonth())) ||
((dateVal.getYear() == currentDate.getYear()) &&
(dateVal.getMonth() == currentDate.getMonth()) &&
(dateVal.getDate() < currentDate.getDate()+5)))
{
return true;
}
else
{
return false;
}
}

以上で、使用例のように動作します。

スクリプトの中で使用できるフィールドの参照方法やメソッドについては、スクリ
プトエディタの下のセクションからご確認頂けます。

フィールドの参照方法

詳細は管理者ガイドをご覧ください。

リクエストテンプレートのフィールド&フォームルール