Thông tin chuyển tiếp giữa các hành vi

Một phần của tài liệu Nghiên cứu và thử nghiệm hệ thống workflow (Trang 111 - 115)

Thông tin chuyển tiếp mô tả các chuyển tiếp có thể giữa các hành vi và với các điều kiện trong quá trình thực thi workfllow. Hơn nữa các giới hạn điều khiển hoặc cấu trúc có thể được diễn tả trong định nghĩa hành vi.

Một định nghĩa tiến trình giống như một mạng các đường nối nút hành vi. Tất cả các đường được xác đình bởi cặp: (nút xuất phát, nút đích). Các đường này có thể được gán nhãn bởi các điều kiện chuyển tiếp.

Một điều kiện chuyển tiếp của mỗi đường sẽ cho phép chuyển tiếp tương ứng thực hiện nếu điều kiện của nó có giá trị là TRUE.

Nếu có nhiều chuyển tiếp đầu vào hoặc đầu ra của một hành vi, khi đó để mà thực hiện các chuyển tiếp thì phải sử dụng đến các khái niệm AND/XOR của SPLIT/JOIN. <xsd:element name="Transition"> <xsd:complexType> <xsd:sequence> <xsd:element ref=“xpdl:Condition" minOccurs="0"/> <xsd:element ref=“xpdl:Description" minOccurs="0"/> <xsd:element ref=“xpdl:ExtendedAttributes" minOccurs="0"/> </xsd:sequence>

<xsd:attribute name="Id" type="xsd:NMTOKEN" use="required"/>

<xsd:attribute name="From" type="xsd:NMTOKEN" use="required"/>

<xsd:attribute name="To" type="xsd:NMTOKEN" use="required"/>

<xsd:attribute name="Name" type="xsd:string"/> </xsd:complexType>

</xsd:element>

Thuộc tính Mô tả

Condition Một biểu thức điều kiện chuyển đổi dựa trên dữ liệu liên quan Workflow.

(ví dụ. 'Contract' = 'SMALL' OR 'Contract' <$20,000). Mặc định: TRUE

Description Phần mô tả của chuyển tiếp. Extended

Attributes

Phần mở rộng do nhà cung cấp thêm vào.

From Xác định hành vi xuất phát của chuyển tiếp.

Id Định danh của chuyển tiếp.

Name Tên của chuyển tiếp.

To Xác định hành vi đích của chuyển tiếp.

Bảng 3-27 Thông tin chuyển tiếp – các thuộc tính

Điều kiện

<xsd:complexType mixed="true">

<xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:element ref=“xpdl:Xpression"/> </xsd:choice> <xsd:attribute name="Type"> <xsd:simpleType> <xsd:restriction base="xsd:NMTOKEN"> <xsd:enumeration value="CONDITION"/> <xsd:enumeration value="OTHERWISE"/> <xsd:enumeration value="EXCEPTION"/> <xsd:enumeration value="DEFAULTEXCEPTION"/> </xsd:restriction> </xsd:simpleType> </xsd:attribute> </xsd:complexType> </xsd:element> <xsd:element name="Xpression"> <xsd:complexType mixed="true">

<xsd:choice minOccurs="0" maxOccurs="unbounded"> <xsd:any processContents="lax"minOccurs="0" maxOccurs="unbounded"/>

</xsd:choice> </xsd:complexType> </xsd:element>

Thuộc tính Mô tả

Type Định nghĩa kiểu của điều kiện chuyển tiếp. Chúng nhận các giá trị sau:

CONDITION Chỉ ra rằng chuyển tiếp được thực hiện nếu điều kiện đó được thỏa mãn.

OTHERWISE Chỉ ra rằng chuyển tiếp đó là chuyển tiếp mặc định (là chuyển tiếp được thực hiện nếu không có điều kiện nào đạt được). EXCEPTION Chỉ ra rằng chuyển tiếp đó được thực hiện

nếu có một ngoại lệ và điều kiện của nó được thỏa mãn.

DEFAULTEXCEPT ION

Chỉ ra rằng chuyển tiếp đó là chuyển tiếp mặc định( là chuyển tiếp được thực hiện nếu có một ngoại lệ và không có điều kiện ngoại lệ nào đạt được)

Xpression Một biểu thức điều kiện được biểu diễn bằng XML Bảng 3-28 Điều kiện-các thuộc tính

Các điều kiện ngoại lệ:

Ngoại lệ và kiểu DEFAULTEXCEPTION cho phép đặc tả các nhánh được tạo ra chỉ khi một ngoại lệ xảy ra. Kiểu EXCPTION tương đương với kiểu CONDITION và kiểu DEFAULTEXCEPTION phù hợp với kiểu OTHERWISE. Điều kiện có thể chứa hoặc là tên của một ngoại lệ hoặc là một biểu thức phức tạp hơn..

Ví dụ dưới đây mô tả một tập hợp các chuyển tiếp từ một hành vi bao gồm các ngoại lệ: nhánh 1 và 2 được xử lý dưới các điều kiện bình thường, nhánh 3 và nhánh 4 được xử lý nếu có một ngoại lệ xảy ra.

<Transition Id="branch1" From="CheckBalance" To="ProcessRequest"> <Condition Type="CONDITION">Balance > 1000</Condition> </Transition>

<Transition Id="branch2" From="CheckBalance" To="InsufFunds"> <Condition Type="OTHERWISE"/>

</Transition>

<Transition Id="branch3" From="CheckBalance" To="MessageDisplay"> <Condition Type="EXCEPTION">ATMDownException</Condition> </Transition>

<Transition Id="branch4" From="CheckBalance" To="SendAlarm"> <Condition Type="DEFAULTEXCEPTION"/>

</Transition> </Transitions>

Một phần của tài liệu Nghiên cứu và thử nghiệm hệ thống workflow (Trang 111 - 115)