流程代码如下:

1>LeiSheng.WorkFlow.FlowInfo fInfo = new LeiSheng.WorkFlow.FlowInfo();
                2>string nextNodeId = flowProxy1.getNextNodeIdStr("0", flowProxy1.FlowId);
                3>bool isOk = PFlowReceive.SelectReceiveUser(flowProxy1.FlowNodeId, nextNodeId, ref fInfo);
                4>if (!isOk) return;

5>flowProxy1.startFlow(flowProxy1.FlowId, PSystemInfo.CurrentUserID, "##PPK:" + textEdit2.Text, fInfo, "");
                MessageBox.Show("申请成功!");

报错1:未将对象引用到对象的实例;

报错代码: 2>string nextNodeId = flowProxy1.getNextNodeIdStr("0", flowProxy1.FlowId);
经调试发现   flowProxy1.FlowId  为“”;

解决方法为:流程控件 flowProxy1 的属性 DbConnStr未正确设置,且值“ Data Source=LS_192_168_20_192;User ID=kgcoa;Password=cskgcoa;”前面有“ ”空格,但不知是不是有关系,所有我也将连接串前加了空格。

第二步:修改app配置文件,应该添加工作流的web服务。

完整的文件如下:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="LASTLOGINUSER" value=""/>
    <add key="INPUTLANGUAGE" value=""/>
    <add key="DEBUG" value="1"/>
    <add key="SKINNAME" value="Blue"/>
    <add   key="WsUrl"   value=">
    <add   key="WsName"   value="Service"></add>
  </appSettings>
</configuration>

并修改服务的数据连接为该项目的数据库。

当做完这步的时候会继续报错。没关系,我们再添加一个刷新流程的语句。

//刷新流程
                flowProxy1.RefreshAllTmpltEmlt();

将这段代码放在启动流程的最前面,也就是第一行,实例化一个流程信息类的前面。

flowProxy1.RefreshAllTmpltEmlt();

1>LeiSheng.WorkFlow.FlowInfo fInfo = new LeiSheng.WorkFlow.FlowInfo();

然后我们再删除一个程序集文件。

bin\Debug\flowproxy.dll

然后动行项目,继续启动流程。当第一次启动的时候会继续上次的错误,其实这是在启动并生成dll的时候,程序没有调用到flowproxy.dll,这时个我们在报错之后停电调试,再次启动流程,这次就不要删除程序集文件了。

我们会发现可以刷新流程,flowProxy1.FlowId也会有模版值。nextNodeId 值 为“”,可以继续往下运行,当到了startFlow的时候又报错了“模版ID未装入内存”。

分析:

因为在画流程图保存的时候会生成一个流程模版,这时候模版的别名是1。(模版别名是唯一标识,当一个模版修改了多次后,会有多个别名,但只有一个模版ID)

而启动流程时根据模版ID找不到当前的模版。

我们在后台将数据库的模版别名改为和模版ID一致就可以了。表workflow_template_info

启动项目

仍然在startFlow时报错。创建主键失败!!!!

因为启动流程会生成一条新的数据在业务数据库里,而生成主键的序列在业务数据库中没有,所以我们要在业务数据库中添加一个序列COMM_INSTID,

具体的序列属性我们可以在92服务器中的gzl用户中找到这个序列。

启动流程就可以成功流转了。

【注】原文创建于百度日期2012-03-21,现在不用百度了

最新文章

  1. EasyUI、Struts2、Hibernate、spring 框架整合
  2. BZOJ 1040 树形DP+环套树
  3. ARP协议和DNS协议对比
  4. node.js中使用node-schedule实现定时任务
  5. PPPOE协议
  6. sql server 创建文件组,文件
  7. Wordpress 运行缓慢的解决方法
  8. 云平台编程与开发(七)-使用X5Cloud云平台开发网络彩讯
  9. ionic框架,快速开发webAPP神器。
  10. Kinect开发笔记之二Kinect for Windows 2.0新功能
  11. 代理模式与Android
  12. Dynamics CRM 部署NLB后使用群集名称访问弹验证框验证不过的解决方法
  13. 【Unity技巧】四元数(Quaternion)和旋转
  14. 使用 ASP.NET Core MVC 创建 Web API(三)
  15. Apache Hadoop 2.9.2 的YARN High Available 模式部署
  16. 封装nodeJS中 $on $emit $off 事件
  17. 细说javascripe事件传播流程
  18. JS判断当前设备是 PC IOS Andriod
  19. spring cloud (二、服务注册安全demo_eureka)
  20. phpstudy 安装 Apcahe SSL证书 实现https连接

热门文章

  1. linux命令(11)下查看和添加环境变量
  2. Java 查看死锁的方法
  3. [Java] java中方法可以重载
  4. Servlet中读取参数的几种方式
  5. 浅谈Dynamic 关键字系列之一:dynamic 就是Object(转)
  6. Delphi调用外部程序函数:WinExec() 和ShellExecute详解
  7. Wireshark的时间格式设置
  8. (转)adb shell am 的用法
  9. JavaScript对象的创建之基于构造方法+原型方式
  10. HDU1116图论