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