技术开发 频道

详解VS2010中SharePoint工作流

  我们看到两个崭新的文件夹:Features和Packages。Microsoft SharePoint Development Tools提供了在组织解决方案内的Feature和Package的能力,通过这一功能,我们可以以图形化的方式来组织和管理Feature和Package,十分方便。下图展示了崭新的Feature编辑器:

  在下图所示的添加项对话框中,我们可以看到,除了Sequential Workflow和State Machine Workflow之外,和工作流相关的可添加项还有Workflow Association Form和Workflow Initiation Form。

  这两种页面的格式都是ASPX,但很可惜的是并没有提供可视化设计支持。我宁愿相信这也是beta版本的原因,因为Visual Studio 2010新增的Visual Web Part都能够使用可视化的方式来设计了。不管怎么说,我们终于可以比较方便的为工作流设计基于ASP.NET的启动页面和关联页面了。

  当然,我们仍然可以使用InfoPath表单作为工作流的启动页面和管理页面。和上一版本一样,我们需要手工修改Workflow.xml文件,添加必要的宿主页面、内容类型ID和表单URN,Visual Studio 2010并没有替我们完成这部分内容(令人不解的是,为什么不把宿主页面和那个长长内容类型ID也像表单URN的相关元素一样注释起来,以供我们更加方便地使用呢?)。

  我们从上面的解决方案资源管理器中看到的Elements.xml就是以前的Workflow.xml,并且由于新增了Site Workflow,Elements.xml的MetaData元素中也相应地增加了一个AssociationCategories元素,用以标识工作流时List Workflow还是Site Workflow。

  本来想尝试用SharePoint Designer 2010和Visio 2010设计一个包含它们特有的操作(活动)的Reusable Workflow,然后保存为WSP模板,再使用Visual Studio 2010导入,看看会发生些什么。

  结果可耻的失败了数次,唯一的收获就是发现如果Visio 2010设计的工作流流程图如果包含了那四个神秘的权限操作的话,虽然导入到SharePoint Designer 2010里可以正常识别并且设置属性,但是在检查错误的时候就会提示该活动放错了位置,只要将其移动到SharePoint Designer 2010新增的Impersonation Step中,错误就会得以解决。

  我猜想是因为设置权限这种操作本身就需要更高的权限才能执行,而SharePoint 2010的工作流貌似已经是以启动工作流的用户权限来运行了,只有其中的Impersonation Step才会以工作流作者(代表着更高的权限?)的权限去执行。

0
相关文章