流程代码如下:

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. [实变函数]5.5 Riemann 积分和 Lebesgue 积分

    1 记号: 一元函数 $f$ 在 $[a,b]$ 上的 (1)Riemann 积分: $\dps{(R)\int_a^b f(x)\rd x}$; (2)Lebesgue 积分: $\dps{(L)\ ...

  2. D触发器

    普通的电路,以及常规的逻辑门都有一个共性,那就是输出直接依赖于输入,当输入消失的时候,输入也跟着不存在了.触发器不同,当它触发的时候,输出会发生变化.但是,当输入撤销之后,输出依然能够维持. 这就是说 ...

  3. iis7 500错误日志报 LOG_FILE_MAX_SIZE_TRUNCATE

    参考:http://blogs.iis.net/robert_mcmurray/freb-log-file-max-size-truncate cd /d "%windir%\system3 ...

  4. Java 内存泄露

    一.Java内存回收机制 不论哪种语言的内存分配方式,都需要返回所分配内存的真实地址,也就是返回一个指针到内存块的首地址.Java中对象是采用new或者反射的方法创建的,这些对象的创建都是在堆(Hea ...

  5. cvc-elt.1: 找不到元素 'beans' 的声明

    这次遇到的这个错误又坑爹又低级 , 是因为网上抄到了错误的xsd搞的. 这是网上抄到的 xsi:schemalocation=" http://www.springframework.org ...

  6. 树莓派自身摄像头的opencv调用

    很多人知道,opencv不能直接对树莓派原装摄像头进行调用,因为raspicam不是V4L驱动,怎样才能使用树莓派原装摄像头,它可比多数usb摄像头清晰和小巧. 具体方法,给树莓派原装摄像头安装一个可 ...

  7. Java队列集合的性能测试

    同时开10个线程存入和取出100万的数据,结论如下: DoubleBufferedQueue < ConcurrentLinkedQueue < ArrayBlockingQueue &l ...

  8. 设置oracle_home

    set ORACLE_HOME=F:\app\rh\product\11.2.0\dbhome_1

  9. [Java] File文件列表

    package test.file; import java.io.File; import java.io.FilenameFilter; /** * 文件列表,文件过滤 * @author Fro ...

  10. ElasticSearch 概述

    简介 Elasticsearch是一个基于Lucene的开源搜索引擎.Elasticsearch也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RES ...