关于多级审批工作流的问题描述
在 MOSS多级审批工作流【Sequential+ConditionedActivityGroup版】v1.1 一文中,笑煞天 做了个很好的例子,照着他的文档爽了一把,结果出现了很多问题,当然是我这边的原因了,搞这WF才2周,跟着他的demo边做边学,不过最近听小汤说他挺忙的,也就没好意思去请教了,因为最近的售前工作要这个,所以了,嘿嘿,贴在这儿,如若有空的话帮我指点下:
1.除了前面提到的总是在“workflowProperties.InitiationData”出错,只好加了个判断:
2。这是我这边的xsd生成init.cs后的版本:
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行库版本:2.0.50727.1378
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
后果是[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace=http://schemas.microsoft.com/office/infopath/2003/myXSD/2007-08-23T02:39:23)] 多了好几个Namespace阿,由他的4k蹦到我的5k,,架构不一致,肯定要出错了:
Unexpected System.InvalidOperationException: XML 文档(1, 2)中有错误。 ---> System.InvalidOperationException: 不应有 <Init xmlns='http://schemas.microsoft.com/office/infopath/2003/myXSD/2007-01-30T13:00:28'>。 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderInit.Read4_Init() --- 内部异常堆栈跟踪的结尾
我估计它还是读你的assembly版本了,看来还得来遍干干净净的模仿!对了,还有阿,呵呵,当然不是他的原因了,attach 10次崩了9次,我的天啊,这家伙!不说了。。。。
几张跑起来的贴图:
初始化成功后:

流到第2级:

好了,就贴几张示意下了,在此基础上我做了下调整, 送审信息格式化加强,包括时间,历史原因的版本等等,方便追溯,正在考虑将这些信息,如果很多的话记录到其它的一个列表中,中国人看这个觉得不是很习惯,嘿嘿,没有办法,email通知等等,勉强能混过去!
对了还得问问晓伟,这Infopath表单模板为什么都不能打开啊,你的是有可能,但是我的是设置成完全信任的啊,居然等我关闭了就不让打开,说不安全,什么跟什么啊!
总的说WF前途无量!

1.除了前面提到的总是在“workflowProperties.InitiationData”出错,只好加了个判断:
1
private void onWorkflowActivated_Invoked(object sender, ExternalDataEventArgs e)
2
{
3
workflowId = workflowProperties.WorkflowId;
4
5
//定义任务的名称
6
approveItemTitle = "请审批 " + workflowProperties.Item.DisplayName;
7
rejectItemTitle = workflowProperties.Item.DisplayName + " 被退回,请审批。";
8
9
//反序列化workflowProperties.InitiationData以得到初始窗体的实例
10
XmlSerializer xs = new XmlSerializer(typeof(Init));
11
if (workflowProperties.InitiationData != null)
12
{
13
XmlTextReader xtr = new XmlTextReader(new System.IO.StringReader(workflowProperties.InitiationData));
14
Init init = (Init)xs.Deserialize(xtr);
15
16
//将初始窗体的信息赋给Task0
17
task0_Properties.Title = rejectItemTitle;
18
task0_Properties.AssignedTo = workflowProperties.Originator;
19
task0_Properties.ExtendedProperties["comments"] = init.comments;
20
21
//设置Task1的标题和分配对象
22
task1_Properties.Title = approveItemTitle;
23
task1_Properties.AssignedTo = init.contact[0].AccountId;
24
}
25
else
26
{
27
//将初始窗体的信息赋给Task0
28
task0_Properties.Title = rejectItemTitle;
29
task0_Properties.AssignedTo = workflowProperties.Originator;
30
task0_Properties.ExtendedProperties["comments"] = "comments:";
31
32
//设置Task1的标题和分配对象
33
task1_Properties.Title = approveItemTitle;
34
task1_Properties.AssignedTo = "contososrv\\pccai";
35
}
36
}
37
导致这种原因不知如何更好的解决,其实最后把“新建项目是启动工作流”选项去掉,手动的启动,直接走/_layouts/IniWrkflIP.aspx...就可避免外,有出现了新的困惑: 
2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

2。这是我这边的xsd生成init.cs后的版本:
//------------------------------------------------------------------------------
// <auto-generated>
// 此代码由工具生成。
// 运行库版本:2.0.50727.1378
//
// 对此文件的更改可能会导致不正确的行为,并且如果
// 重新生成代码,这些更改将会丢失。
// </auto-generated>
//------------------------------------------------------------------------------
后果是[System.Xml.Serialization.XmlTypeAttribute(AnonymousType=true, Namespace=http://schemas.microsoft.com/office/infopath/2003/myXSD/2007-08-23T02:39:23)] 多了好几个Namespace阿,由他的4k蹦到我的5k,,架构不一致,肯定要出错了:
Unexpected System.InvalidOperationException: XML 文档(1, 2)中有错误。 ---> System.InvalidOperationException: 不应有 <Init xmlns='http://schemas.microsoft.com/office/infopath/2003/myXSD/2007-01-30T13:00:28'>。 在 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderInit.Read4_Init() --- 内部异常堆栈跟踪的结尾
我估计它还是读你的assembly版本了,看来还得来遍干干净净的模仿!对了,还有阿,呵呵,当然不是他的原因了,attach 10次崩了9次,我的天啊,这家伙!不说了。。。。

几张跑起来的贴图:

初始化成功后:

流到第2级:

好了,就贴几张示意下了,在此基础上我做了下调整, 送审信息格式化加强,包括时间,历史原因的版本等等,方便追溯,正在考虑将这些信息,如果很多的话记录到其它的一个列表中,中国人看这个觉得不是很习惯,嘿嘿,没有办法,email通知等等,勉强能混过去!
对了还得问问晓伟,这Infopath表单模板为什么都不能打开啊,你的是有可能,但是我的是设置成完全信任的啊,居然等我关闭了就不让打开,说不安全,什么跟什么啊!
总的说WF前途无量!
__EOF__

本文作者:pccai
本文链接:https://www.cnblogs.com/pccai/archive/2007/08/27/870694.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
本文链接:https://www.cnblogs.com/pccai/archive/2007/08/27/870694.html
关于博主:评论和私信会在第一时间回复。或者直接私信我。
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是博主的最大动力!
msn: pccai1983@hotmail.com
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 分享一个免费、快速、无限量使用的满血 DeepSeek R1 模型,支持深度思考和联网搜索!
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· ollama系列01:轻松3步本地部署deepseek,普通电脑可用
· 25岁的心里话
· 按钮权限的设计及实现