レコードアクセスの制限
データベースクエリの前に実行されるクエリビジネスルールを使用して、ユーザーが特定のレコードにアクセスできないようにすることができます。
警告:
ここに記載されているカスタマイズは、特定のインスタンスで使用するために開発されたものであり、Now Support ではサポートされていません。この方法は現状のまま提供され、実装の前に完全にテストする必要があります。このカスタマイズに関するすべての質問およびコメントは、コミュニティフォーラムに投稿してください。
インシデントレコードへのアクセスを制限するデフォルトのビジネスルールの以下の例を考慮してください。
| 名前 | テーブル | 時期 |
|---|---|---|
| インシデントクエリ | インシデント | クエリ前 |
レコードアクセスの制限
次の例では、itil ロールを持ち、[ 問い合わせユーザー ] または [作成者 ] フィールドにリストされている場合を除き、ユーザーはインシデントレコードへのアクセスが制限されます。セルフサービスユーザーがインシデントのリストを開くと、自分が送信したインシデントのみが表示されます。
if (!gs.hasRole("itil")&& gs.isInteractive()) {
var u = gs.getUserID();
var qc = current.addQuery("caller_id", u).addOrCondition("opened_by", u).addOrCondition("watch_list","CONTAINS", u);
gs.print("query restricted to user: " + u);}
注:
ユーザーに表示されるレコードは、アクセス制御を使用して制限することもできます。詳細については、「Access Control List Rules」を参照してください。
平日のスケジュールスクリプト
タイプ:ビジネスルール/クライアントスクリプト。
このスクリプトは平日のスクリプトをスケジュールします。「スクリプトをここに入力 (Your Script here)」と表示されている場所にスクリプトを挿入します。
var go ='false';
var now =new Date();
// Correct time zone, which is by default GMT -7
now.setHours(now.getHours()+8);
var day = now.getDay();
// No go on Saturday or Sunday
if(day !=0&& day !=6){
// (your script here)
}現在の日付に基づく日付フィールドの設定
このスクリプトは、現在の曜日に応じて日付フィールドを設定します。この例では、日が月曜日から水曜日の場合、日付は次の月曜日に設定されます。それ以外の場合は、日付フィールドは次の月曜日に設定されます。
function setCabDate(){
var today = new Date();
var thisDay = today.getDay();
//returns 0 for Sunday, 1 for Monday, through 6 for Saturday.
var thisMon = new GlideDateTime();
thisMon.setDisplayValue(gs.beginningOfThisWeek());
var nextMon = thisMon.getNumericValue();
nextMon +=(1000*60*60*24*7);
if((thisDay <4)&&(thisDay >0))
//if today is Mon thru Wed (thisDay = 1, 2, or 3), set cab to this coming Monday.
current.u_req_cab_rev_date.setDateNumericValue(thisMon.getNumericValue());
else if((thisDay >=4)||(thisDay ==0))
//if today is Thurs thru Sun (thisDay = 4, 5, 6, or 0), set cab to next Monday.
current.u_req_cab_rev_date.setDateNumericValue(nextMon);
}すべての日付/時刻フィールドの入力を検証するために、検証スクリプトで以下を使用できます () を開きます。このスクリプトでは日付/時刻形式がハードコードされているため、インスタンスの日付/時刻形式と一致する必要があります。インスタンスの日付/時刻形式が変更された場合は、検証スクリプトを更新する必要があります。
検証スクリプトのタイプを [日付/時刻] に設定します。このようにすると、この検証スクリプトでユーザーが日付/時刻フィールドに誤った形式を入力した場合に、エラーメッセージを受け取ります。
function validate(value){
// empty fields are still valid dates
if(!value)
return true;
// We "should" have the global date format defined always defined. But there's always that edge case.
if(typeof g_user_date_time_format !=='undefined')
return isDate(value, g_user_date_time_format);
// if we don't have that defined, we can always try guessing
return parseDate(value)!==null;}詳細については、「検証スクリプトのユースケース - 日時」を参照してください。