当我们使用SharePoint 2013的状态机工作流时,发现一个非常不爽的事情,就是SharePoint 所有的工作流状态,都是固定的那些,没办法显示我们自定义的状态,后来经过Google发现,原来这个状态是可以自定义的。
自定义状态步骤
1、 修改xml添加MetaData下面的扩展项;
<ExtendedStatusColumnValues> <StatusColumnValue>测试状态1</StatusColumnValue> <StatusColumnValue>测试状态2</StatusColumnValue> <StatusColumnValue>测试状态3</StatusColumnValue> <StatusColumnValue>测试状态4</StatusColumnValue> <StatusColumnValue>测试状态5</StatusColumnValue> </ExtendedStatusColumnValues> |
截图如下:
2、 在工作流中声明自定义状态的枚举类型;
publicenumSPWorkflowStatus { 测试状态1 = 0, 测试状态2 = 1, 测试状态3 = 2, 测试状态4 = 3, 测试状态5 = 4, Max = 15 } |
3、 在工作流的过程中,添加“SharePoint 工作流”中的SetState项,如下图;
4、 在新添加的SetState项中,修改Correlation为workflowToken(与onWorkflowActivated一样),不要任何的Task的Token,如上图;
5、 创建新的State字段并与之关联,如下图;
6、 双击添加的SetState创建方法,在里面初始化状态;
privatevoid setState2_MethodInvoking(object sender, EventArgs e) { setState2.State = (Int32)SPWorkflowStatus.Max + 1; } |
7、 效果如下两图:
(图1 列表展示页)
(图2 工作流状态页)
结束语
其实没什么可说的,谷歌的解决方法,地址附后。
http://sharepoint.ginni.me/2010/01/setting-workflow-status-to-custom.html
http://blog.naikoo.com/?p=25