RuleSet의 규칙 확인
규칙 기술은 Windows Workflow Foundation에서 두 가지 주요 방식으로 노출됩니다.
활동의 조건으로
PolicyActivity 활동의 전방향 연결 ruleset으로
이 단원의 뒷부분에서 설명하겠지만 전방 연결을 간단하게 정의하자면 한 규칙의 작업으로 인해 다른 종속적 규칙이 다시 확인되도록 하는 기능을 의미합니다.
개발자가 코드 조건 대신 규칙 조건을 사용하는 주요 이유는 규칙 조건이 모델의 일부가 되고 워크플로 인스턴스를 실행할 때 런타임에 동적으로 업데이트될 수 있기 때문입니다. 또한 규칙 조건을 사용하는 경우 모델의 일부인 고급 도구를 모델 위에 빌드하여 추가 작성 경험, 종속성 관리, 조건 간 분석 등을 제공할 수 있다는 장점도 있습니다.
PolicyActivity 활동은 RuleSet의 정의와 실행을 캡슐화합니다. RuleSet은 일련의 실행 의미가 포함된 규칙의 컬렉션이며, 규칙은 워크플로 멤버에 작동하는 If-Then-Else 식입니다.
규칙 확인
RuleSet의 각 규칙에는 기본값이 "0"인 우선 순위 값이 있습니다. RuleSet의 규칙은 우선 순위 값으로 정렬되어 저장된 컬렉션으로 간주될 수 있습니다. Windows Workflow Foundation 규칙 확인기는 규칙을 개별적으로 확인하고 규칙의 조건을 확인한 결과에 따라 규칙의 작업을 실행합니다.
확인 메커니즘의 개념은 다음과 같습니다.
활성 규칙의 목록에서 시작합니다.
우선 순위가 가장 높은 규칙을 찾습니다.
규칙을 확인하고 Then/Else 작업을 적절하게 실행합니다.
규칙의 작업이 목록에 있는 하나 이상의 이전 규칙(우선 순위가 더 높음)에서 사용하는 필드나 속성을 업데이트하는 경우 해당하는 이전 규칙을 다시 확인합니다.
참고
특정 종속성을 가진 규칙만 다시 확인됩니다.
RuleSet에 있는 모든 규칙이 확인거나 Halt가 실행될 때까지 이 프로세스를 계속합니다.
아래에 있는 개념적 예제에서는 "A", "B" 등이 워크플로의 데이터를 나타내는 다음과 같은 ruleset을 가정합니다.
Rule 4 (Priority = 4)
IF A = 15
THEN B = 5
Rule 3 (Priority = 3)
IF C = 5
THEN B = 10
Rule 2 (Priority 2)
IF D = 2
THEN A = 15
Rule 1 (Priority 1)
IF B = 5
THEN E = 7
입력 데이터는 다음과 같다고 가정합니다.
A =0
B = 0
C = 5
D = 2
E = 0
확인은 다음과 같이 계속됩니다.
규칙 4가 false로 확인되고 규칙 4에 Else 작업이 없기 때문에 작업이 실행되지 않습니다.
규칙 3이 true로 확인되고 해당 작업이 실행되어 B = 10으로 설정합니다. 규칙 4는 B 값에 종속되지 않으므로 규칙 2의 확인이 진행됩니다.
규칙 2가 true로 확인되고 해당 작업이 실행되어 A = 15로 설정합니다.
규칙 3과 규칙 2의 조건이 A 값에 종속되지 않기 때문에 두 규칙이 다시 확인되지 않습니다. 그러나 규칙 4의 조건에서 A 값이 사용되기 때문에 규칙 4가 다시 확인됩니다. 규칙 4가 true로 확인되고 해당 작업이 실행되어 B = 5로 설정합니다. 규칙 4, 3 및 2는 B 값에 종속되지 않으므로 규칙 1의 확인이 진행됩니다.
규칙 1이 true로 확인되고 해당 작업이 실행되어 E = 7로 설정합니다.
결과 데이터 집합은 다음과 같습니다.
A = 15
B = 5
C = 5
D = 2
E = 7
참고 항목
참조
RuleSet
PolicyActivity
RuleSet
개념
규칙 조건에 대한 워크플로 변경
워크플로에서 RuleSet 사용
Copyright © 2007 by Microsoft Corporation. All rights reserved.