LiveClub Việt Nam

Professional Microsoft Community Club
Chào bạn thăm LiveClub Việt Nam Đăng nhập | Đăng ký | Trợ giúp
tìm bên trong Tìm kiếm

MSOPENLAB VIETNAM BLOG

MAKES MICROSOFT TECHNOLOGY AVAILABLE TO EVERYONE

XÂY DỰNG DOCUMENT WORKFLOW DÀNH CHO SHAREPOINT SERVER 2007 - PHẦN 1: DOCUMENT WORKFLOW CĂN BẢN

I.  Giới thiệu:
Trong phần đầu của loạt bài viết “Xây dựng Document Workflow dành cho Sharepoint Server 2007”, tôi sẽ hướng dẫn các bạn cách tạo một workflow đơn giản. 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

Phần 1 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.
 
 
Đã xuất bản Jan 15 2009, 09:35 AM bởi TRONGMANHNGUYEN

Lời bình

 

Thai Duong nói:

Hi, bài viết của anh rất hay.

Em tình cờ lướt web nên đọc được chuỗi bài viết về Sharepoint của anh. Em đã nghĩ tới một bài toán về qui trình Hồ sơ.

Là: Sharepoint có thể tạo ra được một qui trình động(WFE) của hồ sơ ko?

Với mỗi một loại hồ sơ sẽ có một qui trình. Vì vậy người thiết kế phải làm sao cho khi một người mang hồ sơ đến nộp ở một bộ phận tiếp nhận, nếu qui trình hồ sơ này chưa có, thì người quản trị có thể tạo ra qui trình cho hồ sơ này.

Hihi, anh có thể trả lời, cho ý kiến về bài toán này được ko anh?

Cảm ơn anh rất nhiều.

March 12, 2009 5:33 PM
 

Phạm Văn Trung nói:

Hoàn toàn có thể làm được. Trong SharePoint 2007, mỗi List (Document Library cũng là một dạng của List) có thể có nhiều Workflow, đối với các loại tài liệu, tùy theo bạn chọn Workflow nào thì nó sẽ RUN theo qui trình đó.

Ví dụ cho nó đơn giản: Giả sử công ty bạn có 2 phòng, Phòng Tài Chính và Phòng Tuyển Dụng. Nếu một người submit một tài liệu nộp cho phòng Tài Chính thì tài liệu này sẽ được xử theo theo qui trình của phòng Tài Chính, xét duyệt -> kiểm tra -> approve....vân vân. Nếu người này nộp đơn cho phòng Tuyển Dụng thì tài liệu sẽ được xử lý theo quy trình của phòng tuyển dụng, ví dụ như: Là Con gái mà Xinh -> để anh trưởng phòng kiểm tra trước :D hê hê.

Việc tạo Workflow trong SharePoint khá Flexible, nếu các Workflow của SharePoint chưa đáp ứng đủ thì bạn có thể xây dựng Workflow để đáp ứng nghiệp vụ bạn cần.

March 23, 2009 12:31 PM
 

tuanc4cnpm nói:

quá hay

March 27, 2009 4:06 PM
 

TRONGMANHNGUYEN nói:

Hi all,

Thanks vì các bạn đả ủng hộ. Săp tới sẽ có một loạt bài về Workflow trên MOSS 2007, các bạn đón đọc nhé

March 27, 2009 8:00 PM
 

Som co duoc bai hoc tiep theo nói:

    Bài anh đăng rất hay, để áp dụng được trong công việc mình cần học nhiều đều nữa. Rất mong anh đưa bài lên sớm.

   Cám ơn bạn đã gửi bài này, mong nhận được mail của bạn (toanlh@gmail.com).

March 30, 2009 2:59 PM
 

cuongtv7127@gmail.com nói:

Hi anh

Anh co the huong dan em ve cach tao workflow bang  Window SharePoint Designer 2007 khong anh

Em cam on anh!

April 13, 2009 3:31 PM
 

Cuongtv7127 nói:

Hi anh

Anh co the viet 1 bai ve su dung Window SharePoint Designer 2007 khong a

Em cam ơn anh

April 13, 2009 3:44 PM
 

TRONGMANHNGUYEN nói:

Hi Cường

Sắp tới sẽ có bài hướng dẫn bạn tạo worklfow bằng Sharepoint Designer 2007. Bạn chịu khó chờ nhé

Thân

April 14, 2009 8:27 PM
 

Thanh Trinh nói:

Mình đang dùng Sharepoint WSS 3.0 Free (công ty không thể dùng MOSS 2007 vì không mua license), mình cài trên Win Server 2003, 1 con back-end làm SQL, 1 con front-end làm Web App. 1 dịch vụ cực kỳ quan trọng mình cần nghiên cứu là Workflow

Mình không biết WSS 3.0 ngoài hỗ trợ 3 States còn những loại WF khác mình làm bằng Visio và Designer được phải không? Vấn đề là không biết xài Designer lập trình sao nữa, nên trước mắt mình sẽ tìm training của ông Designer để học thôi.

Mong là Trọng sẽ có thêm bài viết làm Workflow trên WSS 3.0, MOSS thì hỗ trợ nhiều công cụ quá rồi.

Xin Cám ơn

April 23, 2009 4:16 PM
 

Tony nói:

Lam cach nao co phan mem sharepoint server 2007 vay ban? Minh tim o Bui thi Xuan ma ko co, email ngtuantu@gmail.com giup minh nha.. minh dang tim hieu ve no... Thanks in advance.

August 7, 2009 11:33 PM
 

phucok88 nói:

hihi, quá đỉnh anh ạ...! Thank anh nhiều lắm ạ

January 24, 2010 12:32 AM

Bạn nghĩ sao?

(yêu cầu) 
(tùy chọn)
(yêu cầu) 
Submit

About TRONGMANHNGUYEN

I want to become a real CIO (CHIEF INFORMATION OFFICER). That's my dream and it makes me try hard. When I succeed in my life, I will help poor people and children with all of my heart. I believe in Karma what you give is what you get returned.

Powered by Community Server (Commercial Edition), by Telligent Systems