Quản trị net diễn đàn chia sẻ thông tin các thủ thuật mạng, internet bảo mật thông tin dành cho giới IT VIệt hy vọng là nơi bổ ích cho cộng đồng

Quản trị net diễn đàn chia sẻ thông tin các thủ thuật mạng, internet bảo mật thông tin dành cho giới IT VIệt hy vọng là nơi bổ ích cho cộng đồng (http://quantrinet.com/forum/index.php)
-   Module 6: Configuring and Managing SharePoint 3.0 (http://quantrinet.com/forum/forumdisplay.php?f=268)
-   -   Triển khai workflow bằng visual studio 2008 (http://quantrinet.com/forum/showthread.php?t=3013)

hoctinhoc 23-07-2009 10:51 PM

Triển khai workflow bằng visual studio 2008
 
TRIỂN KHAI WORKFLOW BẰNG VISUAL STUDIO 2008


http://msopenlab.com/uploads/thumb_b...eetingrzOr.jpg


I. Giới thiệu:

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


http://msopenlab.com/lab/workflow1/image001.jpg

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


http://msopenlab.com/lab/workflow1/image002.jpg

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


http://msopenlab.com/lab/workflow1/image003.jpg

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


http://msopenlab.com/lab/workflow1/image004.jpg

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…


http://msopenlab.com/lab/workflow1/image005.jpg

- 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


http://msopenlab.com/lab/workflow1/image006.jpg

- 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


http://msopenlab.com/lab/workflow1/image007.jpg

- 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


http://msopenlab.com/lab/workflow1/image008.jpg

- 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 usersWhen an item is created. Sau đó nhấn Finish


http://msopenlab.com/lab/workflow1/image009.jpg

* Các file Projects quan trọng:


http://msopenlab.com/lab/workflow1/image010.jpg

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


http://msopenlab.com/lab/workflow1/image011.jpg


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


http://msopenlab.com/lab/workflow1/image012.jpg

- 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”

http://msopenlab.com/lab/workflow1/image013.jpg

- Tiếp tục, bạn kéo thả LogToHistoryListActivity vào sau CodeActivity1


http://msopenlab.com/lab/workflow1/image014.jpg

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

http://msopenlab.com/lab/workflow1/image015.jpg

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:


http://msopenlab.com/lab/workflow1/image016.jpg

b. Thêm Code cho FileCopy Activity (codeActivity1 Shape)

- Click chuột vào “CodeActivity1”, ở khung Name đổi tên thành “CopyFileActivity”


http://msopenlab.com/lab/workflow1/image017.jpg

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



http://msopenlab.com/lab/workflow1/image018.jpg



http://msopenlab.com/lab/workflow1/image019.jpg



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ượnghttp://msopenlab.com/lab/workflow1/image020.jpg

http://msopenlab.com/lab/workflow1/image021.jpg

- Màn hình Bind History Description…, chọn logHistoryDescriptions, sau đó nhấn OK


http://msopenlab.com/lab/workflow1/image022.jpg

- 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:


http://msopenlab.com/lab/workflow1/image023.jpg

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 http://msopenlab.com/lab/workflow1/image024.jpg 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


http://msopenlab.com/lab/workflow1/image025.jpg

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


http://msopenlab.com/lab/workflow1/image026.jpg

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


http://msopenlab.com/lab/workflow1/image027.jpg

- Chuột phải vào file tài liệu, chọn Workflows thêm lần nữa

http://msopenlab.com/lab/workflow1/image028.jpg

- 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


http://msopenlab.com/lab/workflow1/image029.jpg

- Tiếp tục, nhấn vào mục SimpleCopyFileWorkFlow, nó sẽ hiển thị chi tiết về WorkFlow


http://msopenlab.com/lab/workflow1/image030.jpg

- Quay lại Demontration Site, nhấn vào “VIP DOCUMENTS”, sẽ thấy tài liệu được tự động copy


http://msopenlab.com/lab/workflow1/image031.jpg


http://msopenlab.com/lab/workflow1/image032.jpg

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 đây. Chúc bạn thành công.

By Nguyễn Mạnh Trọng
www.msopenlab.com


Bây giờ là 06:27 PM. Giờ GMT +7

Diễn đàn tin học QuantriNet
quantrinet.com | quantrimang.co.cc
Founded by Trương Văn Phương | Developed by QuantriNet's members.
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.