Tóm tắt nội dung Ngày nay, việc ứng dụng các thành tựu phát triển của công nghệ thông tin vào các lĩnh vực của cuộc sống đang ngày càng trở nên phổ biến và đem lại nhiều hiệu quả to lớn. Quản lý Workflow là một công nghệ đang phát triển nhanh và ngày càng được khai thác bởi các hoạt động nghiệp vụ trong nhiều ngành công nghiệp khác nhau. Đặc điểm cơ bản của nó là tự động hoá tiến trình bao gồm việc kết hợp các hoạt động của người và máy, đặc biệt là các tương tác liên quan tới các công cụ và ứng dụng công nghệ thông tin. Mặc dù nó được sử dụng phổ biến nhất ở trong lĩnh vực như bảo hiểm, ngân hàng, luật pháp và quản lý chung, song nó cũng có thể áp dụng cho một vài lớp công việc của các ứng dụng công nghiệp và sản xuất
Mục tiêu của đồ án đồ án này đó là nghiên cứu và thử nghiệm hệ thống quản lý Workflow tuân theo chuẩn do hiệp hội quản lý Workflow WFMC đưa ra.
Nội dung bao gồm
-Giới thiệu tổng quan về Workflow, định nghĩa Workflow là gì, sự phát triển của các ứng dụng Workflow hiện nay, các yêu cầu cho việc chuẩn hoá.
-Giới thiệu tổng quan về mô hình tham chiếu do WFMC đề xuất và các thành phần của nó (5 giao diện)
- Giới thiệu về siêu mô hình, ngôn ngữ biểu diễn Workflow và định dạng XPDL
- Giới thiệu các hàm API phục vụ cho việc triệu gọi ứng dụng của workflow.
MỤC LỤC
MỞ ĐẦU1
CHƯƠNG 1.TỔNG QUAN VỀ WORKFLOW . 3
1.1.KHÁI NIỆM WORKFLOW . 3
1.1.1.Các chức năng ở thời điểm xây dựng. 5
1.1.2.Các điều khiển tiến trình ở thời điểm thực thi6
1.1.3.Các hoạt động tương tác ở thời điểm thực thi6
1.1.4.Sự phân phối công việc và các giao diện hệ thống. 7
1.2.MỘT SỐ LĨNH VỰC ỨNG DỤNG CỦA WORKFLOW . 8
1.2.1.Xử lý ảnh. 8
1.2.2.Quản lý tài liệu. 8
1.2.3.Thư điện tử và thư mục điện tử. 9
1.2.4.Workflow với các ứng dụng phần mềm nhóm9
1.2.5.Workflow với các ứng dụng hướng giao dịch. 9
1.2.6.Phần mềm hỗ trợ dự án. 10
1.2.7.BPR và các công cụ thiết kế hệ thống có cấu trúc. 10
1.3.CÁC MÔ HÌNH TRIỂN KHAI SẢN PHẨM . 10
1.3.1.Công cụ định nghĩa tiến trình. 11
1.3.2.Định nghĩa tiến trình. 11
1.3.3.Dịch vụ Workflow enactment12
1.3.4.Dữ liệu gắn kết và dữ liệu ứng dụng của Workflow13
1.3.5.Danh sách công việc - Worklist13
1.3.6.Bộ quản lý danh sách công việc & giao diện người dùng. 14
1.3.7.Các hoạt động giám sát15
1.3.8.Các giao diện chuẩn và giao diện nhúng. 15
1.4.CÁC TRƯỜNG HỢP TRIỂN KHAI KHÁC15
1.5.CÁC YÊU CẦU CHUẨN HÓA19
CHƯƠNG 2.MÔ HÌNH THAM CHIẾU WORKFLOW . 21
2.1.TỔNG QUAN VỀ MÔ HÌNH THAM CHIẾU21
2.1.1.Tổng quan về mô hình tham chiếu. 21
2.1.2.Mô hình tham chiếu Workflow21
2.2.DỊCH VỤ WORKFLOW ENACTMENT22
2.2.1.Dịch vụ Workflow Enactment là gì ?. 22
2.2.2.Workflow Engine. 24
2.2.3.Dịch vụ Enactment thuần nhất và không thuần nhất25
2.2.4.Các kiểu dữ liệu Workflow27
2.2.5.Sự trao đổi dữ liệu. 29
2.3.ĐỊNH NGHĨA TIẾN TRÌNH30
2.3.1.Các công cụ định nghĩa tiến trình. 30
2.3.2.Giao diện 1 - Trao đổi định nghĩa Workflow31
2.3.3.Siêu mô hình cơ bản:. 32
2.4.CÁC CHỨC NĂNG CỦA WORKFLOW PHÍA KHÁCH35
2.4.1.Các ứng dụng workflow phía khách. 35
2.4.2.Giao diện ứng dụng workflow phía khách. 36
2.5.CÁC CHỨC NĂNG TRIỆU GỌI ỨNG DỤNG40
2.5.1.Triệu gọi ứng dụng trong hệ thống Workflow40
2.6.CHỨC NĂNG GIAO TIẾP MỞ45
2.6.1.Scenario 1–Liên kết riêng rẽ (dạng chuỗi). 45
2.6.2.Scenario 2–Liên kết theo trật tự (các tiến trình con lồng vào nhau). 46
2.6.3.Scenario 3–Liên kết thành một khối (Peer to Peer). 46
2.6.4.Scenario 4–Liên kết đồng bộ hóa song song. 47
2.6.5.Các hàm WAPI giao tiếp. 48
2.7.CÁC CHỨC NĂNG QUẢN TRỊ VÀ GIÁM SÁT51
2.7.1.Giao diện quản trị và giám sát51
CHƯƠNG 3.GIAO DIỆN ĐỊNH NGHĨA TIẾN TRÌNH53
3.1.SIÊU MÔ HÌNH53
3.1.1.Các thực thể trong siêu mô hình. 54
3.1.2.Tiến trình và gói57
3.1.3.Siêu mô hình tiến trình. 57
3.1.4.Siêu mô hình gói58
3.1.5.Giới thiệu về các thành phần trong siêu mô hình. 59
3.2.BIỂU DIỄN ĐỊNH NGHĨA WORKFLOW – ĐỊNH DẠNG XPDL62
3.2.1.Các thành phần chung. 63
3.2.2.Định nghĩa gói68
3.2.3.Khai báo ứng dụng Workflow77
3.2.4.Định nghĩa tiến trình Workflow78
3.2.5.Hành vi của tiến trình Workflow87
3.2.6.Thông tin chuyển tiếp giữa các hành vi103
3.2.7.Thành phần tham gia Worflow107
3.2.8.Dữ liệu liên quan đến Workflow110
3.2.9.Các kiểu dữ liệu. 113
CHƯƠNG 4.Giao diỆn lẬP TRình ỨNG dỤng Workflow – WAPI 123
4.1.Các kiỂu dỮ liỆu WAPI. 124
4.2.Mã lỖi trẢ vỀ cỦa các hàm WAPI. 132
4.3.WAPI cho các kẾt nỐi136
4.4.WAPI cho các điỀu khiỂn tiẾn trình137
4.5.WAPI cho các điỀu khiỂn hành vi146
4.6.WAPI truy vẤn các bẢn sao tiẾn trình150
4.7.WAPI truy vẤn các bẢn sao hành vi152
KẾT LUẬN154
TÀI LIỆU THAM KHẢO155
163 trang |
Chia sẻ: lvcdongnoi | Lượt xem: 2423 | Lượt tải: 0
Bạn đang xem trước 20 trang tài liệu Khóa luận Nghiên cứu và thử nghiệm hệ thống workflow, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
i trừ hành vi định tuyến.
Limit
Thời hạn hiệu lưc mong đợi cho mục đích quản lý thời gian trong các đơn vị của DurationUnit.
Name
Tên của hành vi.
Performer
Kết nối đến các thành phần tham gia thực thể Workflow. Có thể là một biểu thức.
Priority
Một giá trị dùng để mô tả ưu tiên ban đầu của hành vi khi nó bắt đầu thực hiên. Có thể thuộc tính này không được định nghĩa nhưng một mức ưu tiên phải được định nghĩa trong định nghĩa tiến trình và sau đó sẽ được sử dụng.
Route
Là một hành vi định tuyến( hành vi ảo).
Simulation Information
Những đánh giá cho sự mô phỏng của một hành vi.
Start Mode
Mô tả việc thực hiện một hành vi được bắt đầu như thế nào.
Transition Restrictions
Cung cấp các giới hạn xa hơn và mô tả ngữ nghĩa liên quan đến ngữ cảnh của việc chuyển trạng thái.
Bảng 316 Hành vi của tiến trình Workflow – Các thuộc tính
Hành vi định tuyến
Hành vi định tuyến là một hành vi “ảo” (dummy) cho phép hoặc cấm biểu thức của các điều kiện chuyển tiếp xếp tầng (ví dụ : IF Điều kiên-1 THEN TO Hành vi-1 ELSE IF Điều kiện-2 THEN TO Hành vi-2 ELSE Hành vi-3 ENDIF). Một vài nhà cung cấp có thể cài đặt các điều kiện chuyển tiếp xếp tầng một cách trực tiếp mà không cần một bản sao hành vi cho việc định tuyến, một vài nhà cung cấp khác thì lại yêu cầu. Tuy nhiên tại bất cứ đâu các nhà cung cấp và các nhà thiết kế tiến trình đều mong muốn cấu trúc các điều kiện xếp tầng như một XOR Split từ hành vi đầu ra. Chắc chắn rằng việc phối hợp chuyển tiếp không thể được biểu diễn trong một danh sách các chuyển tiếp đơn từ hành vi đầu ra, hoặc danh sách đầu vào đơn đến một hành vi. Trong trường hợp này phải yêu cầu sử dụng một hoặc nhiều hành vi ảo( hành vi định tuyến).Ví dụ :
Sự phối hợp của các điều kiện phân tách XOR và AND trên các chuyển tiếp đầu ra từ một hành vi.
Sự phối hợp của các điều kiện gia nhập XOR và AND trên các chuyển tiếp đầu vào đến một hành vi.
Một hành vi định tuyến sẽ không có người thực hiện và không có các ứng dụng cho nó. Hành vi định tuyến không ảnh hưởng đến dữ liệu liên quan đến Workflow hoặc dữ liệu ứng dụng.
Hành vi kiểu khối
Một khối hành vi thi hành một tập hành vi hoặc ánh xạ các chuyển tiếp/hành vi của bản thân nó. Hành vi kiểu khối sẽ thực hiện từ một hành vi đầu tiên trong tập và cứ tiếp diễn đến hành vi cuối cùng (Hành vi mà không có chuyển tiếp đầu ra). Sự thực thi đó sẽ trả về các chuyển tiếp đầu ra theo sau hành vi khối đó.
Thuộc tính điều khiển thực thi
Có nhiều thuộc tính của một hành vi cho phép định nghĩa các đặc trưng của các hànhh vi khác nhau trong việc điều khiển sự thực thi của các hành vi .
Chế độ (mode) định nghĩa mức độ tự động khi bắt đầu hoặc kết thúc hành vi. Có hai kiểu chế độ :
Chế độ tự động: Được điều khiển hoàn toàn bởi các Workflow engine.
Chế độ thủ công:Yêu cầu người sử dụng phải tương tác để cho hành vi bắt đầu hoặc kết thúc. Trong những hệ thống như thế này hành vi bắt đầu và/hoặc hoàn thành là kết quả của những hành động của người sử dụng.
Thuộc tính
Mô tả
Start Mode
Mô tả cách thi hành của một hành vi được bắt đầu.
Automatic
Hành vi được bắt đầu ngay lập tức bởi hệ thống. Mặc định.
Manual
Hành vi được bắt đầu bởi người sử dụng cuối.
Finish Mode
Mô tả hệ thống thực hiện việc kết thúc hành vi như thế nào.
Automatic
Tự động trả về khi ứng dụng triệu gọi kết thúc điều khiển. Mặc định.
Manual
Hành vi được kết thúc bởi người sử dụng cuối.
Bảng 317 Thuộc tính điều khiển thi hành – Các thuộc tính
Các lựa chọn cài đặt
Một hành vi có thể được cài đặt theo một trong các cách được mô tả ở dưới :
Thuộc tính
Mô tả
No implementation
Được thực thi bởi các thủ tục thủ công (Không được hỗ trợ bởi Workflow engine).
Tool
Được thực thi bởi các công cụ ứng dụng.
Subflow
Được thực thi bởi tiến trình khác.
Bảng 318 Các lựa chọn cài đặt - Các thuộc tính
Không Cài đặt
Không cài đặt nghĩa là việc thi hành của hành vi không được trợ giúp bởi Workflow engine:
Công cụ
Hành vi được thực thi bởi một hay nhiều công cụ. Một công cụ có thể là một chương trình ứng dụng, ứng dụng đó có thể được triệu gọi thông qua giao diện ứng dụng khách(giao diện 2).
Thuộc tính
Mô tả
Actual Parameters
Danh sách các tham số được truyền
Description
Phần mô tả.
Extended Attributes
Phần mở rộng do nhà cung cấp thêm vào.
Id
Định danh để xác định ứng dụng
Type
APPLICATION Một công cụ ứng dụng
PROCEDURE Một thủ tục
Bảng 319 Công cụ - Các thuộc tính
Luồng con
Hành vi có thể là luồng con. Các luồng con có thể được thi hành đồng bộ hoặc không đồng bộ. Những luồng con được sử dụng được kế thừa từ những gói bao phủ.
Thuộc tính
Mô tả
Actual Parameters
Danh sách các tham số được truyền.
Execution
KHÔNG ĐỒNG BỘ Thi hành không đồng bộ
ĐỒNG BỘ Thi hành đồng bộ
Id
Sử dụng để nhận dạng tiến trình Workflow được triệu gọi
Bảng 320 Luồng con—Các thuộc tính
Deadline
Thuộc tính
Mô tả
Execution
Định nghĩa phản ứng của hệ thống khi xuất hiện deadline.
ASYNCHR: Deadline được tạo ra không đồng bộ. Đó là một thao tác AND SPLIT ẩn, khi đó hành vi tiếp tục và luồng khác được bắt đầu theo chuyển tiếp ngoại lệ đã được gán tên. Các Deadline khác có thể xảy ra với cùng một hành vi, bởi vì hành vi tiếp tục được chạy.
SYNCHR : Hành vi được hoàn thành không bình thường và luồng tiếp tục chạy trên tên chuyển tiếp ngoại lệ.
DeadlineCondition
Biểu thức chỉ ra thời gian deadline xảy ra. Biểu thức này được cài đặt phụ thuộc vào các yếu tố:
Thời gian liên quan tới sự bắt đầu của hành vi.
Thời gian cố định.
Thời gian tính toán sử dụng dữ liệu liên quan Worklow
ExceptionName
Tên của ngoại lệ dẫn tới deadline
Bảng 321 Deadline – Các thuộc tính
Một ví dụ về deadline bên dưới. Trong ví dụ này, một “ngoại lệ thông báo” không đồng bộ sẽ được đưa ra sau 3 ngày. Hành vi sẽ được tiếp tục bình thường vào lúc này. Nếu hành vi vẫn được thực thi thì sau 5 ngày hành vi sẽ kết thúc và một “Ngoại lệ thời gian kết thúc” sẽ được đưa ra.
Ví dụ về deadline:
3 days
notifyException
5 days
timeoutException
Thông tin mô phỏng
Thuộc tính
Mô tả
Cost
Giá thành trung bình
Duration
Khoảng thời gian lý tưởng để thực hiện một tác vụ trong các đơn vị của DurationUnit.
Instantiation
Định nghĩa khả năng của một hành vi được kích hoạt: Một hoặc nhiều lần
ONCE
Hành vi có thể chỉ được tạo ra một lần (mặc định)
MULTIPLE
Hành vi có thể được tạo ra nhiều lần.
Time Estimation
Khoảng thời gian mong đợi (thời gian tổng cộng của working time, waiting time, và duration) trong các đơn vị của DurationUnit.
Waiting Time
Thời gian đợi trung bình trong các đơn vị của DurationUnit.
Working Time
Thời gian làm việc trung bình trong các đơn vị của DurationUnit.
Bảng 322 Thông tin mô phỏng – Các thuộc tính
Các giới hạn chuyển tiếp
Thuộc tính
Mô tả
Join
Chỉ ra rằng các chuyển tiếp đầu vào của hành vi là JOIN-ed
Split
Chỉ ra rằng các chuyển tiếp đầu ra của hành vi là SPLIT-ed
Bảng 323 Giới hạn chuyển tiếp – Các thuộc tính
Join
Một join mô tả các ngữ nghĩa của hành vi với nhiều chuyển tiếp đầu vào .
Thuộc tính
Mô tả
Type
AND
Kết nối các luồng đồng thời trong bản sao tiến trình với các chuyển tiếp đầu vào để đến hành vi đó. Ở đây phải có sự đồng bộ. Số lượng của các luồng được đồng bộ có thể phụ thuộc vào kết quả các điều kiện của các phép AND split trước đó.
XOR
Kết nối một trong các luồng được lựa chon, không cần phải có sự đồng bộ.
Bảng 324 Join – các thuộc tính
Split
Một split mô tả các ngữ nghĩa nơi có nhiều phép chuyển đầu ra cho một hành vi tồn tại.
Thuộc tính
Mô tả
Transition Refs
Một danh sách các chuyển tiếp đầu ra từ hành vi đó. Mỗi chuyển tiếp được xác định bởi định danh của chúng.
Type
AND
Các chuyển tiếp đầu ra là đồng thời.
XOR
Các chuyển tiếp đầu ra là không phải đồng thời.
Bảng 325 Split – Các thuộc tính
Thông tin chuyển tiếp giữa các hành vi
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.
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 326 Thông tin chuyển tiếp – các thuộc tính
Điều kiện
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.
DEFAULTEXCEPTION
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 327 Đ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.
Balance > 1000
ATMDownException
Thành phần tham gia Worflow
Thành phần tham gia có các kiểu sau: tập tài nguyên (resource set), tài nguyên (resource), đơn vị tổ chức (organization unit), vai (role), con người và hệ thống. Một vai và một tài nguyên được sử dụng theo nghĩa là các tác nhân trừu tượng. Điều này đưa ra một mức trừu tượng giữa người thực hiện và hành vi phải được thực hiện. Tại thời điểm thực thi những định nghĩa trừu tượng trên sẽ được đánh giá và gán cho những con người/ máy móc cụ thể.
Phạm vi của một thực thể thành phần tham gia Workflow khi khai báo ở mức gói là toàn cục, tức là có thể được truy cập bởi bất kỳ định nghĩa tiến trình nào trong gói đó.
Thuộc tính
Mô tả
Description
Mô tả sơ lược của thành phần tham gia.
ExternalReference
Tham chiếu đến một đặc tả bên ngoài của một thành phần tham gia.
Extended Attributes
Phần mở rộng do nhà cung cấp thêm vào.
Id
Được sử dụng làm định danh cho một thành phần tham gia
Name
Tên được sử dụng để chỉ ra thành phần tham gia..
Participant Type
Định nghĩa kiểu của thành phần tham gia
Bảng 328 Thành phần tham gia—Các thuộc tính
Các kiểu của thành phần tham gia
Thuộc tính kiểu của thành phần tham gia mô tả thành phần tham gia là một đơn vị tổ chức, một đơn vị riêng lẻ hay một tài nguyên máy móc.
Thuộc tính
Mô tả
Type
RESOURCE_SET
Một tập hợp các tài nguyên
RESOURCE
Một tác nhân tài nguyên cụ thể
ROLE
Đây là một kiểu trừu tượng có thể có nhiều cách để xác định các Role
ORGANIZATIONAL_UNIT
Một đơn vi phòng ban hoặc bất kỳ một đơn vị nào trong mô hinhg tổ chức
HUMAN
Một con người tương tác với hệ thống theo một ứng dụng
SYSTEM
Một tác nhân tự động
Bảng 329 Kiểu thành phần tham gia—Các thuộc tính
Dữ liệu liên quan đến Workflow
Dữ liệu liên quan Workflow diễn tả các sự thay đổi của một định nghĩa tiến trình Workflow hoặc một định nghĩa gói. Chúng được sử dụng để đặc trưng cho dữ liệu quyết định (sử dụng trong các điều kiện) hoặc tham chiếu đến các giá trị dữ liệu (các tham số), là dữ liệu được chuyển qua giữa các hành vi hoặc các tiến trình con. Điều này có thể là khác so với dữ liệu ứng dụng Workflow, là dữ liệu được quản lý hoặc được truy cập toàn bộ bởi các ứng dụng được triệu gọi và không được truy nhập tới hệ thống quản lý Workflow. Danh sách dữ liệu liên quan Workflow định nghĩa tất cả các đối tượng dữ liệu được yêu cầu bởi tiến trình Workflow. Thuộc tính DataType chỉ rõ tất cả các thông tin cần thiết cho một hệ thống quản lý Workflow để định nghĩa một đối tượng dữ liệu phù hợp cho việc lưu trữ dữ liệu, là quá trình được xử lý bởi một bản sao kích hoạt của tiến trình Workflow.
Dữ liệu liên quan Workflow có thể được định nghĩa trong một tiến trình Workflow và trong một gói. Tuy nhiên phạm vi của hai cách định nghĩa này là khác nhau.
Thuộc tính
Mô tả
Data Type
Kiểu dữ liệu của biến xử lý.
Description
Mô tả ngắn ngọn dữ liệu được dịnh nghĩa.
Extended Attributes
Phần mở rộng do nhà cung cấp thêm vào.
Id
Được sử dụng để xác định dữ liệu liên quan Workflow.
Initial Value
Giá trị dữ liệu được gán trước thời điểm thực thi.
Is Array
Chỉ ra dữ liệu có kiểu là mảng.
Length
Chiều dài của dữ liệu.
Name
Tên của dữ liệu liên quan đến Workflow.
Bảng 330 Dữ liệu liên quan đến Workflow—Các thuộc tính
Các kiểu dữ liệu
Các kiểu dữ liệu bao gồm một tập các kiểu chuẩn có thể được sử dụng như là một phần của đặc tả dữ liệu liên quan Workflow, các tham số hình thức, và các tiến trình Workflow. Ta có thể khai báo một kiểu dữ liệu mới trong một TypeDeclaration và sử dụng nó ở bất cứ đâu mà các kiểu dữ liệu chuẩn được sử dụng. Một kiểu dữ liệu có thể được chọn từ một tập hơp các kiểu được chỉ ra ở phía dưới:
Thuộc tính
Mô tả
Array Type
Một mảng các phần tử có kiểu giống nhau.
Basic Type
Có thể là một trong các kiểu: STRING, INTEGER, FLOAT, DATETIME, REFERENCE, BOOLEAN, or PERFORMER.
Declared Type
Tham chiếu đến một kiểu dữ liệu được khai báo trong một thành phần TypeDeclaration.
Enumeration Type
Một tập hợp các giá trị phù hợp của các biến hoặc các tham số.
ExternalReference
Tham chiếu đến một kiểu dữ liệu được định nghĩa ở một tài liệu bên ngoài.
List Type
Một danh sách vô hạn các dữ liệu có cùng kiểu giống nhau
Record Type
Một tập hợp các phần tử có kiểu khác nhau.
SchemaType
Một kiểu dữ liệu được định nghĩa bằng cách sử dụng một lược đồ XML.
Union Type
Một tập hợp các phần tử trong đó chỉ có một phần tử được sử dụng cho mỗi bản sao của dữ liệu đó
Bảng 331 Các kiểu dữ liệu chuẩn
Các kiểu dữ liệu cơ bản
Thuộc tính
Mô tả
Type
STRING
Kiểu chuỗi
FLOAT
Kiểu số thực
INTEGER
Kiểu số nguyên
REFERENCE
Tham chiếu tới một kiểu dữ liệu bên ngoài, tuy nhiên bây giờ không sử dụng kiểu này nữa .Thành phần ExternalReference là cách tốt nhất để tham chiếu đến một kiểu dữ liệu bên ngoài.
DATETIME
Kiểu thời gian.
BOOLEAN
Kiểu Boolean.
PERFORMER
Là một bản sao dữ liệu của một kiểu người thực hiện có giá trị là một thành phần tham gia Workflow đã được khai báo
Bảng 332 Các kiểu dữ liệu – Các thuộc tính
Các kiểu dữ liệu phức tạp
XPDL cho phép định nghĩa các kiểu dữ liệu phức tạp như là kiểu mảng, kiểu bản nghi, kiểu hợp, kiểu liệt kê, và kiểu danh sách. Các kiểu dữ liệu được định nghĩa bằng cách sử dụng SchemaType.
Kiểu lược đồ (Schema Type)
SchemaType cho phép định nghĩa một kiểu dữ liệu sử dụng cú pháp của lược đồ XML. Nó cũng có thể được sử dụng để đinh nghĩa một chuỗi XML để thích ứng với lược đồ đó:
Ví dụ dưới đây có thể mô tả môt lớp C++, Java, một cấu trúc C, hoặc một chuỗi XML.
Kiểu bản nghi (Record Type)
Thuộc tính
Mô tả
Member
Một trường trong bản nghi.
DataTypes
Kiểu dữ liệu của một thành phần.
Bảng 333 Kiểu bản ghi – Các thuộc tính
Kiểu hợp (Union Type)
Thuộc tính
Mô tả
Member
Một thành phần trong kiểu hợp.
DataTypes
Kiểu dữ liệu của một thành phần.
Bảng 334 Kiểu hợp- thuộc tính
Kiểu liệt kê (Enumeration Type)
Thuộc tính
Mô tả
Enumeration Value
Một phần tử biểu diễn một trong các giá trị trong một bảng liệt kê.
Bảng 335 Kiểu liệt kê – Các thuộc tính
Kiểu mảng (Array Type)
Thuộc tính
Mô tả
DataTypes
Kiểu dữ liệu của các khoản mục
Lower Index
Phạm vi dưới của kiểu mảng
Upper Index
Phạm vi trên của kiểu mảng
Bảng 336 Kiểu mảng – Các thuộc tính
Kiểu danh sách (List Type)
Thuộc tính
Mô tả
DataTypes
Dữ liệu của danh sách các thực thể.
Bảng 337 Kiểu mảng – Các thuộc tính
Các kiểu dữ liệu được khai báo
Là những kiểu có khả năng sử dụng lại một định nghĩa dữ liệu phúc tạp tại bất cứ đâu mà ta có thể sử dụng một kiểu xpdl chuẩn. Định nghĩa kiểu dữ liệu dưới một thành phần TypeDeclaration và sau đó tham chiếu tới nó bằng cách sử dụng kiểu dữ liệu DeclaredType
Khai báo kiểu (Type Declaration)
Thuộc tính
Mô tả
DataTypes
Kiểu dữ liệu.
Description
Mô tả cho kiểu dữ liệu khai báo.
ExtendedAttributes
Thuộc tính mở rộng do nhà cung cấp thêm vào.
Id
Định danh cho TypeDeclaration.
Name
Tên của TypeDeclaration.
Bảng 338 Khai báo kiểu – Các thuộc tính
Kiểu được khai báo (Declared Type)
Thuộc tính
Mô tả
Id
Tham chiếu tới kiểu dữ liệu được khai báo trong TypeDeclaration.
Bảng 339 Kiểu dữ liệu được khai báo – Các thuộc tính
Giao diện lập trình ứng dụng Workflow - WAPI
WAPI có thể được xem như một tập hợp các lời gọi API và các chức năng trao đổi được hỗ trợ bởi dịch vụ Workflow enactment ở ranh giới để tương tác với các nguồn tài nguyên hay ứng dụng khác. Mặc dù kiến trúc này tham chiếu đến 5 giao diện bên trong WAPI nhưng một số các chức năng bên trong mỗi giao diện này là chung (ví dụ lời gọi trạng thái tiến trình có thể xuất phát từ giao diện ứng dụng khách hoặc từ giao diện quản trị). Vì vậy WAPI thực sự được xem như phần cốt lõi chung của các định dạng trao đổi hoặc của các lời gọi API với những mở rộng xác định khi cần thiết bảo đảm tính riêng biệt cho từng miền chức năng trong năm miền kể trên.
Hầu hết các chức năng của WAPI bao gồm các lời gọi API với một tập tham số được xác định trước hoặc các mã kết quả.
Như đã giới thiệu, một hệ thống quản trị Workflow luôn giả sử rằng tối thiểu có một môi trường IT được tích hợp vào hệ thống, hay đúng hơn là một môi trường cho phép Workflow hoạt động, đó là giao diện ứng dụng khách Workflow. Ngoài ý nghĩa đó, giao diện này còn cung cấp một số cấp độ bảo vệ cho các hệ thống phần mềm đã thực sự cài đặt, bởi nó cho phép sự phân cách giữa hệ thống engine và các ứng dụng phía khách.
Ngày nay, có rất nhiều các công cụ quản trị Workflow hỗ trợ cơ chế đặc biệt để tích hợp các ứng dụng và trao đổi thông tin. Hiện tại, hầu hết các cơ chế hỗ trợ này đều cài đặt theo các yêu cầu riêng của khách hàng. Do đó, khi các công ty tích hợp hệ thống hay các nhà cung cấp thứ 3 cần sử dụng các công cụ quản trị Workflow khác nhau cùng lúc, họ lại phải cài đặt lại các cơ chế này. Do đó, các nhà cung cấp rất quan tâm tới việc hỗ trợ một giao diện tổng quan, bởi nó sẽ hỗ trợ hiệu quả công việc hằng ngày của họ. Giao diện này có thể đơn giản là các ứng dụng thông dụng cho phép Workflow. Nhưng thực tế, các môi trường Workflow thông thường bao gồm một loạt các ứng dụng Workflow đặc biệt khác nhau và chúng chạy trên các môi trường không đồng nhất với nhau.
Hệ thống quản trị Workflow chính là một nền tích hợp theo yêu cầu của thị trường và các yêu cầu về một giao diện ứng dụng tổng quan và chuẩn.
Bởi các yêu cầu về việc chuẩn hóa giao diện ứng dụng khách và giao diện lập trình, triệu gọi ứng dụng, các hàm WAPI- Workflow Application Programming Interface đã được xây dựng. Dựa vào các API này, các ứng dụng có thể giao tiếp với dịch vụ Workflow enactment một cách dễ dàng hơn.
Phần này sẽ đưa ra các định nghĩa và các kiểu dữ liệu WAPI theo chuẩn đã thống nhất.
Các kiểu dữ liệu WAPI
Các kiểu dữ liệu WAPI được sử dụng trong việc gọi các hàm WAPI trong các đối số input và output.
Các kiểu dữ liệu WAPI cơ bản
Các kiểu dữ liệu WAPI cơ bản chứa định nghĩa các kiểu dữ liệu quản lý Workflow cơ bản, đó là các kiểu của hệ điều hành hoặc độc lập với nền.
typedef char WMTInt8;typedef short WMTInt16;typedef long WMTInt32;typedef unsigned char WMTUInt8;typedef unsigned short WMTUInt16;typedef unsigned long WMTUInt32;typedef WMTInt8 WMTText;typedef WMTText *WMTPText;typedef WMTInt8 *WMTPInt8;typedef WMTInt16 *WMTPInt16;typedef WMTInt32 *WMTPInt32;typedef WMTInt8 WMTBoolean;typedef WMTUInt8 *WMTPointer;typedef WMTText *WMTPPrivate;#define WMNULL ((WMTPointer)0)#define WMFalse 0#define WMTrue (!WMFalse)
Các kiểu dữ liệu WAPI khác
Đây là định nghĩa các kiểu dữ liệu quản lý Workflow là các cấu trúc hoặc các đối tượng.
Kiểu dữ liệu String : Khi được khởi tạo sẽ được gán là 0. Độ dài xâu tối đa đối với tên, từ khóa và các từ nhận dạng bao gồm 63 ký tự và được chứa trong một mảng text 64 byte. Marco định nghĩa kích thước cho String như sau :
#define NAME_STRING_SIZE 64
Tất cả các xâu đều được định nghĩa dạng mảng text. Ví dụ :
WMTText user_identification [NAME_STRING_SIZE]
Theo trên, thì một xâu có thể chứa tối đa 63 ký tự thực sự.
Tất cả các hàm gọi WAPI có chung một kiểu dữ liệu lỗi trả về cùng dạng nhau là :
typedef struct {
WMTInt16 main_code;WMTInt16 sub_code;
} WMTErrRetType;
Kiểu dữ liệu này được chia sẻ giữa tất cả các lời gọi API. Tất cả các kiểu dữ liệu khác được biểu diễn cùng với các miêu tả WAPI đối với các lời gọi riêng khác.
Kiểu dữ liệu trả về lỗi là một từ Int32, trong đó gồm 2 thành phần Int16 cho các lỗi trả về. Thành phần main_code chứa mã lỗi trả về chính, còn thành phần sub_code chứa mã để miêu tả thêm cho bản chất của lỗi. Ví dụ thành phần mã lỗi main_code WM_INVALID_PROCESS_INSTANCE (xem ở danh sách các mã lỗi trả về ở sau), sẽ bao gồm trong sub_code của nó các miêu tả nhiều hơn và chi tiết hơn lý do tại sao thực thể tiến trình là không hợp lệ.
Kiểu cấu trúc thông tin kết nối :
typedef struct {
WMTText user_identification[NAME_STRING_SIZE];
// Nhận dạng của thành phần tham gia Workflow dựa trên bản thân ứng dụng Workflow sẽ được thao tác. Giá trị miêu tả ở đây có thể dưới dạng một người, một thiết bị vv.. Nhận dạng này thường được sử dụng cho việc kiểm tra tính bảo mật, tài khoản, vv..
WMTText password[NAME_STRING_SIZE];WMTText engine_name[NAME_STRING_SIZE];
// Nhận dạng của Engine WFM để từ đó các lời gọi hàm API thực hiện một cách trực tiếp. Thông tin này không cần bắt buộc yêu cầu với một số sản phẩm WFM thông thường. Tuy nhiên, nó được yêu cầu cho các ứng dụng Workflow cần tương tác với nhiều Engine WFM. Đây có thể là một tên biểu trưng để giải quyết việc uyển chuyển trong lời gọi.
WMTText scope[NAME_STRING_SIZE];
// Nhận dạng phạm vi cho ứng dụng. Nếu phạm vi của nó không thích hợp, vùng này sẽ được để trống và không được chấp nhận.
}WMTConnectInfo;
typedef WMTConnectInfo *WMTPConnectInfo;
Kiểu cấu trúc điều khiển phiên làm việc:
typedef struct {
WMTUInt32 session_id; // ID nhận dạng phiên làm việc. Đơn nhất.WMTPPrivate pprivate; // Trỏ tới một cấu trúc riêng chứa các thông tin miêu tả nhà cung cấp.
}WMTSessionHandle;
typedef WMTSessionHandle *WMTPSessionHandle;
Kiểu cấu trúc lọc:
typedef struct {
WMTInt32 filter_type; // Bao gồm các kiểu cơ bản và kiểu String SQLWMTInt32 filter_length; // Độ dài (bằng byte) của giá trị.WMTText attribute_name [NAME_STRING_SIZE]WMTUInt32 comparison; // Là một trong: , =, !=, <=, <=WMTPText filter_string;
}WMTFilter;
typedef WMTFilter *WMTPFilter;
// Trong phần miêu tả này sẽ có hai kiểu bộ lọc. Một kiểu được sử dụng cho việc so sánh với (và giữa các thuộc tính giá trị). Trong trường hợp này, thành phần string_filter bao gồm thuộc tính giá trị là giá trị sẽ được đem ra so sánh. Kiểu thứ hai là một cơ chế tổng quan hơn trong đó thành phần filter_string trình bày toàn bộ đối số (thông thường là một đối số SQL). Nếu thành phần filter_type là một xâu SQL, thì thành phần filter_string sẽ trỏ tới một mệnh đề với ngữ cảnh của mệnh đề WHERE trong chuẩn 92 của đặc tả ngôn ngữ SQL.
Kiểu cấu trúc điều khiển hàng đợi:
typedef struct{
WMTUInt32 query_handle;
}WMTQueryHandle;
typedef WMTQueryHandle *WMTPQueryHandle;
Kiểu cấu trúc thành phần tham gia Workflow:
typedef struct {
WMTText wf_participant[NAME_STRING_SIZE];
}WMTWflParticipant;
typedef WMTWflParticipant *WMTPWflParticipant;
Kiểu cấu trúc nhận dạng định nghĩa tiến trình:
typedef struct{
WMTText proc_def_id[UNIQUE_ID_SIZE];
}WMTProcDefID;
typedef WMTProcDefID *WMTPProcDefID;
Kiểu cấu trúc nhận dạng hành vi:
typedef struct{
WMTText activity_id[NAME_STRING_SIZE];
}WMTActivityID;
typedef WMTActivityID *WMTPActivityID;
Kiểu cấu trúc trạng thái của định nghĩa tiến trình:
typedef struct{
WMTText proc_def_state[NAME_STRING_SIZE];
} WMTProcDefState;
typedef WMTProcDefState *WMTPProcDefState;
// Trỏ tới một xâu 63 byte
Kiểu cấu trúc định nghĩa tiến trình:
typedef struct{
// Đây là danh sách tối thiểu của các thành phần vào thời điểm hiện tại. Trong các phiên bản WAPI tiếp theo sẽ cung cấp thêm các mở rộng.
WMTText process_name[NAME_STRING_SIZE];
WMTProcDefID proc_def_id;
WMTProcDefState state;
} WMTProcDef;
typedef WMTProcDef *WMTPProcDef;
Kiểu nhận dạng thực thể tiến trình:
typedef struct{
WMTText proc_inst_id[UNIQUE_ID_SIZE];
}WMTProcInstID;
typedef WMTProcInstID *WMTPProcInstID;
Kiểu cấu trúc trạng thái thực thể tiến trình:
typedef struct{
WMTText proc_inst_state[NAME_STRING_SIZE];
} WMTProcInstState;
typedef WMTProcInstState *WMTPProcInstState;
// trỏ tới một xâu 63 byte
typedef struct{
// Đây là danh sách tối thiểu của càng thành phần vào hiện tại. Các phiên bản tương lai sẽ mở rộng thêm cấu trúc này.
WMTText process_name[NAME_STRING_SIZE];
WMTProcInstID proc_inst_id;
WMTProcDefID proc_def_id;
WMTProcInstState state;
WMTInt32 priority;
WMTWflParticipant proc_participants[20];
//Tăng lên tới 20 63 ký tự cho nhận dạng thành phần tham gia
} WMTProcInst;
typedef WMTProcInst *WMTPProcInst;
Kiểu cấu trúc nhận dạng thực thể hành vi:
typedef struct {
WMTText activity_inst_id[UNIQUE_ID_SIZE];
}WMTActivityInstID;
typedef WMTActivityInstID *WMTPActivityInstID;
Kiểu cấu trúc trạng thái thực thể hành vi:
typedef struct{
WMTText activity_inst_state[NAME_STRING_SIZE];
} WMTActivityInstState;
typedef WMTActivityInstState *WMTPActivityInstState;
Kiểu cấu trúc thực thể hành vi:
typedef struct{
// Đây là danh sách tối thiểu của càng thành phần vào hiện tại. Các phiên bản tương lai sẽ mở rộng thêm cấu trúc này.
WMTText activity_name[NAME_STRING_SIZE];
WMTActivityInstID activity_inst_id;
WMTProcInstID proc_inst_id;
WMTActivityInstState state;
WMTInt32 priority;
WMTWflParticipant activity_participants[10];
//Tăng lên tới 20 63 ký tự cho nhận dạng thành phần tham gia
} WMTActivityInst;
typedef WMTActivityInst *WMTPActivityInst;
Kiểu cấu trúc nhận dạng nhãn công việc:
typedef struct{
WMTText work_item_id[UNIQUE_ID_SIZE];
}WMTWorkItemID;
typedef WMTWorkItemID *WMTPWorkItemID;
Kiểu cấu trúc nhãn công việc:
typedef struct{
// Đây là danh sách tối thiểu của càng thành phần vào hiện tại. Các phiên bản tương lai sẽ mở rộng thêm cấu trúc này.
WMTText workitem_name[NAME_STRING_SIZE];
WMTWorkItemID workitem_id;
WMTActivityInstID activity_inst_id;
WMTProcInstID proc_inst_id;
WMTInt32 priority;
WMTWflParticipant participant;
} WMTWorkItem;
typedef WMTWorkItem *WMTPWorkItem;
Kiểu cấu trúc thuộc tính:
typedef struct{
WMTText attribute_name[NAME_STRING_SIZE];
WMTInt32 attribute_type; // Kiểu thuộc tính
WMTInt32 attribute_length; // Độ dài của giá trị thuộc tính
WMTPText pattribute_value; // Con trỏ tới giá trị thuộc tính
} WMTAttribute;
typedef WMTAttribute *WMTPAttribute;
Kiểu cấu trúc danh sách thuộc tính:
typedef struct{
WMTInt32 attribute_number;
WMTPAttribute pattribute;
WMTNextAttr *WMTAttributeList
} WMTAttributeList;
typedef WMTAttributeList *WMTPAttributeList;
Các thuộc tính
Các thuộc tính quản lý API là một tập gồm 4 thành phần :
WMTText attribute_name[NAME_STRING_SIZE];
WMTInt32 attribute_type; // Kiểu của thuộc tính
WMTInt32 attribute_length; // Độ dài của giá trị thuộc tính
WMTPText pattribute_value; // Con trỏ tới giá trị thuộc tính
Tất cả các lời gọi API đều gắn với các thuộc tính, đưa ra các thành phần riêng như là các đối số riêng cho các lời gọi.
Các kiểu định nghĩa sau đây được sử dụng cho các thuộc tính tên:
typedef WMTText WMTAttrName[NAME_STRING_SIZE];
typedef WMTAttrName *WMTPAttrName;
Các thuộc tính này thuộc về các kiểu được gọi là dữ liệu điều khiển tiến trình và dữ liệu liên quan tiến trình. Một số các thuộc tính của thực thể tiến trình, thực thể hành vi và nhãn công việc có thể là: Độ ưu tiên, trạng thái, thời gian bắt đầu, miêu tả, tên thực thể, thành phần tham gia Workflow.
Mã lỗi trả về của các hàm WAPI
Phần này miêu tả tập tối thiểu các mã lỗi trả về của WAPI. Các mã lỗi tương ứng với thành phần main_code trong kiểu dữ liệu lỗi trả về WMTErrRetType đã được định nghĩa ở phần trước.
Tập tối thiểu của các mã lỗi trả về của main_code là:
WM_SUCCESS
Chỉ ra rằng lời gọi API hoàn thành thành công
WM_CONNECT_FAILED
Chỉ ra rằng lời gọi hàm WMConnect bị lỗi
WM_INVALID_PROCESS_DEFINITION
Chỉ ra rằng ID định nghĩa tiến trình đã được chuyển qua như đối số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi các dịch vụ Workflow engine.
WM_INVALID_ACTIVITY_NAME
Chỉ ra rằng tên hành vi đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine.
M_INVALID_PROCESS_INSTANCE
Chỉ ra rằng ID thực thể tiến trình đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine.
WM_INVALID_ACTIVITY_INSTANCE
Chỉ ra rằng ID thực thể hành vi đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine.
WM_INVALID_WORKITEM
Chỉ ra rằng ID nhãn công việc đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine.
WM_INVALID_ATTRIBUTE
Chỉ ra rằng thuộc tính đã được chuyển qua như một đối số tới một lời gọi API không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine.
WM_ATTRIBUTE_ASSIGNMENT_FAILED
Chỉ ra rằng Workflow engine đã không thể hoàn thành yêu cầu gán thuộc tính.
WM_INVALID_STATE
Chỉ ra rằng một trạng thái đã không hợp lệ, hoặc nó đã không được thừa nhận bởi dịch vụ Workflow engine.
WM_TRANSITION_NOT_ALLOWED
Chỉ ra rằng sự chuyển tiếp trạng thái đã yêu cầu là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine.
WM_INVALID_SESSION_HANDLE
Chỉ ra rằng ID phiên làm việc đã được chuyển qua như một đối số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine.
WM_INVALID_QUERY_HANDLE
Chỉ ra rằng ID điều khiển hàng đợi đã được chuyển qua như một đối số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine.
WM_INVALID_SOURCE_USER
Chỉ ra rằng thành phần tham gia “người sử dụng nguồn” đã được chuyển qua như một đố số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine.
WM_INVALID_TARGET_USER
Chỉ ra rằng thành phần tham gia “người sử dụng đích” đã được chuyển qua như một đố số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine.
WM_INVALID_FILTER
Chỉ ra rằng cấu trúc lọc hoặc các giá trị đã được chuyển qua như một đố số tới một lời gọi API là không hợp lệ, hoặc nó đã không được thừa nhận bởi một workfow engine.
WM_LOCKED
Phục vụ cho tình huống mà ở đó, dịch vụ Workflow engine cài đặt việc khóa- locking của các thực thể Workflow (Các định nghĩa tiến trình, các thực thể tiến trình, các hành vi, các nhãn công việc..vv..) để chỉ ra rằng thực thể đó là bị khóa vào thời điểm mà sự truy cập của nó được yêu cầu.
WM_NOT_LOCKED
Phục vụ cho tình huống mà ở đó dịch vụ Workflow engine cài đặt việc khóa của các thực thể worklfow (Các định nghĩa tiến trình, các thực thể tiến trình, các hành vi, các nhãn công việc..vv..) để chỉ ra rằng thực thể đó là bị khóa vào thời điểm mà sự truy cập của nó được yêu cầu.
WM_NO_MORE_DATA
Chỉ ra rằng một hàng đợi hàng đợi đến lượt gọi đã đạt tới giới hạn cuối của danh sách các thực thể hợp lệ sẽ được trả về. Mã lỗi trả về này được sử dụng để cài đặt hàng đợi của danh sách các thực thể Workflow, nó chỉ ra rằng tất cả các thực thể của danh sách phù hợp với sự lựa chọn ban đầu đều đã thực sự sẵn sàng để trả về.
WM_INSUFFICIENT_BUFFER_SIZE
Chỉ ra rằng kích thước bộ đệm đã được chuyển qua một lời gọi API là bị thiếu để giữ dữ liệu để được hỗ trợ trong việc nhận
WM_APPLICATION_BUSY
Chỉ ra rằng ứng dụng tương ứng hiện thời đang bận và không thể trả về một trạng thái của tiến trình công việc.
WM_INVALID_APPLICATION
Chỉ ra rằng một ứng dụng không hợp lệ đã được yêu cầu bởi giao diện gọi.
WM_INVALID_WORK_ITEM
Chỉ ra rằng một nhãn công việc không hợp lệ đã được tham chiếu bởi một giao diện gọi.
WM_APPLICATION_NOT_STARTED
Chỉ ra rằng một ứng dụng được yêu cầu đã không được khởi động thành công.
WM_APPLICATION_NOT_DEFINED
Chỉ ra rằng ứng dụng không được cài đặt hoặc cấu hình
WM_APPLICATION_NOT STOPPED
Chỉ ra rằng một ứng dụng tương ứng không được ngừng đúng cách.
WAPI cho các kết nối
pconnect_info: Con trỏ chỉ tới cấu trúc chứa thông tin được yêu cầu một kết nối
psession_handle: Con trỏ chỉ tới cấu trúc chứa thông tin được chuyển tới WFM Engine tất cả các API tiếp theo sẽ được xác định ảnh hưởng trong phạm vi giới hạn WMConnect/WMDisconnect, xác định phiên làm việc của thành phần tham gia tương tác với Engine. Các thẻ này là không xác định trong môi trường không kết nối chúng chứa id thành phần tham gia, các password xác định phiên.Sẽ có các giá trị đặc biệt để chỉ ra lỗi.
WMConnect()
WMConnect – Kết nối tới WFM Engine cho các tương tác .
WMTErrRetType WMConnect (
in WMTPConnectInfo pconnect_info,out WMTPSessionHandle psession_handle)
GIÁ TRỊ LỖI TRẢ VỀ
WM_SUCCESSWM_CONNECT_FAILED
WMDisconnect()
WMDisconnect –Ngắt kết nối tới từ WFM Engine cho các tương tác.
WMTErrRetType WMDisconnect (
in WMTPConnectInfo pconnect_info)
GIÁ TRỊ LỖI TRẢ VỀ
WM_SUCCESSWM_INVALID_SESSION_HANDLE
WAPI cho các điều khiển tiến trình
Mô tả các đối số
pconnect_info: trỏ tới một cấu trúc chứa các thông tin về ngữ cảnh cho hành vi
pquery_handle : trỏ tới một cấu trúc chứa thông tin truy vấn duy nhất
pfilter: trỏ tới một cấu trúc chứa các thông tin lọc
pprocdefID: trỏ tới ID của định nghĩa tiến trình
pprocinstID: trỏ tới ID của bản sao tiến trình
pinstName: trỏ tới tên bản sao tiến trình
pattrName: trỏ tới tên của thuộc tính
pattrType: trỏ tới kiểu của thuộc tính
pattrLength: trỏ tới độ dài của thuộc tính
pattrValue: trỏ tới vùng đệm cung cấp bởi ứng dụng khách lưu các giá trị của thuộc tính
pcount : tổng số đối tưởng trong kết quả trả về
pbuffer : trỏ tới vùng đệm được cung cấp bởi ứng dụng khách để lưu các đối tượng truy vấn
pprocdefState: trỏ tới một trạng thái của định nghĩa tiến trình
count_flag : trỏ boolean chỉ ra việc có hay không trả về tổng số đối tượng trong kết quả
buffer_size : kích thước của vùng đệm
WMOpenProcesssDefinitionsList
Xác định và mở truy vấn danh sách các định nghĩa tiến trình
WMTErrRetType WMOpenProcessDefinitionsList (
in WMTPSessionHandle psession_handlein WMTPFilter pfilterin WMTBoolean count_flagout WMTPQueryHandle pqueryout WMTPInt32 pcount)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_FILTER
WMFetchProcessDefinition
Trả về kết quả tiếp theo định nghĩa tiến trình tiếp theo trong danh sách truy vấn
WMTErrRetType WMFetchProcessDefinition (
in WMTPSessionHandle psession_handlein WMTPQueryHandle pqueryout WMTPProcDef pbuffer)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_DEFINITIONWM_INVALID_QUERY_HANDLEWM_NO_MORE_DATA
WMCloseProcesssDefinitionsList
Đóng danh sách truy vấn định nghĩa tiến trình
WMTErrRetType WMCloseProcessDefinitionsList (
in WMTPSessionHandle psession_handlein WMTPQueryHandle pquery)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLE
WMOpenProcesssDefinitionStatesList
Xác định và mở truy vấn các trạng thái định nghĩa tiến trình
WMTErrRetType WMOpenProcessDefinitionStatesList (
in WMTPSessionHandle psession_handlein WMTPProcDefID pprocdefIDin WMTPFilter pfilterin WMTBoolean count_flagout WMTPQueryHandle pqueryout WMTPInt32 pcount)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_FILTERWM_INVALID_PROCESS_DEFINITION
WMFetchProcessDefinitionState
Trả về kết quả tiếp theo của trạng thái định nghĩa tiến trình trong danh sách truy vấn
WMTErrRetType WMFetchProcessDefinitionState (
in WMTPSessionHandle psession_handlein WMTPQueryHandle pqueryout WMTPProcDefState pbuffer)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLEWM_NO_MORE_DATA
WMCloseProcesssDefinitionStatesList
Đóng danh sách truy vấn trạng thái của định nghĩa tiến trình
WMTErrRetType WMCloseProcessDefinitionStatesList (
in WMTPSessionHandle psession_handlein WMTPQueryHandle pquery)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLE
WMChangeProcesssDefinitionState
Thay đổi trạng thái của một định nghĩa tiến trình
WMTErrRetType WMChangeProcessDefinition (
in WMTPSessionHandle psession_handlein WMTPProcDefID pprocdefIDin WMTPProcInstState pprocinstState)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_DEFINITIONWM_INVALID_STATEWM_TRANSITION_NOT_ALLOWED
WMCreateProcessInstance
Tạo một bản sao tiến trình
WMTErrRetType WMCreateProcessInstance (
in WMTPSessionHandle psession_handlein WMTPProcDefID pprocdefIDin WMTPText pinstNameout WMTPProcInstID pprocinstID)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_DEFINITION
WMStartProcess
Bắt đầu một tiến trình
WMTErrRetType WMStartProcess (
in WMTPSessionHandle psession_handlein WMTPProcDefID pprocdefIDout WMTPProcInstID pprocinstID)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCEWM_INVALID_ATTRIBUTE
WMTerminateProcessInstance
Bắt đầu một tiến trình
WMTErrRetType WMTeminateProcessInstance (
in WMTPSessionHandle psession_handlein WMTPProcInstID pprocinstID)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCE
WMOpenProcesssInstanceStatesList
Xác định và mở truy vấn các trạng thái bản sao tiến trình
WMTErrRetType WMOpenProcessInstanceStatesList (
in WMTPSessionHandle psession_handlein WMTPProcInstID pprocinstIDin WMTPFilter pfilterin WMTBoolean count_flagout WMTPQueryHandle pqueryout WMTPInt32 pcount)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCE
WMFetchProcessInstanceState
Trả về kết trạng thái tiếp theo của bản sao tiến trình trong danh sách truy vấn
WMTErrRetType WMFetchProcessInstanceState (
in WMTPSessionHandle psession_handlein WMTPQueryHandle pqueryout WMTPProcInstState pbuffer)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLEWM_NO_MORE_DATA
WMCloseProcesssInstantStatesList
Đóng danh sách truy vấn trạng thái của bản sao tiến trình
WMTErrRetType WMCloseProcessInstanceStatesList (
in WMTPSessionHandle psession_handlein WMTPQueryHandle pquery)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLE
WMChangeProcesssInstanceState
Thay đổi trạng thái của một bản sao tiến trình
WMTErrRetType WMChangeProcessDefinition (
in WMTPSessionHandle psession_handlein WMTPProcInstID pprocinstIDin WMTPProcInstState pprocinstState)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_DEFINITIONWM_INVALID_STATEWM_TRANSITION_NOT_ALLOWED
WMOpenProcessInstanceAttributesList
Thay đổi trạng thái của một bản sao tiến trình
WMTErrRetType WMOpenProcessAttributesList (
in WMTPSessionHandle psession_handlein WMTPProcInstID pprocinstIDin WMTPFilter pfilterin WMTBoolean count_flagout WMTPQuery pquery_handleout WMTPInt32 pcount)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCE
WMFetchProcessInstanceAttribute
Trả về thuộc tính tiếp theo của bản sao tiến trình trong danh sách truy vấn
WMTErrRetType WMFetchProcessInstanceAttribute (
in WMTPSessionHandle psession_handlein WMTPQueryHandle pqueryout WMTPAttrName pattrNameout WMTPInt32 pattrTypeout WMTPInt32 pattrLengthout WMTPText pattrValuein WMTInt32 buffer_size)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLEWM_NO_MORE_DATA
WMCloseProcessInstanceAttributesList
Đóng danh sách truy vấn các thuộc tính của bản sao tiến trình
WMTErrRetType WMCloseProcessInstanceAttributesList (
in WMTPSessionHandle psession_handlein WMTPQueryHandle pquery)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLE
WMGetProcessInstanceAttributeValue
Trả về giá trị, kiểu, độ dài của thuộc tính bản sao tiến trình
WMTErrRetType WMFetchProcessInstanceAttribute (
in WMTPSessionHandle psession_handle,in WMTPProcInstID pprocinstID,in WMTPAttrName pattrName,out WMTPInt32 pattrType,out WMTPInt32 pattrLength,out WMTPText pattrValue,in WMTInt32 buffer_size)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_ATTRIBUTEWM_INSUFFICIENT_BUFFER_SIZE
WMAssignProcessInstanceAttribute
Gán một thuộc tính cho bản sao tiến trình
WMTErrRetType WMAssignProcessInstanceAttribute (
in WMTPSessionHandle psession_handle,in WMTPProcInstID pprocinstID,in WMTPAttrName pattrName,in WMTInt32 attrType,in WMTInt32 attrLength,in WMTPText pattrValue)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCEWM_INVALID_ATTRIBUTEWM_ATTRIBUTE_ASSIGNMENT_FAILED
WAPI cho các điều khiển hành vi
WMOpenActivityInstanceStatesList
Xác định và mở truy vấn tới các trạng thái của bản sao hành vi
WMTErrRetType WMOpenActivityInstanceStatesList (
in WMTPSessionHandle psession_handle,in WMTPProcInstID pproc_inst_id,in WMTPActivityInstID pactivity_inst_id,in WMTPFilter pact_inst_state_filter,in WMTBoolean count_flag,out WMTPQueryHandle pquery_handle,out WMTPInt32 pcount)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCEWM_INVALID_ACTIVITY_INSTANCE
WMFetchActivityInstanceState
Trả về trạng thái bản sao hành vi tiếp theo trong danh sách truy vấn
WMTErrRetType WMFetchActivityInstanceState (
in WMTPSessionHandle psession_handle,in WMTPQueryHandle pquery_handle,out WMTPActivityInstState pactivity_inst_state)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLEWM_NO_MORE_DATA
WMCloseActivityInstanceStatesList
Đóng danh sách truy vấn các trạng thái của bản sao hành vi
WMTErrRetType WMCloseActivityInstanceStatesList (
in WMTPSessionHandle psession_handle,in WMTPQueryHandle pquery_handle)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLE
WMChangeActivityInstanceState
Thay đổi trạng thái một bản sao tiến trình
WMTErrRetType WMChangeActivityInstanceState (
in WMTPSessionHandle psession_handle,in WMTPProcInstID pproc_inst_id,in WMTPActivityInstID pactivity_inst_id,in WMTPActivityInstState pactivity_inst_state)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCEWM_INVALID_ACTIVITY_INSTANCEWM_INVALID_STATEWM_TRANSITION_NOT_ALLOWED
WMOpenActivityInstanceAttributesList
Xác định và mở truy vấn tới các thuộc tính của bản sao hành vi
WMTErrRetType WMOpenActivityInstanceAttributesList (
in WMTPSessionHandle psession_handle,in WMTPProcInstID pproc_inst_id,in WMTPActivityInstID pactivity_inst_id,in WMTPFilter pact_inst_attr_filter,in WMTBoolean count_flag,out WMTPQueryHandle pquery_handle,out WMTPInt32 pcount)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCEWM_INVALID_ACTIVITY_INSTANCE
WMFetchActivityInstanceAttribute
Trả về thuộc tính tiếp theo của bản sao tiến trình
WMTErrRetType WMFetchActivityInstanceAttribute (
in WMTPSessionHandle psession_handle,in WMTPQueryHandle pquery_handle,out WMTPAttrName pattribute_name,out WMTPInt32 pattribute_type,out WMTPInt32 pattribute_length,out WMTPText pattribute_value,in WMTInt32 buffer_size)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLEWM_NO_MORE_DATA
WMCloseActivityInstanceAttributesList
Đóng truy vấn các thuộc tính của bản sao hành vi
WMTErrRetType WMCloseActivityInstanceAttributesList (
in WMTPSessionHandle psession_handle,in WMTPQueryHandle pquery_handle)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLE
WMGetActivityInstanceAttributeValue
Lấy các giá trị thuộc tính của bản sao hành vi
WMTErrRetType WMGetActivityInstanceAttributeValue (
in WMTPSessionHandle psession_handle,in WMTPProcInstID pproc_inst_id,in WMTPActivityInstID pactivity_inst_id,in WMTPAttrName pattribute_name,out WMTPInt32 pattribute_type,out WMTPInt32 pattribute_length,out WMTPText pattribute_value,in WMTInt32 buffer_size)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_ATTRIBUTEWM_INSUFFICIENT_BUFFER_SIZE
WMAssignActivityInstanceAttribute
Gán thuộc tính cho một bản sao hành vi
WMTErrRetType WMAssignActivityInstanceAttribute (
in WMTPSessionHandle psession_handle,in WMTPProcDefID pproc_def_id,in WMTPActivityInstID pactivity_inst_id,in WMTPAttrName pattribute_name,in WMTInt32 attribute_type,in WMTInt32 attribute_length,in WMTPText pattribute_value)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCEWM_INVALID_ACTIVITY_INSTANCEWM_INVALID_ATTRIBUTEWM_ATTRIBUTE_ASSIGNMENT_FAILED
WAPI truy vấn các bản sao tiến trình
WMOpenProcessInstancesList
Xác định và mở truy vấn các bản sao tiến trình
WMTErrRetType WMOpenProcessInstancesList (
in WMTPSessionHandle psession_handle,in WMTPFilter pproc_inst_filter,in WMTBoolean count_flag,out WMTPQueryHandle pquery_handle,out WMTPInt32 pcount)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_FILTER
WMFetchProcessInstance
Trả về bản sao tiến trình tiếp theo trong truy vấn
WMTErrRetType WMFetchProcessInstance (
in WMTPSessionHandle psession_handle,in WMTPQueryHandle pquery_handle,out WMTPProcInst pproc_inst_buf_ptr)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLEWM_NO_MORE_DATA
WMCloseProcessInstancesList
Đóng truy vấn bản sao tiến trình
WMTErrRetType WMCloseProcessInstancesList (
in WMTPSessionHandle psession_handle,in WMTPQueryHandle pquery_handle)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLE
WMGetProcessInstance
Trả về một bản sao tiến trình theo ID
WMTErrRetType WMGetProcessInstance (
in WMTPSessionHandle psession_handle,in WMTPProcInstID pproc_inst_id,out WMTPProcInst pproc_inst)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INSTANCE
WAPI truy vấn các bản sao hành vi
WMOpenProcessInstancesList
Xác định và mở truy vấn các bản sao tiến trình
WMTErrRetType WMOpenProcessInstancesList (
in WMTPSessionHandle psession_handle,in WMTPFilter pproc_inst_filter,in WMTBoolean count_flag,out WMTPQueryHandle pquery_handle,out WMTPInt32 pcount)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_FILTER
WMFetchProcessInstance
Trả về bản sao tiến trình tiếp theo trong truy vấn
WMTErrRetType WMFetchProcessInstance (
in WMTPSessionHandle psession_handle,in WMTPQueryHandle pquery_handle,out WMTPProcInst pproc_inst_buf_ptr)
Các giá trị trả về
WM_SUCCESS
WM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLEWM_NO_MORE_DATA
WMCloseProcessInstancesList
Đóng truy vấn bản sao tiến trình
WMTErrRetType WMCloseProcessInstancesList (
in WMTPSessionHandle psession_handle,in WMTPQueryHandle pquery_handle)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_QUERY_HANDLE
WMGetProcessInstance
Trả về một bản sao tiến trình theo ID
WMTErrRetType WMGetProcessInstance (
in WMTPSessionHandle psession_handle,in WMTPProcInstID pproc_inst_id,out WMTPProcInst pproc_inst)
Các giá trị trả về
WM_SUCCESSWM_INVALID_SESSION_HANDLEWM_INVALID_PROCESS_INS
KẾT LUẬN
Có thể nói workflow đã, đang và sẽ tiếp tục phát triển và sẽ mang lại nhiều lợi ích cho con người trên nhiều phương diện. Trong tương lai, việc nghiên cứu và phát triển hệ thống quản lý workflow có thể sẽ tiếp tục để có thể áp dụng được cho nhiều lĩnh vực khác nhau.
Thời gian vừa qua, nhóm đã tìm hiểu và đưa ra những khái niệm chung về workflow, các ứng dụng đã áp dụng workflow cũng như các mô hình liên quan để làm rõ hơn về hệ quản trị workflow. Đồng thời nhóm đã thử nghiệm hệ thống quản trị tiến trình công việc trong đó bao gồm công cụ định nghĩa tiến trình và chạy thử nghiệm thành công trên Workflow Engine.
Một lần nữa chúng em xin được bày tỏ sự biết ơn chân thành tới thày giáo TSKH. Nguyễn Minh Hải và thầy Nguyễn Quốc Hưng – Học viện Công nghệ Bưu chính vễn thông vì sự giúp đỡ và chỉ bảo tận tình của thầy trong quá trình chúng em thực hiện đề tài này.
Hà Nội, 24/5/2006
TÀI LIỆU THAM KHẢO
David Hollingsworth (1995), The Workflow Reference Model 19-Jan-95, Workflow Management Coalition, 2 Crown Walk Winchester hampshire UK SO22 5XE.
Jinmin Hu - Paul Grefen , Conceptual Framework and Architecture for Service Mediating Workflow Management, Computer Science Department, Unversity of Twente P.O. BOX 217, 7500 AE Enschede, The Netherlands.
Karl R.P.H Leung Lojo M.L. Chung (1999), The Liaision Workflow Engine Architecture, Department of Computing, Hong Kong Polytechnic university, Hong Kong.
Work Group 1 (1-1999), Interface 1: Process Definition Interchange Q&A and Examples, (WfMC TC-1016-X), Workflow Management Coalition, 2 Crown Walk Winchester hampshire UK SO22.
Các file đính kèm theo tài liệu này:
- Nghiên cứu và thử nghiệm hệ thống WORKFLOW.doc