最近のアクセス:
トランザクションルールの構文

ここでは、Transaction オブジェクトのルールに関連する一般的な構文について説明します。

構文

<RuleName>  [ if <condition> ]   [ on <event1>,...,<eventN> ]   [ level <Att1>,...,<AttN> ]   [ dependencies <Att1>;...;<AttN>|<&var1>;...;<&varN> ] ;
構文の表記規則の表示
入力値の説明:

RuleName
      
トランザクションルールを指定します。
condition
       ルールをトリガーするために満たす必要のある条件を示す Boolean エクスプレッションです。論理演算子 (and、or、not) を使用できます。
 event1,...,eventN 
        イベント、または "," 区切りのイベントのリストです。有効な値は、AfterInsert、AfterUpdate、AfterDeleteAfterValidateAfterCompleteAfterLevelBeforeValidate、BeforeInsert、BeforeUpdate、BeforeDelete、および BeforeComplete です。
Att1,...,AttN
         項目属性、または "," 区切りの項目属性のリストです。ルールを適用するトランザクションのレベルを決定します。セクションのレベルを指定しないと、第 1 レベルに適用するものと見なされます。
Att1,...,Att&var1,...,&varN
         
項目属性 (または変数)、または ";" 区切りのリストです。それらの項目属性 (変数) を受け入れたときにルールをトリガーすることを決定します。これは、Dependencies 節が、値が取得されるとルールがトリガーされる項目属性や変数を示すために使用されるためです。

適用範囲

オブジェクト:  Transaction

説明

トランザクションのルールの構文は、次の 2 つの部分に論理的に分けることができます: 条件およびトリガーするイベント条件のセクションは、ルールを実行するために評価する必要のあるエクスプレッションを指定するのに使用します。トリガーするイベントのセクションはルールをトリガーするイベントを示し、このイベントは on および level セクションに関連付けられています。

次の Transaction オブジェクトがあるとします:
Client
{
  ClientId*
  ClientName
  ClientType
  ClientBalance
  Phone
  { 
     ClientPhoneId*
     ClientPhoneNumber
     ClientPhoneDescription
  }
}

次に、この構文の使用例をいくつか示します:
AfterValidate (BeforeInsert と同じ) イベントで、ある値を割り当てる:
ClientType = 1 If Insert On AfterValidate;
ClientType = 1 On BeforeInsert;
AfterInsert または AfterUpdate イベントでのプロシージャーの呼び出し:
Proc(ClientId) On AfterInsert, AfterUpdate;
最大値に達した場合のルールエラーの実行:
Error('Maximum reached') If ClientBalance > &Max On AfterValidate;
AfterInsert または AfterDelete イベントでのログプロシージャーの呼び出し:
Proc1(ClientId, &Mode) On AfterInsert, AfterDelete;
ClientPhoneId 項目属性に関連付けられたレベルの後のプロシージャーの呼び出し:
Proc2(ClientId) On AfterLevel Level ClientPhoneId;

参考情報

トランザクションルール
トランザクション内のルールをトリガーするイベント




サブページ
Created: 14/09/18 03:19 by Admin Last update: 24/03/25 23:57 by Admin
カテゴリ
Powered by GXwiki 3.0