Visual Studio 2010 là một công cụ lập trình dành cho việc phát triển các ứng dụng và dịch vụ. Nó cung cấp các loại project khác nhau cho SharePoint cũng như các template dành cho workflow. Visual Studio 2010 sử dụng Windows Workflow Foundation (WF) để tạo ra các quy trình công việc theo từng giai đoạn và cuối cùng là thực thi công việc đó.


Trong phần 5 này, chúng ta sẽ cùng khám phá workflow trên Visual Studio 2010 ở cấp độ căn bản.


Các loại project Workflow trên Visual Studio
Các lập trình viên có thể tạo ra các workflow tuần tự hoặc theo từng giai đoạn trên Visual Studio 2010. Ngoài ra, có thể import SharePoint Designer – dựa trên Resuable workflow để tạo một giải pháp workflow. Visual Studio 2010 cung cấp một template như hình dưới dành cho tất cả các loại workflow.

  • Sequential Workflow: đây là loại workflow mà các hoạt động xảy ra một cách tuần từ lúc bắt đầu cho đến khi kết thúc. Bạn có thể chia nhánh các hoạt động này với sự hỗ trợ của các điều kiện (condition). Loại workflow này thích hợp cho ngữ cảnh phê duyệt hoặc thu thập phản hồi ý kiến khi mà các hoạt động được tuần tự: đầu tiên sẽ yêu cầu phản hồi hoặc phê duyệt, sau đó các thông tin phản hồi và phê duyệt được gửi đi …..v..
  • State Machine Workflow: là workflow có các giai đoạn, chuyển tiếp và các hành động. Các bước trong workflow này thực thi không đồng bộ và chúng được kích hoạt bởi hành động và giai đoạn. Workflow sẽ có giai đoạn đầu, sau đó dựa trên các sự kiện để chuyển tiếp đến giai đoạn khác. Giai đoạn cuối cùng sẽ xác định kết thúc workflow.
  • Import Reusable Workflow: được sử dụng để import SharePoint Designer 2010 – dựa trên Reusable worklow để phát triển workflow lên cao hơn, bằng cách thêm các đoạn code hoặc hoạt động mà không được hỗ trợ trên SharePoint Designer.

Các hoạt động cơ bản trên workflow
Các hoạt động hiển thị trên Toolbox. Các lập trình viên có thể kéo thả các hoạt động này lên bản thiế kế workflow để xác định các bước trong workflow. Các thuộc tính của mỗi hoạt động được thiết lập tại cửa sổ Properties ngay góc dưới bên phải. Thư viện Base Activity Library của Windows Workflow Foundation cung cấp một nhóm gồm các hoạt động nền tảng và SharePoint 2010 cũng cung cấp các hoạt động dùng để thiết kế workflow.
Các hoạt động sau thường được sử dụng để thiết kế workflow trên SharePoint 2010:

  • OnWorkflowActivated: cung cấp điểm bắt đầu cho một workflow. Hoạt động này có thể chấp nhận thông tin được cung cấp bởi quản trị viên SharePoint bằng cách sử dụng form Association khi workflow được thiết lập với một thư viện tài liệu, list, content type hoặc site. Nó cũng có thể chấp nhận thông tin được cung cấp bởi form Initiration khi workflow được bắt đầu. Mỗi workflow đều phải bắt đầu với hoạt động này.
  • CreateTask: tạo ra một công việc dành cho một người dùng cụ thể nào đó trong task list. Hoạt động này cũng có một thuộc tính SendEmailNotification, khi bạn thiết lập giá trị True, nó sẽ tự động gửi e-mail đến người có công việc đó.
  • OnTaskChanged: chấp nhận các thông tin từ form Task Completion, có thể sử dụng trong các rule và các hành động khác trên workflow.
  • CompleteTask: đánh dấu công việc đã hoàn thành.
  • DeleteTask: gỡ bỏ công việc từ một task list.
  • OnWorkflowModified: chấp nhận thông tin từ form Modification, có thể sử dụng để thay đổi các instance trong workflow. Nếu workflow của người tạo chọn không chứa các bất cứ instance nào trong hoạt động này trên workflow thì workflow đó sẽ không thể chỉnh sửa khi nó đang chạy. Hoạt động này đáp ứng việc gán lại một công việc để sử dụng vào việc khác, thêm nhiều người tham gia vào một workflow đang chạy.
  • SendEmail: gửi một e-mail dến một người hoặc nhóm người cụ thể nào đó.
  • LogToHistoryList: ghi các thông tin về việc thực thi workflow trong một history list. Thông tin trong list này được sử dụng để cho phép người dùng thấy được nơi thực thi workflow, xem được các sự kiện workflow đã hoàn tất…Để cho phép giám sát, người tạo workflow phải ghi các thông tin vào history list tại thời điểm thích hợp khi workflow thực thi. Vì nó cung cấp cơ chế riêng để theo dõi, giám sát nên SharePoint 2010 không hỗ trợ dịch vụ theo dõi chuẩn của Windows Workflow Foundation.

Tạo workflow trên Visual Studio 2010
Việc tạo một workflow đơn giản trên Visual Studio 2010 bắt đầu với việc chọn template – sử dụng template Sequential hoặc State Machine. Sau khi chọn template thích hợp, bạn có thể chọn site để triển khai, kiểm nghiệm workflow đó. Bạn cũng có thể chọn các list trên site để áp dụng workflow. Cuối cùng thiết lập history và task list để sử dụng cho việc kiểm nghiệm workflow.


Một workflow đơn giản trên Visual Studio sẽ được bắt đầu với hoạt động OnWorkflowActivated, sau đó sử dụng hoạt động CreateTask để gán các công việc đến những người tham gia trong workflow. Chuẩn WhileActivity cũng có thể được sử dụng để chờ cho đến khi người dùng hoàn tất công việc và cung cấp dữ liệu cần thiết thông qua task form
OnTaskChanged thực thi trong WhileActivity, trích xuất bất cứ thông tin nào mà người dùng nhập trên form. Dựa trên các thông tin thu được, workflow có thể sử dụng hoạt động CodeActivity để thực hiện các xử lí phức tạp và cập nhật dữ liệu trên item hoặc tài liệu đã được thiết lập trên workflow.


SharePoint 2010 cung cấp tất cả các hoạt động có trên Visual Studio 2010 bên dưới SharePoint Workflow. Những hoạt động này được thiết kế để xử lí các hoạt động phổ biến trong môi trường SharePoint 2010. Tính logic khi thực thi workflow phụ thuộc vào người lập trình. Trên thực tế, người lập trình có thể lập trình ra các workflow tùy thích mà không bị hạn chế bởi các hoạt động được cung cấp trong SharePoint 2010 hoặc Windows Workflow Foundation.


Ngoài việc thiết kế tính logic cho workflow, các lập trình viên workflow cũng có nhiệm vụ tạo ra các form tương tác với người dùng. Có 4 loại form có thể tạo: Association, Initiation, Task Modification. Để sử dụng form, bạn cần phải làm việc với InfoPath ASPX. Namspace Microsoft.Windows.SharePoint.Workflow giúp bạn có thể phát triển workflow. Bằng cách sử dụng namespace này, người tạo workflow có thể làm tương tác giữa một form đến workflow và ngược lại.
Sau khi tạo workflow và form cho workflow, bạn có thể sử dụng các tính năng trên SharePoint để triển khai workflow. Một tập tin Element.xml sẽ liên kết form với workflow.

Các lâp trình workflow có thể debug workflow trên Visual Studio 2010 đơn giản chỉ bằng cách nhấn phím F5.

Các quản trị viên SharePoint phải cài đặt và triển khai giải pháp đến tất cả các Web application nơi mà workflow được sử dụng. Quản trị viên site collection có thể kích hoạt tính năng workflow trên site collection.

So sánh các chức năng về workflow giữa SharePoint Designer 2010 và Visual Studio 2010
Bảng dưới đây so sánh các chức năng về workflow giữa SharePoint Designer 2010 và Visual Studio 2010.

Hết phần 5 …