在利用quickflow开发工作流时,可以利用VS集成开发工具来进行,包括VS 2005及VS 2008,
1、VS 2005开发工作流
由于VS 2005集成开发环境是基于.net Frarmwork 2.0框架下的,默认情况下,安装VS 2005后不包含开发Workflow项目的模版,需要开发人员自行安装开发组件(Visual Studio 2005 Extensions for Windows Workflow Foundation (CHS).exe),安装此组件后在VS 2005中新项目时在模版栏处就会新增个Workflow的模版选项,包含“顺序工作流,状态机工作流”等工作流的模版;
在VS 2005中创建工作流项目时,会发现创建的解决方案中不会自动创建在部署工作流时所需要的Feature.xml 与 workflow.xml文件,得开发人员手动创建;
2、VS 2008开发工作流
由于VS 2008集成开发环境已将.net frarmwork 3.0与3.5集成进来了,所以在VS 2008安装完成过程中会自动安装workflow项目模版,而不用开发人员单独安装;开发人员可以根据workflow项目模版创建相关类型的工作流项目,且创建完之后会自动添加Feature.xml 与 workflow.xml 文件,且文件中已加载了必要内容;
现在来谈谈本人在利用VS 开发工作流的过程中觉的有发要注意的地方,在开发完工作流后,接下来的工作就是将工作流部署到目标服务器上的Sharepoint网站中,而在部署时就必须用的两个文件就是:Feature.xml 与 Workflow.xml
Feature.xml:主要是用于描述工作流的功能,包含要发布的infopath表单清单及要注册的infopath表单等信息;
Workflow.xml:主要是用于描述工作流功能具体属性,包含工作流运行程序集、工作流运行过程中各任务所对应显示的表单号、工作流关联的表单等信息;
A、创建Feature.xml文件时,注意的地方需要在Feature.xml 中添加<ElementManifests>元素,该元素中包含了工作流中表单文件的清单及制定工作流的xml 文件,如下红色标记所示:
<Feature Id="0bb1bc23-c897-491d-b1b8-363911e799f4"
Title="生产率电子表单审批流程"
Description="生产率电子表单审批工作流程"
Version="12.0.0.0"
Scope="Site"
ReceiverAssembly="Microsoft.Office.Workflow.Feature, Version=12.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"
ReceiverClass="Microsoft.Office.Workflow.Feature.WorkflowFeatureReceiver"
xmlns="http://schemas.microsoft.com/sharepoint/">
<ElementManifests>
<ElementManifest Location="workflow.xml" />
<ElementFile Location="Forms\PTInit.xsn"/> ----------1
<ElementFile Location="Forms\PTTask1.xsn"/>
<ElementFile Location="Forms\PTTask2.xsn"/>
</ElementManifests>
<Properties>
<Property Key="GloballyAvailable" Value="true" />
<!-- Value for RegisterForms key indicates the path to the forms relative to feature file location -->
<!-- if you don't have forms, use *.xsn -->
<Property Key="RegisterForms" Value="Forms\*.xsn" />------------2
</Properties>
</Feature>
现在简单描述下Feature.xml文件需要注意的几点:
1、红色标记部分为工作流要包含的工作流中表单文件清单及制定工作流的xml 文件;
2、红色标记1处<ElementFile Location="Forms\PTInit.xsn"/>元素里Location属性填写的是工作流任务表单在发布后表单位置;
3、红色标记2处表示部署工作流时要注册的任务表单;
B、创建Workflow.xml文件,如下所示:
<Elements xmlns="http://schemas.microsoft.com/sharepoint/">
<Workflow
Name="生产率电子表单审批流程"
Description="生产率电子表单审批工作流程"
Id="402cae71-9568-43de-822c-c38c9a9f8d09"
CodeBesideClass="BMCPTApprovedWorkflow.Workflow1" --------------1
CodeBesideAssembly="BMCPTApprovedWorkflow, Version=1.0.0.0, Culture=neutral, PublicKeyToken=9ecd9b09b6802e36" ---------------2
InstantiationUrl="_layouts/IniWrkflIP.aspx" ----------------------3
TaskListContentTypeId="0x01080100C9C9515DE4E24001905074F980F93160"
>
<Categories/>
<MetaData>
<Instantiation_FormURN>urn:schemas-microsoft-com:office:infopath:PTSummaryForm:-myXSD-2009-10-23T07-02-21</Instantiation_FormURN>------------3
<Task0_FormURN>urn:schemas-microsoft-com:office:infopath:PTTask1:-myXSD-2009-10-23T07-02-21</Task0_FormURN>----------4
<Task1_FormURN>urn:schemas-microsoft-com:office:infopath:PTTask2:-myXSD-2009-10-23T07-02-21</Task1_FormURN>
<StatusPageUrl>_layouts/WrkStat.aspx</StatusPageUrl>
</MetaData>
</Workflow>
</Elements>
现在简单描述下workflow.xml文件需要注意的几点:
1、在红色标记1处,填写就是工作流的所在类(格式:命名空间.类名);
2、在红色标记2处,填写的是工作流所在程序集注册信息,可以在GAC或通过Reflector工具中获取此信息;
3、在Workflow元素中的红色标记3处,表示该工作流启动时的初始化页面即要有一个相关联的初始Infopath表单页面,须在MetaData元素中设置,如MetaData元素中红色标记3所示;
4、在MetaData元素中的红色标记4处,表示在工作流中各任务所关联的表单ID号,格式:<Task0_FormURN>Infopath表单ID号</Task0_FormURN> 第一个作务,
<Task1_FormURN>Infopath表单ID号</Task1_FormURN> 可表示第二个任务,若在工作流有多个任务且相关联的显示的表单都不一样那就以此类推来进行创建元素;