NetBpm如何指定下一流程处理人(8)
NETBPM如何指定下一流程处理人
本着“软件以应用为本”(潘加宇老师对我的影响在这一点上很深。)的原则,我为ERP搭建了一个用NETBPM作的支持网站,想着能够看着软件得以应用,自是非常高兴。 不过,这个工作流的缺点也是显然的,如何在流程中让上一操作者指定下一个操作者就是一个难点,因为根据预先的组织关系进行的分派很有可能出现流程无法进行下去的危险,这样就会限制软件的应用。想着netbpm脱胎于jbpm,我就想找找答案。当然有很多此类文章,不过,还是没有找到好使的。 于是,只好自己思考了。我觉得有三个解决办法:一是在流程中让用户指定一个actor,不过要增加一些处理的类;二是利用action来进行处理;三是采用decision的方式来判断。 对于第二种思路,我检查代码,发现行不通。原因是我想在事件before-activitystate-assignment触发对actor赋值,但是这两者是分开发生的,无法先行赋值给一个actor,造成了actor的Null值错误。开始还想直接通过数据库进行赋值,通过查询attribute的位置,将值赋好,不过这是绝对违背软件的原则的,而且也行不通。 第三种方法还来不及细想,只好回到第一种方法上来。我想的是直接让用户选择下一个actor。开始想在序列化的时候保存actor.id即可,谁知道总是报错,序列化行不通。只好改在htmlformatter上想办法,竟然成功!非常简单,又容易理解,嘿嘿,看来走了不少弯路。 代码如下: public String ObjectToHtml(Object valueObject, String parameterName, System.Web.HttpRequest request)
{ System.String temp = "";
IList users=OrganisationUtil.Instance.FindAllUsers();
System.String text = "<select name=\"" + parameterName + "\" >";
foreach(IUser user in users)
{
temp="";
temp="<option value=\""+user.Id+"\">"+user.FirstName+user.LastName+"</option> ";
text+=temp;
}
text+="</select>";
return text;
} public Object ParseHttpParameter(String text, System.Web.HttpRequest request)
{
IUser user=OrganisationUtil.Instance.GetUser(text);
return user;
} 当然,如何取得所有的用户,需要增加一个方法即可。 解决此问题,耗时6个小时,觉得又增加了一些功力一般。挺高兴的。 注意:发现一个group下一个用户只能有一个role,不然无法查找group. 感谢网上许多的文章,让netbpm变得有点用了。
NetBpm如何指定下一流程处理人(8)的更多相关文章
- css border-bottom(指定下边线的样式、宽度及颜色)
border-bottom(指定下边线的样式.宽度及颜色) border-bottom: 值: border-bottom-style:值; border-bottom-color: 值; borde ...
- 墨菲定律:当你觉得一个地方可能有bug,那么这个地方就会有bug----顺带了解下Tomcat那少有人注意的localhost.log
一.问题概述 题目有点长,但应该值得后端java们了解下有点小坑的localhost.log,让我长话短说. 博主是搞java后端的.后台是很简单的spring mvc + spring框架. 今天测 ...
- N层电梯只停一层情况下,求所有人爬楼层数最少
一.题目: 石家庄铁道大学基础教学楼一共有四部电梯,每层都有人上下,电梯在每一层都停.信1201-1班张一东每层都停有点儿不耐烦.如果在上下课高峰时刻电梯从一层上行,但只允许停留在某一层.每个人选择自 ...
- code -结合实例总结代码下拉流程
1.查看手机需要的版本 1)如果手机本来就可以正常工作,可以使用指令 zhangshuli@zhangshuli-MS-:~/Desktop/day_note/plan$ adb shell getr ...
- 【Java面试】为什么引入偏向锁、轻量级锁,介绍下升级流程
Hi,我是Mic 一个工作了7年的粉丝来找我,他说最近被各种锁搞晕了. 比如,共享锁.排它锁.偏向锁.轻量级锁.自旋锁.重量级锁. 间隙锁.临键锁.意向锁.读写锁.乐观锁.悲观锁.表锁.行锁. 然后前 ...
- imx6q uboot启动流程牛人的图片(转)
- DEBUG模式下屏蔽某些烦人的动态日志信息
以上就是控制台循环打印的日志信息,总是会刷屏干扰到那些有用的日志信息,所以要把它们屏蔽掉,虽然如果将log级别调成info级别可以不显示了,但是那样的话,别的有用的日志信息就无法显示了. 要有针对性的 ...
- android下网络通信流程
新版本android中进行socket编程有了新的要求和规定,在主线程中不能进行socket的创建和通信.所以一般都在线程中使用socket编程 这样在线程中使用就需要出现子线程与主线程交互的问题. ...
- Java学习日记基础篇(三-下)——流程控制之循环控制
循环控制 for循环 语法: for(循环初值;循环条件;步长) { 语句; //循环体 } 例子: import java.io.*; public class Demo4 { public sta ...
随机推荐
- PCL点云曲面重建(1)
在测量较小的数据时会产生一些误差,这些误差所造成的不规则数据如果直接拿来曲面重建的话,会使得重建的曲面不光滑或者有漏洞,可以采用对数据重采样来解决这样问题,通过对周围的数据点进行高阶多项式插值来重建表 ...
- 基于octree的空间划分及搜索操作
(1) octree是一种用于管理稀疏3D数据的树形数据结构,每个内部节点都正好有八个子节点,介绍如何用octree在点云数据中进行空间划分及近邻搜索,实现“体素内近邻搜索(Neighbors wi ...
- css限制显示字数,文字长度超出部分用省略号表示【转】
为了保证页面的整洁美观,在很多的时候,我们常需要隐藏超出长度的文字.这在列表条目,题目,名称等地方常用到. (1).文字超出一行,省略超出部分,显示'...' 如果这种情况比较多,可以取一个切合作用的 ...
- CSS2.0中最常用的18条技巧
一.使用css缩写 使用缩写可以帮助减少你CSS文件的大小,更加容易阅读. 具体内容请浏览:CSS常用缩写语法 二.明确定义单位,除非值为0. 忘记定义尺寸的单位是CSS新手普遍的错误.在HTML中 ...
- Windows IOT 开发入门(准备工作)
终于抽出空来了,将最近研究的东西记录下来,物联网,万物皆可联网.然后可以做到智能家居,智能生活,智能城市....一大堆.吹牛的就不说了. 在实际应用中都是一个个小的传感器在收集数据,同时把数据直接或者 ...
- MyBatis中对于字符串blank(null、empty)的判定方法
直接上代码,关键需要进行2个判定,一个是null判定,一个是 ‘’ 判定. <where> <if test="url!= null and url!=''"&g ...
- Intellij修改模板代码
比如class的注释之类的,直接地址为 其中Include才是真正的内容
- 深入探讨:MySQL数据库MyISAM与InnoDB存储引擎的比较
From: http://www.jb51.net/article/37766.htm MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种.这里介绍关于这两种引擎的一些基本概念(非深 ...
- JSP九大内置对象与Servlet学习笔记[转]
我们常说的JSP有九大内置对象分别为:request.response.session.out.pagecontext.page.exception.application.config. 我们知道, ...
- Scala学习笔记——安装
安装scala,不要使用sudo apt-get install scala来安装 1.从下面网址来下载Scala文件 http://www.scala-lang.org/download/2.11. ...