NetBPM工作流Q&A(不断更新)Made by LuBen:2007年8月12日 |
目录前言在NetBPM的实践与应用中,大家一定会遇到各种各样的问题,笔者特建此帖, 聚集了一些典型问题,并作了初步解答。本帖将不断更新,大家有什么问题,可以在目录中寻找,若没有类似问题答案,欢迎留言讨论,对某些问题有好的解决方法等也可以留言,我将更新到目录中;-) 原文地址:http://www.cnblogs.com/LuBen/archive/2007/08/12/852382.html,转载就保留。 如何打包par包流程定义组件接口能够识别的包是zip压缩包,rar压缩包不能识别。 .par只是让流程定义压缩包区分其他压缩包的后缀,其实是不是.par不重要,重要的是zip压缩格式,并且包内文件结构符合nPdl要求。 所以要打包.par包,用普通压缩软件winrar进行zip压缩即可;-) 流程定义不支持中文?作为中国用户,在流程定义文件中使用中文是难以避免的,比如把流程的 名称取为"请假流程"而不是"holiday"。大家一定想到了XML编码,没错,把processdefinition.xml和webinterface.xml保存 为unicode编码就可以了(注:光在文件中这样写<?xml version="1.0" encoding="unicode" ?>是不行的,因为XML文件本身的编码格式也需要为unicode;-))。我们可以使用记事本打开XML文件,然后把编码如图所示改为unicode,然后保存即可: 流程图片大小不能超过8k?如果您使用的SQL Server2000数据库(其他数据库没有验证;-)),那么就会遇到一个问题: 流程图片大小不能超过8000字节,在web显示上也只能显示8000字节的图片;-) 为什么呢?实际上,如果图片超过8000字节,在流程定义包解析保存时, 数据库中也只保存了8000字节,多余的字节被忽略掉了,这是由于Nhibernate配置文件映射引起的。 解决的办法如下:修改Nhibernate映射文件ProcessBlockImpl.hbm.xml文件:
1
<
property 2 name ="Image" 3 type ="binary" 4 update ="true" 5 insert ="true" 6 column ="image" 7 /> 为:
2 name ="Image" 3 type ="BinaryBlob" 4 update ="true" 5 insert ="true" 6 column ="image" 7 /> |
frameborder="0" src="http://tpc.googlesyndication.com/safeframe/1-0-2/html/container.html#xpc=sf-gdn-exp-1&p=http%3A//www.cnblogs.com" id="google_ads_iframe_/1090369/cnblogs_blogpost_C1_sitehome_0" name="1-0-2;16367; scrolling="no" frameborder=0 height=0 width=0 src="http://cm.g.doubleclick.net/push?client=ca-pub-8579300389988819" style="position:absolute">
{"uid":1,"hostPeerName":"http://www.cnblogs.com","initialGeometry":"{\"windowCoords_t\":0,\"windowCoords_r\":1423,\"windowCoords_b\":7825,\"windowCoords_l\":0,\"frameCoords_t\":7108.46875,\"frameCoords_r\":511,\"frameCoords_b\":7358.46875,\"frameCoords_l\":211,\"styleZIndex\":\"auto\",\"allowedExpansion_t\":0,\"allowedExpansion_r\":0,\"allowedExpansion_b\":0,\"allowedExpansion_l\":0,\"xInView\":0,\"yInView\":0}","permissions":"{\"expandByOverlay\":true,\"expandByPush\":false,\"readCookie\":false,\"writeCookie\":false}","metadata":"{\"shared\":{\"sf_ver\":\"1-0-2\",\"ck_on\":1,\"flash_ver\":\"15.0.0\"}}","reportCreativeGeometry":false}" scrolling="no" marginwidth="0" marginheight="0" width="300" height="250" data-is-safeframe="true" style="border-width: 0px; vertical-align: bottom;">
评论
#1楼 2007-08-12 14:23 Ψιζσεα.
一定要用NHibernate么?
#2楼 2007-08-12 15:01 stillwater
为什么.NET没有好一点开源的自己的东东呢
#3楼 2007-08-13 08:29 bluebirdzx[未注册用户]
#4楼[楼主] 2007-08-13 08:54 LuBen
在我前面帖子“NetBPM的架构实现浅析”中有提到,Castle是NetBPM的IOC容器,而NHibernate是作为Castle的一个facility存在的,它是NetBPM的数据持久层。如果您不用NHibernate,需要更改其数据持久层;-)
#5楼[楼主] 2007-08-13 08:56 LuBen
赫赫,Castle算不算。JAVA比.NET先行,从JAVA借鉴优秀的东西就很自然了。;-)
#6楼[楼主] 2007-08-13 08:57 LuBen
是哈,NetBPM的中文资料实在是太少了,其获取的支持也没有JBPM多。关于它的可行性问题,缺点等,有时间我开个帖子,大家一起讨论;-)
#7楼[楼主] 2007-08-13 09:24 LuBen
关于NHibernate等组件的问题,我想下面这个对话(使用者Michael 和NetBPM作者Philipp之间的对话)可以给你答案:
问:
Hi Philipp,
You mentioned in a previous post that Relations existed in order to ensure objects were created by nhibernate properly. Relations are a core part of your system does this mean that you envisage NHibernate being an essential element. I'm currently evaluating whether to use netBPM on a project but I'm not using NHibernate, or rails, or the Castle containers. Looking at the interfaces it looks like it is possible not to use these components.. would you agree?
Kind Regards,
Michael
答:
Hi Michael
You are right. If you build our application you don’t need NHibernate. But internal netBPM uses NHibernate to translate the valueobjects into netBPM tables.
Castle is used to configure netBPM for instance Database or a custom assembly loader.
Monorail is only used for the web application. In my point of view the web application is only an example to see what is possible with the core API’s.
But you can develop your application with the tools you like to choose.
netBPM is facade to the other tools (NHibernate).
Regards Philipp
#8楼 2007-08-13 12:24 Ψιζσεα.
:) 谢谢
#9楼[楼主] 2007-08-21 09:20 LuBen
#10楼 2007-08-31 09:58 飞翔[未注册用户]
谢谢!
#11楼[楼主] 2007-09-06 08:50 LuBen
真不好意思,现在才回复你,这些天有些事情没有上网络。
NetBPM中对表单子元素的访问控制是通过流程定义时的field access限定,而对整个表单的访问控件、表单操作控制则是通过authorizationHandler检测
#12楼 2007-09-19 13:38 飞 翔[未注册用户]
#13楼[楼主] 2007-09-19 15:04 LuBen
你好;-)
一个组用户发起流程是什么样子的情形呢,让谁来提交表单?
也许这个可能出现在子流程中,子流程的发起者为一个用户群组。
其实实现是可以很灵活的,看我们如何定义流程执行者的表达式解析组件,NetBPM原来的组件比较简单,如果你要用自己的组织架构组件,肯定就会考虑自己的解析方式,那样子流程执行者是单个用户还是用户组或者其他就都在控制之中了。
#14楼 2007-09-19 17:09 飞 翔[未注册用户]
在NetBpm中是否可以对一个状态点设定时间,如果在这个点超过一定时间没有处理,流程流转到相应的点进行处理。
#15楼[楼主] 2007-10-22 16:32 LuBen
;-)
#16楼 2008-01-11 17:33 呆 呆[未注册用户]
can't instantiate delegate 'NetBpm.Example.LeaveOfAbsence.TextIntergerInput, NetBpm.Example.LeaveOfAbsence' : 未能加载文件或程序集“8000 bytes loaded from NetBpm, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null”或它的某一个依赖项。试图加载格式不正确的程序。
小弟认为这和你上面提到的<动态委托类>是同一个问题,但按照你说的方法修改后,问题还是不能解决.请大哥指点
#17楼[楼主] 2008-01-11 17:46 LuBen
是不是dll下载不完整?
或者是文中"action的参数不能超过3个"类似原因:
是因为加载的值比数据库字段设计的值要小, 在NBPM_DELEGATION表中cofiguration字段设计为255, 而加上第四个参数后, 加载的值已经超过了255,而在源码中并没有捕获ArgumentOutOfRangeException, 所以会报这个看似不相干的错误. 其他类似超过数据库字段设计都会报这个错误, 知道原因了, 修改即可.
#18楼 2008-02-26 14:04 micree[未注册用户]
我是用vs2003编译的,没用nant,请帮助我,多谢了!
2008-02-26 11:20:01,593 [2720] DEBUG NetBpm.Util.DB.DbSession [(null)] <(null)> - operation: find(from a in class NetBpm.Workflow.Organisation.Impl.ActorImpl where a.id = ?,value,type)
NHibernate.QueryException: persister not found: NetBpm.Workflow.Organisation.Impl.ActorImpl [from a in class NetBpm.Workflow.Organisation.Impl.ActorImpl where a.id = ?]
#19楼 2008-03-24 14:38 yunsi[未注册用户]
#20楼 2008-03-29 21:28 caidehui123[未注册用户]
#21楼 2008-04-09 00:03 蓝奇高级验证码识别引擎QQ:631753663[未注册用户]
输出为一个标准DLL,可供VB,VC,Delphi,C#.NET,VB.NET,模拟精灵,按键精灵等多平台调用,调用方法简单,几行代码即可完成。独具特色的边缘检测字符分离、旋转倾斜纠正和通用字符匹配算法(无论字体和大小), 使得该引擎对于像新浪、动网、淘宝、CSDN等多种验证码均有不错的识别率,是一款效果较为理想的验证码识别引擎。附详细的调用实例和代码注释等相关技术文档。
官方网站 - http://***/yzm_advocr
识别效果怎么样一试就知道 - DEMO下载 http://***/yzm_advocr/advocr.rar
#22楼 2008-08-04 15:50 Bob&xiaobo.liu
netbpm的安装和源码下载已经在网上找到相关资料完成啦 可不晓得去一步步的看懂代码(总想有个实现的例子去F11一步步走这看看)以及代码中使用的各种技术
#23楼 2008-09-03 15:47 zdq[未注册用户]
intro/index.rails
这个.
#24楼 2008-10-31 14:52 舰长[未注册用户]
#25楼 2008-11-12 11:08 123456abcd[未注册用户]
#26楼 2008-11-27 10:08 游客[未注册用户]
#27楼 2009-03-30 14:51 netbpm 新手[未注册用户]
#28楼 2009-07-28 16:01 Qingor[未注册用户]
本来就没有.rails文件的,monorail机制根据请求会自己找相应的controller中找到相应的函数的,结合vm文件返回相应的html代码,比如intro/performLogin.rails,那么在introcontroller下必然会有一个performLogin函数的
#29楼 2011-05-12 14:41 我每天都在进步o(∩_∩)o...
#30楼 2013-07-25 16:34 吴东雷