任务与外部系统数据结合问题
|
matikak
2008-07-24
问题描述:
当上一个任务处理完成之后,进入下一个任务,在这个任务里有这样的要求: 1.当外部系统提供数据数据过来后,再触发这个任务,并指定任务处理人 2.如果外部数据没有提供过来,任务进入等待状态,外部系统一旦提供数据,就后台进行数据处理,再指派任务处理人 注:这里的外部系统是指另一个系统 现在不大理解的是:JBPM如何进入任务等待状态,外部系统提供了数据过来以后,用什么方式进行后台数据处理,处理完了以后再指派任务处理人 各位达人,提供点方案吧,在此先谢过了 建议什么的都行,大家一起讨论一下这种方式,:) |
|
|
上杉t
2008-07-24
先关闭task-node的创建任务的能力,然后给这个节点加一个任务调度(timer).每隔多长时间去查一下外部数据,数据来了再创建任务.指定人员
|
|
|
matikak
2008-07-24
先关闭task-node的创建任务的能力?
怎么理解,可以说细一些吗 |
|
|
上杉t
2008-07-24
举个例子
<task-node name="aaa" create-tasks="false"//不由节点创建任务> <timer duedate="20 seconds" repeat="10 seconds">//定时器每10秒执行actionA <action class="actionA">//查询外部数据库,创建任务,指定人员的类 </action> </timer> <task name=""></task>//你的任务 </task-node> 定时器的格式不一定对,手写的.只表示这意思. |
|
|
matikak
2008-07-24
明白你的意思了,那关健就在我这个action处理了,等待数据的支待等等
|
|
|
上杉t
2008-07-24
外部数据 你总要自己查到没到吧,所以要定时查一下.你总不是想用"推"的方式吧.那不大可能.你每隔一定时间查一下外部数据是否到达.到到达了就做下面的事情呗.
还是我没明白你到底要做什么 |
|
|
matikak
2008-07-24
客户想用推的方式,我也认为不可行,那就相当于外部因素来驱动流程了,什么时候驱动,怎么驱动,驱动的标志是什么等等,都是问题,你说到的方案我也有想过,试着写个小demo看看。
刚去你的blog上看了下,写的不错啊,看样子,是个jbpm的老手啊,呵呵,支持你的,期待你的大作,哈 |
|
|
上杉t
2008-07-24
如果要用推的方式,就要在外面写独立的逻辑,这个逻辑应该是写在你能获取信号到来的方法里,jbpm任务还是让他不自己创建,就那样等着.你那个类等信号来了 就要遍历所有在跑的流程,找到匹配的任务节点,创建任务.
你不让流程知道外部数据,就得要外部数据知道要创建那些任务 |
|
|
skllb
2008-07-24
推也可以的, 转换一下思路,让接入系统推到另外一个标示点上 ,你这边还是同样的定时查询,只不过查询的是你的标示点上了。
|
|
|
matikak
2008-07-25
这个节点我该怎么定义呢
<task-node name="enternal data done" create-tasks="false"> <task name="enternalDone"></task> <timer duedate="20 seconds" repeat="10 seconds"> <action class="com.action"> </action> </timer> <transition to="Evaluate Apply Infomation" name="done over"></transition> </task-node> 这样的话,进入这个节点的时候,是启动不了timer的,怎么修改呢 |

