Skip to main content

This documentation is for an older version of this product. See the latest version of this content.Opens in a new tab

Requires (メソッド・キーワード)

ユーザまたはプロセスがこのメソッドを呼び出すために必要な特権のリストを指定します。

使用法

このメソッドの使用を、指定した特権を持つユーザまたはプロセスに限定することを指定するには、以下の構文を使用します。

Method name(formal_spec) As returnclass [ Requires = privilegelist ] 
{    //implementation } 

privilegelist は、単一の特権、または引用符で囲んだ複数の特権のコンマ区切りリストのいずれかにします。各特権は、resource:permission の形式をとります。permission は、Use、Read、または Write (あるいは 1 文字の省略形 UR、または W) です。

1 つのリソースに複数の許可を指定するには、1 文字の省略形を使用します。

詳細

メソッドを呼び出すには、ユーザまたはプロセスは、特権のリストにあるすべての特権を持っている必要があります。指定された特権がない場合にこのメソッドを呼び出すと、<PROTECT> エラーが発生します。

メソッドがスーパークラスから Requires キーワードを継承する場合、キーワードに新しい値を設定して、必要な特権のリストに追加できます。必要な特権をこのように削除することはできません。

既定値

このキーワードを省略すると、このメソッドの呼び出しに特別な特権は不要になります。

以下のメソッドでは、Sales データベースの読み取り許可と、Marketing データベースへの書き込み許可が必要です (データベースへの書き込み許可を持っている場合、読み取り許可は自動的に付与されます)。

ClassMethod UpdateTotalSales() [ Requires = "%DB_SALES: Read, %DB_MARKETING: Write" ]
{
   set newSales = ^["SALES"]Orders
   set totalSales = ^["MARKETING"]Orders
   set totalSales = totalSales + newSales
   set ^["MARKETING"]Orders = totalSales
}

1 つのリソースに複数の許可を指定するには、1 文字の省略形を使用します。以下の 2 つのメソッドは機能的に同等です。

ClassMethod TestMethod() [ Requires = "MyResource: RW" ]
{
   write "You have permission to run this method"
}

ClassMethod TestMethodTwo() [ Requires = "MyResource: Read, MyResource: Write" ]
{
   write "You have permission to run this method"
}

関連項目

FeedbackOpens in a new tab