在VS中开发工作流:编码你的工作流
原文地址:
http://blogs.msdn.com/sharepoint/archive/2006/11/28/developing-workflows-in-vs-part-5-code-your-workflow.aspx
有了合适的数据,有了工作流的逻辑。它是简单易懂的,但是还是有一些容易出错的地方你应该注意。
1、忘记给自定义的类添加可序列化特性attribute
当你为工作流创建自定义的类的时候,不要忘记添加Serializable可序列化特性。如果你没有这么做的话,而是在工作流范围内定义了一个类变量,当设置工作流睡觉和序列化类的时候工作流会运行失败。如果你注意到工作流好象是完成了,这有可能就是错误的。
2、在反持久化之后重新使用不能序列化的SharePoint对象
很多非工作流的SharePoint对象,例如SPlistItem,都是不可以序列化的,因此当工作流被持久化的时候,这些项目将变得无效。如果你视图在工作流激活的时候去使用他们,你将得到一个错误。为了避免这些,工作流反持久化之后你再使用他们。
3、更新锁定项
如果一个文档处于打开或者锁定状态更新文档将会抛出异常。如果你需要工作流在这时候写内容到一个栏的话,你可以尝试1)在锁定打开的时候再执行更新操作。或者2)使用item.SystemUpdate()来烧断锁定。记住在使用第二种方法的时候,打开文档的用户在保存文档的时候将会忽略工作流做的改变。
FAQ:如何开发工作流的自定义状态
SharePoint中的SetState活动就是来做这些的,详细情况可以查看WSS SDK。
下一个章节:部署和调试工作流
谢谢!