RSS

Triển khai Workflow bằng Visual Studio 2008

27 Jul

Giả sử công ty bạn có 2 document library: “Document dành cho kế toán” và “Document dành cho sếp”. Nhu cầu đặt ra khi client upload tài liệu vào “Document dành cho kế toán” thì tài liệu đó đồng thời cũng được sao chép vào “Document dành cho sếp”.  Bạn hoàn toàn có thể làm được điều đó bằng cách triển khai workflow thông qua Visual Studio 2008.

Giả sử công ty bạn có 2 document library: “Document dành cho kế toán” và “Document dành cho sếp”. Nhu cầu đặt ra khi client upload tài liệu vào “Document dành cho kế toán” thì tài liệu đó đồng thời cũng được sao chép vào “Document dành cho sếp”.  Bạn hoàn toàn có thể làm được điều đó bằng cách triển khai workflow thông qua Visual Studio 2008


Bài lab bao gồm các bước:

1. Tạo mới Visual Studio Solution and Project

2. Vẽ sơ đồ Workflow Logic

3. Viết code cho Workflow

4. Ứng dụng Workflow vào Sharepoint

II. Chuẩn bị:
– Cài đặt Visual Studio 2008 trên Windows Server 2008. Download tại đây
– Tạo Sharepoint Team Site “Demontration Site” và Setup 2 Document Library “ Account Documents”“Vip Documents”
-> Bạn có thể xem cách tạo Sharepoint Site và Document Library trong bộ bài viết “TRIỂN KHAI MICROSOFT OFFICE SHAREPOINT SERVER 2007 DÀNH CHO DOANH NGHIỆP

– Mở trang “Account Documents”, nhấn Upload, chọn Upload Document

– Browse đến file văn bản cần upload, sau đó nhấn OK

– File văn bản đã được upload thành công

Bây giờ chúng ta sẽ triển khai Workflow, sao cho khi client up dữ liệu lên “Account Documents” thì dữ liệu đó sẽ tự động copy đến “Vip Documents”

III. Thực hiện:
1. Tạo mới Visual Studio Solution and Project
– Khởi động Visual Studio 2008, chọn C#. Vào menu File, chọn New Project…

– Mục Project Types: chọn Office 2007, mục Templates: chọn Sharepoint 2007 Sequential Workflow. Ở khung Name: đặt tên là SimpleCopyFileWorkflow, sau đó nhấn OK

– Màn hình New Office Sharepoint Workflow, ở mục Name, giữ nguyên tên như mặc định. Ở mục What local site site do you want to use for debugging?, nhập vào địa chỉ của trang “Demontration site”, sau đó nhấn Next

– Màn hình Select the lists you will use when debugging, bao gồm 3 mục chính:
+ Library or List: liên quan đến Sharepoint Library hoặc Sharepoint List  mà Workflow sẽ triển khai. Lấy ví dụ: bạn muốn khi Client upload document lên Sharepoint Library “Account Document” thì sẽ tự động copy thêm 1 bản qua “Vip Documents” thì ở đây bạn chọn là “Account Documents”. Mục này vô cùng quan trọng trong quá trình phát triển workflow.
+ History List: lưu trữ các sự kiện liên quan đến workflow.  Bạn có thể dùng Reporting Services,  export ra file Excel hoặc dùng Access Report để xem các sự kiện này.
+ Task List: lưu trữ các dữ liệu Workflow Task như Task done (%), task trong Outlook…
Sau khi chọn xong, nhấn Next

– Màn hình You can specify the conditions for how your workflow is started, đánh dấu chọn vào 2 mục : Manually by users và  When an item is created. Sau đó nhấn Finish

* Các file Projects quan trọng:

a.
Feature.xml: Đây là file dùng để định nghĩa tính năng và vị trí của các assemblies, files, hoặc các thuộc tính mà hỗ trợ cho tính năng đó. Khi bạn triển khai Workflow Solution, Visual Studio sẽ dùng file này để chỉ ra những cái cần deploy và nơi chứa giải pháp của bạn. Bạn nên cần đặt tên và mô tả tính năng của WorkFlow trong file này.

b
. Key.snk: Đây là Strong name key mà Workflow Solution dùng để deploy nó với Global Assembly Cache (GAC). Kể từ lúc Workflow kết hợp với .NET Assemblies, bạn sẽ có 2 lựa chọn để Sharepoint chấp nhận và làm việc với chúng. Vấn đề bảo mật được đặt lên hàng đầu khi Workflow kết hợp với .NET Assemblies, nó sẽ yêu cầu tất cả các assemblies phải có “chữ ký” và yêu cầu Strong name key. Trong Visual Studio 2008, nó được cung cấp bởi template dành cho Sharepoint Workflow.

c. Workflow.xml:
Đây là file dùng để định nghĩa tất cả các file trong Workflow, cho nên nó còn được gọi là “Workflow Template”. Bạn có thể đặt các giá trị sau:
– Name
– Description
–  Các URL cho Custom Workflow Forms
    + Association Form: Form này sẽ xuất hiện đầu tiên khi user/administrator kế nối Workflow tới Sharepoint List hoặc Document Library. Bạn nên set giá trị Default cho Workflow.
    + Initiation Form: Form này xuất hiện dành cho user khi user set workflow theo cách manually.
    + Modification Form: Form này bạn có thể đưa cho user ở bất kỳ phạm vi hoạt động nào của Worflow để lấy thêm thông tin dành cho user
    + Task-Edit Form: Form này liên quan đến Tasks (chẳng hạn như Outlook Tasks), một phần của Workflow
    + Status Page: là trang Web mà user có thể truy cập để thông báo mức độ công việc và tình trạng của Workflow

d. Workflow1.cs:
File này sẽ thể hiện tính Logic của Workflow và hầu hết chủ yếu bạn sẽ làm việc trên file này, bạn có thể chọn lựa giữa 2 giao diện Coding hoặc Design. Khi bạn double click vào file này, bạn sẽ thấy giao diện như hình bên dưới


2. Xây dựng Workflow trên nền Visual Studio 2008
– Click chuột vào “On Workflow Activated 1”, khung Properties bên phải, điền vào các giá trị sau:
+ Correlation Token: đặt tên cho Workflow, ở đây tôi đặt là “SimpleCopyWorkflowToken”
+ Bung dấu “+” ở mục Correlation Token, bạn sẽ thấy mục OwnerActivityName, chọn Workflow1

– Tiếp theo chúng ta phải thêm Workflow Activity để triển khai code và log history để ghi nhận lại các sự kiện workflow. Ở bên trái, bạn bung mục Toolboxs, kéo thả Code vào sau “On Workflow Activated 1”
– Tiếp tục, bạn kéo thả LogToHistoryListActivity vào sau CodeActivity1

– Cuối cùng bạn được 1 sơ đồ Workflow Logic hoàn chỉnh

3. Viết code cho Workflow:
a. Thêm Code cho “On Workflow Activated 1”
– Double Click vào “On Workflow Activated 1”, giao diện coding sẽ hiện ra, bạn thêm vào 2 đoạn mã như sau:


b. Thêm Code cho FileCopy Activity (codeActivity1 Shape)
– Click chuột vào “CodeActivity1”, ở khung Name đổi tên thành “CopyFileActivity”

– Sau đó double click vào “CopyFileActivity”, thêm vào đoạn code copy đến “Vip Documents” và ghi nhận file log

c. Ghi nhận sự kiện trong Workflow History List
– Click chuột vào “LogToHistoryListActivity1”, chọn giá trị History Description, nhấn vào biểu tượng
– Màn hình Bind History Description…, chọn logHistoryDescriptions, sau đó nhấn OK

– Làm tương tự cho HistoryOutcome, nhưng chọn giá trị logHistoryOutcome. Kết quả, bạn được 2 giá trị như sau:


4. Ứng dụng Workflow vào Sharepoint
– Sau khi đã xây dựng code hoàn chỉnh, bạn cần phải dò lỗi(debug)deploy workflow. Click chuột vào biểu tượng   hoặc nhấn F5, Visual Studio 2008 sẽ tự động dò lỗi và chạy Sharepoint Site cho bạn. Chuột phải vào file tài liệu, chọn Workflows

– Nhấn chọn vào SimpleCopyFileWorkflow mà chúng ta đã tạo

– Nếu như đoạn code bạn triển khai đúng thì ở mục SimpleCopyFileWorkFlow, sẽ hiển thị Completed

– Chuột phải vào file tài liệu, chọn Workflows thêm lần nữa
– Chú ý ở mục Completed Workflows, bạn sẽ thấy thời gian thực hiện Workflow này và tình trạng của nó (Status) được hiển thị là Completed
-> Đây chính là kết quả mà chúng ta code quá trình log ghi nhận sự kiện Workflow

– Tiếp tục, nhấn vào mục SimpleCopyFileWorkFlow, nó sẽ hiển thị chi tiết về WorkFlow
– Quay lại Demontration Site, nhấn vào “VIP DOCUMENTS”, sẽ thấy tài liệu được tự động copy

Như vậy, tôi đã hướng dẫn các bạn cách triển khai một Workflow đơn giản nhất, đó là copy tài liệu từ “Account Documents” sang “Vip Documents” khi user upload. Bạn có thể download đoạn code mẫu tại đâyChúc bạn thành công.
 

Theo msopenlab.com

 
Leave a comment

Posted by on July 27, 2011 in Network

 

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s

 
%d bloggers like this: