您的位置:首页 > 产品设计 > 产品经理

[jbpm]jBPM(十二): 流程运行的历史和轨迹与ProcessLog

2011-12-07 11:29 232 查看
 接触jBPM一段时间后,听说过jBPM不支持对流程运行的历史和轨迹的查看, 这样在项目中实现类似需求时也就没有硬从jBPM的API上去找这方面的些许支持, 而依照一些例子,直接做了个粗糙的扩展. 现在项目做完了, 在深入研究jBPM时,发现TaskAssignLog这么个类,从TaskAssignLog类开始追,追着追着,就又想起了这个问题,那么接着想: TaskAssignLog这个类对流程运行的历史和轨迹的解决是否有些启示?

   这得先从TaskAssignLog这个类的应用说起. 在jBPM(十):webSale的"页面流"介绍 中第五步的saveAndClose方法中,我们看到可以调用TaskAssignLog类的getTaskNewActorId方法得到流程下一负责人的 ID, 也就是下一节点分配给了谁. 那TaskAssignLog是怎么实现的? TaskAssignLog类本身又有什么功能? TaskAssignLog类的一些方法又是在整个jBPM环境中什么时候调用? TaskAssignLog的"家谱"是什么?

   在Eclipse里F4后, 得到如下所示的"家谱":

  


   我们看到TaskAssignLog是ProcessLog的子类. 从ProcessLog的名字上也大概能猜出它的作用: ProcessLog是用来记录--也就log--整个流程(process)执行过程中的相关信息. 不过从整个"家谱"来看, 没找到与流程运行的历史和轨迹相关的类.

   下图中我们看到TaskAssignLog是什么时候创建的, 这里以jBPM(十):webSale的"页面流"介绍 中第三步的startProcessInstance为例.   

  


   也就是说在新启动一个流程时,由TaskMgmtInstance调用setActorId时,jBPM会TaskAssignLog方式把新老actorID传过来以TaskAssignLog类实例保存下来.

   也就是说, 在process流动过程中, jBPM会以ProcessLog及其子类来记录执行信息. 按这个逻辑, 是否能加些ProcessLog子类来记录一个流程的运行的历史和轨迹呢?

   只是有这么个粗略的念头,先记下来,现在对jBPM的理解还差的太远,等日后理解加深了,再试着做这方面的扩展.
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: