ルール内コレクションの処理
場合によっては、コレクション内のすべての項目に対して個別にルールを評価する必要があることも考えられます。コレクションを反復処理する方法はいくつかありますが、次のようなルール パターンもその 1 つです。
Rule 1 (Priority = 2) // always execute this rule once to create the enumerator
IF 1==1
THEN this.enumerator = this.myCollection.GetEnumerator()
Rule 2 (Priority = 1)
IF this.enumerator.MoveNext()
THEN this.currentInstance = this.enumerator.Current
Rules 3-N (Priority = 0)
.... // Additional rules written against this.currentInstance
Rule N+1 (Priority = -1)
// can be any condition as long as it is evaluated every time;
// this.currentInstance will be evaluated each time this.currentInstance changes, whereas
// "1==1" would only be evaluated once.
IF this.currentInstance == this.currentInstance
THEN ...
Update("this/enumerator") //this will cause Rule 2 to be reevaluated
ELSE ...
Update("this/enumerator")
関連項目
参照
概念
ワークフロー内での RuleSet の使用
RuleSet 内のルール評価
Copyright © 2007 by Microsoft Corporation.All rights reserved.