流程代码如下:

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,现在不用百度了

sotower1.5-LS_工作流容易出错的地方的更多相关文章

  1. python序列元素引用容易出错的地方

    python序列分列表和元组,不同之处在于元组的元素不能修改.元组使用小括号,列表使用方括号.元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可.举个简单的例子,a1是一个元组,a2是一个列表 ...

  2. 使用Storyboard拖线容易出错的地方

    使用Storyboard拖线容易出错的地方: 在Storyboard中,选中某个控件,按住ctrl键进行拖线,建立Outlet和Action后,不能手动再去修改自动生成的代码,然后再次进行连线,这样会 ...

  3. 如果$.ajax函数迟迟得不到响应,那么最有可能出错的地方是请求参数写错了

    如下的$.ajax函数 $.ajax({ url: url,// 请求的地址 data:{id:id,pieceId:pieceId,pieceDesc:pieceDesc,actualStock:a ...

  4. Java向前引用容易出错的地方

    所谓向前引用,就是在定义类.接口.方法.变量之前使用它们,例如, class MyClass { void method() { System.out.println(myvar); } String ...

  5. c语言几个松散的地方(不足的地方,不严谨的地方,它容易出错的地方)。

    c语言是面向过程的语言,是弱类型语言,c语言的源代码基本就是无数个函数的堆砌.即很多函数就组成c语言源代码了,也即它的源代码基本就是函数构成的. C语言里面的test()和test(void)是不一样 ...

  6. delphi中 dataset容易出错的地方

    最近写delphi项目,用到的数据集中的dataset,一直修改exception啊,写下过程. 在对数据集进行任何操作之前,首先要打开数据集.要打开数据集,可以把Active属性设为True,例如: ...

  7. linux 上操作常用的命苦与出错的地方

    帮助信息 ./configure -help|grep mysql 出错提示安装libxml2 tar -zxvf libxml2xxxx.tar cd libxml2xxx ./configure ...

  8. 转: jdbc连接数据库需要注意和出错的地方

    * 1.数据库登录模式不能只使用windows登录模式,要采取混合模式登录, * 并记住相应的密码和账户: * 2.连接数据库后一定要记得关闭资源,否则就会造成资源浪费. * 关闭的时候也要注意顺序, ...

  9. C语言极易出错的地方(更新中)

    1 时刻记住C语言风格的字符串是以'\0'结尾,无论是在内存的分配还是字符串的赋值上都需要注意

随机推荐

  1. svn 中 版本回退

    譬如有个文件,有十个版本,假定版本号是1,2,3,4,5,6,7,8,9,10. Revert to this revision: 如果在版本6这里点击“Revert to this revision ...

  2. iOS 版本更新检查

    #pragma mark ---------------------------------- #pragma mark -- 检测版本更新 -(void)onCheckVersion { NSDic ...

  3. linux内核设计与实现--进程管理

    进程就是出于执行期的程序.进程的另一个名字是任务. 执行线程,简称线程(thread),是在进程中活动的对象.每个线程都有一个独立的程序计数器.进程栈和一组进程寄存器.内核调度的对象是线程,而不是进程 ...

  4. [Java] 过滤流BufferedInputStream和BufferedOutputStream

    package test.stream; import java.io.BufferedInputStream; import java.io.BufferedOutputStream; import ...

  5. [ActionScript 3.0] AS3 实现XML转换成JSON

    package com.fylib.util { /** * @author Frost.Yen * @E-mail 871979853@qq.com * @create 2015-6-18 下午2: ...

  6. JAVA继承时this和super关键字

    JAVA继承时this和super关键字 本文主要讨论在方法前使用this或super关键字时,编译器在什么地方查找对应的函数. 在子类中指定this关键字.首先在本类中查找,如果本类中找不到,再在父 ...

  7. XEP-0079

    XEP-0045: 多用户聊天 摘要: 本文定义了一个XMPP协议扩展用于多用户文本会议.即多个XMPP可以在一个房间或频道互相交流信息, 类似互联网中继聊天系统(IRC).还有标准聊天室功能如聊天室 ...

  8. hive处理hbase数据

    CREATE EXTERNAL TABLE table1( key string, zoneid int, result int, ) STORED BY 'org.apache.hadoop.hiv ...

  9. 【转】maven POM.xml 标签详解

    http://blog.csdn.net/sunzhenhua0608/article/details/32938533 pom作为项目对象模型.通过xml表示maven项目,使用pom.xml来实现 ...

  10. SQLServer 索引以及视图

    业务 主键: 索引: 锁: ========================================= 一个页分为 页头 页体--存储行 页尾 页是有固定大小的,但是数据不一定存满,有可能产生 ...