スケジュールスクリプトのユースケース
ビジネスルールスクリプトは、ビジネスルールが実行するアクションを指定します。通常、スクリプトには、現在のレコードなどの、システム内のアイテムを参照するための事前定義されたグローバル変数が含まれています。グローバル変数はすべてのビジネスルールで使用できます。
警告:
ここに記載されているカスタマイズは、特定のインスタンスで使用するために開発されたものであり、Now Support ではサポートされていません。この方法は現状のまま提供され、実装の前に完全にテストする必要があります。このカスタマイズに関するすべての質問およびコメントは、コミュニティフォーラムに投稿してください。
スケジュールを指定して期間を計算
タイプ: ビジネスルールの更新/挿入前。
説明:ビジネス期間は、特定の「スケジュールの作成と使用」に基づいて、インシデントのオープンからクローズまでの期間を計算します。スケジュールが指定されていない場合、スクリプトはクエリによって返された最初のスケジュールだけを使用します。
スクリプトの例:
次の例では、インシデント状況が解決済みに移行するときの解決期間を設定します。
var gr_rec = new GlideRecord('incident');
gr_rec.get('ed92e8d173d023002728660c4cf6a7bc');
if (gr_rec.incident_state == 6) {
var dur = calcDurationSchedule(gr_rec.opened_at, gr_rec.sys_updated_on);
}
function calcDurationSchedule(start, end){
// Get the user
var usr = new GlideRecord('sys_user');
usr.get(gs.getUserID());
// Create schedule - pass in the sys_id of your standard work day schedule and pass in the users timezone
var sched = new GlideSchedule('08fcd0830a0a0b2600079f56b1adb9ae',usr.time_zone);
// Get duration based on schedule/timezone
return(sched.duration(start.getGlideObject(), end.getGlideObject()));
}今後の終了日を確認
タイプ:スケジュール設定済みスクリプト。
説明:このスクリプトは、今後 90 日、50 日、または 10 日以内 (契約期間フィールドでの指定に応じる) に終了する契約の終了日を夜間にチェックします。
スクリプトの例:
function contractNoticeDue(){
var now_GR = new GlideRecord("contract");
now_GR.addQuery("u_contract_status","Active");
now_GR.query();
while(now_GR.next()){
if((now_GR.u_termination_date<= gs.daysAgo(-90))&&(now_GR.u_contract_duration=="Long")){
now_GR.u_contract_status="In review";}
elseif((now_GR.u_termination_date<= gs.daysAgo(-50))&&(now_GR.u_contract_duration=="Medium")){
now_GR.u_contract_status="In review";}
elseif((now_GR.u_termination_date <= gs.daysAgo(-10))&&(now_GR.u_contract_duration=="Short")){
now_GR.u_contract_status="In review";}
now_GR.update();
}
}ビジネスルールでスクリプトを使用して、次のような一般的なタスクを実行します。
- 2 つの日付フィールドを比較します。
- XML ペイロードを解析します。
- ビジネスルール内のデータベースアクションを中止します。
スクリプトでは、次のこともできます。
- ビジネスルールをトリガーする操作を指定します。
- スクラッチパッドと表示ビジネスルールを使用して、ユーザーがフォームをロードする直前にフォームの値を変更します。
- 条件ビルダーの場合と同様に OR 条件を使用します。
サーバーサイドスクリプトで使用可能なシステムのスクリプティング機能を利用することもできます。
ビジネスルールフォームのオプションを使用すると、スクリプトを記述せずに条件をビルドし、フィールド値を設定して、アラートメッセージを表示できます。