---
sourceDocument: オーストラリア API リファレンス
sourceDocumentLink: https://servicenow-prod.fluidtopics.net/r/ja-JP/api-reference

 Release :

    - australia

ft:locale :

    - ja-JP

ft:publication_title :

    - オーストラリア API リファレンス

ft:clusterId :

    - crapiref

bundleId :

    - crapiref

workflow :

    - Creator


---

# レコードアクセスの制限

# レコードアクセスの制限 {#ariaid-title1}

* リリースバージョン: Australia
* 
* 更新日 2026年03月12日
* 
* ![](https://www.servicenow.com/docs/portal-asset/ico-clock) 所要時間：4分

データベースクエリの前に実行されるクエリビジネスルールを使用して、ユーザーが特定のレコードにアクセスできないようにすることができます。  
警告:  
ここに記載されているカスタマイズは、特定のインスタンスで使用するために開発されたものであり、Now Support ではサポートされていません。この方法は現状のまま提供され、実装の前に完全にテストする必要があります。このカスタマイズに関するすべての質問およびコメントは、コミュニティ[フォーラム](http://community.service-now.com/)に投稿してください。

インシデントレコードへのアクセスを制限するデフォルトのビジネスルールの以下の例を考慮してください。  
{#c_ExScptDftBfrQryBsnRu__table_jfv_wym_jq__entry__3}

| 名前 | テーブル | 時期 |
|-|-|-|
| インシデントクエリ | インシデント | クエリ前 |
[表 : 1. デフォルトのビジネスルールでのインシデントレコードへのアクセスの制限]

{#c_ExScptDftBfrQryBsnRu__table_jfv_wym_jq}  

## レコードアクセスの制限 {#c_ExScptDftBfrQryBsnRu__example_xcz_wnh_q2c}

次の例では、ユーザーは 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 Lists (ACLs)](https://www.servicenow.com/docs/access?context=access-control-rules&version=australia&pubname=australia-platform-security&ft:locale=en-US)」を参照してください。

## 平日のスケジュールスクリプト {#c_ExScptDftBfrQryBsnRu__section_nv5_rnh_q2c}

タイプ：ビジネスルール/クライアントスクリプト。  
このスクリプトは平日のスクリプトをスケジュールします。「スクリプトをここに入力 (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)
     
    }

## 現在の日付に基づく日付フィールドの設定 {#c_ExScptDftBfrQryBsnRu__section_orj_vnh_q2c}

このスクリプトは、現在の曜日に応じて日付フィールドを設定します。この例では、日が月曜日から水曜日の場合、日付は次の月曜日に設定されます。それ以外の場合は、日付フィールドは次の月曜日に設定されます。

    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;}

詳細については、「[検証スクリプトのユースケース - 日時](https://servicenow-prod.fluidtopics.net/GnrXeSVoFCwmJuycWfdTRg "すべての日付/時刻フィールドの入力を検証するために、検証スクリプトで以下を使用できます ( システム定義 > 妥当性検証スクリプト ) を開きます。")」を参照してください。

