一步一步SharePoint 2007之四十二:实现自定义Workflow(1)——在VS中创建一个Workflow
摘要 |
在本系列文章中,笔者介绍了如何使用SharePoint Designer 2007自带的Workflow设计器来设计一个Workflow。事实上,这个设计器已经可以设计非常复杂的Workflow了。 但是,在实际应用中,我们还是没有办法只满足于使用现成的那些Workflow,那么,能不能使用VS 2005编写一个自定义的Workflow,然后在SharePoint Designer 2007中调用呢? 答案是肯定的。这里,笔者将讲解如何实现自定义的Workflow。 为简单起见,这里笔者仅仅只设计一个写一个文件的Workflow,然后在SharePoint Designer 2007中调用。朋友们在实现这个简单的Workflow后,自然可以尝试更为复杂的自定义的Workflow了。 值得注意的是,要完成本部分的学习,您需要安装Visual Studio 2005 Extensions for Windows Workflow Foundation Beta 2.2 (EN)。 |
正文 |
为了更清晰地让朋友们了解在SharePoint中实现自定义Workflow的几个步骤,本篇文章将被分割成四个小的部分,第一部分讲解在VS中创建一个Workflow,第二部分讲解设置配置文件,第三部分讲解在Designer中创建一个Workflow,最后一部分讲解运行Workflow。因此而给大家带来的阅读不便,就请海涵了:) 为了方便您的学习,您可以下载本篇文章所创建的工程。单击此处下载。 本篇文章将介绍实现自定义Workflow的第一部分——在VS中创建一个Workflow。 下面将记录每一步的操作过程。 1、首先打开VS 2005,创建一个新的Workflow Activity Library项目,项目取名为Eallies.Workflow.Demo。 如果您已经安装了Visual Studio 2005 Extensions for Windows Workflow Foundation Beta 2.2 (EN),在项目类型下,就可以找到一个名为Workflow的文件夹。 2、项目创建成功后,将默认的类名改成WriteFile,结果就是这样的: 3、我们可以看到,左边的工具栏中有非常多的可用Action,我们拖一个Code Action到设计器上面,并取名为WriteFileAction。 4、双击这个WriteFileAction,就可以进入代码编写界面,我们将代码更改为如下的代码。 这里,我们定义了一个名为Text的属性,并把这个Text写到c:\Workflow.txt这个文件中。 1 using System; 2 using System.ComponentModel; 3 using System.ComponentModel.Design; 4 using System.Collections; 5 using System.Drawing; 6 using System.Workflow.ComponentModel.Compiler; 7 using System.Workflow.ComponentModel.Serialization; 8 using System.Workflow.ComponentModel; 9 using System.Workflow.ComponentModel.Design; 10 using System.Workflow.Runtime; 11 using System.Workflow.Activities; 12 using System.Workflow.Activities.Rules; 13 14 using System.IO; 15 16 namespace Eallies.Workflow.Demo 17 { 18 public partial class WriteFile: SequenceActivity 19 { 20 private string _Text = string.Empty; 21 22 public WriteFile() 23 { 24 InitializeComponent(); 25 } 26 27 public string Text 28 { 29 get { return this._Text; } 30 set { this._Text = value; } 31 } 32 33 private void WriteFileAction_ExecuteCode(object sender, EventArgs e) 34 { 35 string path = @"c:\Workflow.txt"; 36 string text = this._Text + "-" + DateTime.Now.ToString(); 37 StreamWriter writer = new StreamWriter(path); 38 writer.Write(text); 39 writer.Close(); 40 } 41 } 42 } 5、同样的方法,我们将项目的编译目录更改为C:\Inetpub\wwwroot\wss\VirtualDirectories\9001\_app_bin,并为项目强命名。 这就是完成后的效果: 6、最后一步就是编译项目了。 至此,第一部分的在VS中创建一个Workflow的工作就完成了。 下一篇文章我将记录如何实现自定义Workflow的第二部分——设置配置文件的过程。欢迎大家继续关注:)多谢! |