关于多级审批工作流的问题描述

    在 MOSS多级审批工作流【Sequential+ConditionedActivityGroup版】v1.1 一文中,笑煞天 做了个很好的例子,照着他的文档爽了一把,结果出现了很多问题,当然是我这边的原因了,搞这WF才2周,跟着他的demo边做边学,不过最近听小汤说他挺忙的,也就没好意思去请教了,因为最近的售前工作要这个,所以了,嘿嘿,贴在这儿,如若有空的话帮我指点下:
    1.除了前面提到的总是在“workflowProperties.InitiationData”出错,只好加了个判断:
 1private void onWorkflowActivated_Invoked(object sender, ExternalDataEventArgs e) 
 2
 3workflowId = workflowProperties.WorkflowId; 
 4
 5//定义任务的名称 
 6approveItemTitle = "请审批 " + workflowProperties.Item.DisplayName; 
 7rejectItemTitle = workflowProperties.Item.DisplayName + " 被退回,请审批。"
 8
 9//反序列化workflowProperties.InitiationData以得到初始窗体的实例 
10XmlSerializer xs = new XmlSerializer(typeof(Init)); 
11if (workflowProperties.InitiationData != null
12
13XmlTextReader xtr = new XmlTextReader(new System.IO.StringReader(workflowProperties.InitiationData)); 
14Init init = (Init)xs.Deserialize(xtr); 
15
16//将初始窗体的信息赋给Task0 
17task0_Properties.Title = rejectItemTitle; 
18task0_Properties.AssignedTo = workflowProperties.Originator; 
19task0_Properties.ExtendedProperties["comments"= init.comments; 
20
21//设置Task1的标题和分配对象 
22task1_Properties.Title = approveItemTitle; 
23task1_Properties.AssignedTo = init.contact[0].AccountId; 
24}
 
25else 
26
27//将初始窗体的信息赋给Task0 
28task0_Properties.Title = rejectItemTitle; 
29task0_Properties.AssignedTo = workflowProperties.Originator; 
30task0_Properties.ExtendedProperties["comments"= "comments:"
31
32//设置Task1的标题和分配对象 
33task1_Properties.Title = approveItemTitle; 
34task1_Properties.AssignedTo = "contososrv\\pccai"
35}
 
36}
 
37
      导致这种原因不知如何更好的解决,其实最后把“新建项目是启动工作流”选项去掉,手动的启动,直接走/_layouts/IniWrkflIP.aspx...就可避免外,有出现了新的困惑:
    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前途无量!
posted @ 2007-08-27 02:16  pccai  阅读(1185)  评论(3编辑  收藏  举报