<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    Oracle神諭

      BlogJava :: 首頁 :: 新隨筆 :: 聯(lián)系 :: 聚合  :: 管理 ::
      284 隨筆 :: 9 文章 :: 106 評論 :: 0 Trackbacks

    Assignment(分派)
    A process definition contains can have task nodes. A task-node contains zero or more tasks. Tasks are a static description as part of the process definition. At runtime, tasks result(起源于) in the creation of task instances. A task instance corresponds to(相應) one entry in a person's task list.
    tasknodes-->>task-node--->>tasks 

    With jBPM, push and pull model (see below) of task assignment can be applied in combination. The process can calculate(考慮) the responsible for a task and push it in his/her tasklist. Or alternatively(作為選擇), a task can be assigned to a pool of actors, in which case each of the actors in the pool can pull the task and put it in the actor's personal tasklist.  {這里提到了一個行為池的概念 pool of actors}

    9.3.1. Assignment interfaces
    Assigning task instances is done via the interface AssignmentHandler: {任務實例分派是依靠AssignmentHandler來實現(xiàn)的}

    public interface AssignmentHandler extends Serializable {
      void assign( Assignable assignable, ExecutionContext executionContext );
    }
    An assignment handler implementation is called when a task instance is created. At that time, the task instance can be assigned to one or more actors. The AssignmentHandler implementation should call the Assignable methods (setActorId or setPooledActors) to assign a task. The Assignable is either a TaskInstance or a SwimlaneInstance (=process role).

    Assignable 流程角色:TaskInstance  SwimlaneInstance

    public interface Assignable {
      public void setActorId(String actorId);
      public void setPooledActors(String[] pooledActors);
    }

    Both TaskInstances and SwimlaneInstances can be assigned to a specific user or to a pool of actors. To assign a TaskInstance to a user, call Assignable.setActorId(String actorId). To assign a TaskInstance to a pool of candidate(侯選) actors, call Assignable.setPooledActors(String[] actorIds).

    分配對象:
    分配給一個用戶       Assignable.setActorId(String actorId);
    分配給一個侯選用戶池 Assignable.setPooledActors(String[] actorIds);

    Each task in the process definition can be associated with an assignment handler implementation to perform the assignment at runtime.


    When more then one task in a process should be assigned to the same person or group of actors, consider the usage of a swimlane

    在一個流程當多于一個任務時應當被分派給一個用戶或多用戶的組,考慮使用泳道。

    To allow for the creation of reusable AssignmentHandlers, each usage of an AssignmentHandler can be configured in the processdefinition.xml. See Section 13.2, “Delegation(委托)” for more information on how to add configuration to assignment handlers.

    9.3.2. The assignment data model
    The datamodel for managing assignments of task instances and swimlane instances to actors is the following. Each TaskInstance has an actorId and a set of pooled actors.

    The actorId is the responsible for the task, while the set of pooled actors represents a collection of candidates that can become responsible if they would take the task. Both actorId and pooledActors are optional and can also be combined.


    Pull model(拉模式)
    On the other hand, the tasks of pooled tasks for a given user are the tasks for which the given user is referenced in the pooled actors.
    Fetching the list of pooled tasks is typically a two step operation :
    1) get all the groups for the given user from the identity component. and
    2) get the list of all pooled tasks for the combined set of the user's actorId and the actorId's that reference the users' groups.
     Getting the list of pooled tasks that are offered to a given user can be done with the methods TaskMgmtSession.findPooledTaskInstances(String actorId) or TaskMgmtSession.findPooledTaskInstances(List actorIds). These methods will only return task instances for which the actorId is null and one of the given actorIds matches one of the pooled actors.

    TaskMgmtSession.findPooledTaskInstance(String actorId)
    TaskMgmtSession.findPooledTaskInstance(List actorIds)

    To prevent multiple users working on the same pooled task, it is sufficient to update the actorId of the TaskInstance with the user's actorId. After that, the task instance will not appear in the list of pooled tasks, but only in the user's personal task list. Setting the actorId of a taskInstance to null will put the task instance back in the pooled tasks.

    posted on 2005-06-15 11:18 java世界暢談 閱讀(1557) 評論(0)  編輯  收藏 所屬分類: 工作流
    主站蜘蛛池模板: 亚洲午夜久久影院| 最新欧洲大片免费在线| 亚洲日本一区二区三区在线不卡| 亚洲第一香蕉视频| 亚洲一区二区三区日本久久九| 中文在线免费不卡视频| 国产精品视频免费| 亚洲中文无码永久免费| 亚洲精品午夜国产va久久| 中文无码日韩欧免费视频| 亚洲日韩国产精品第一页一区 | 亚洲午夜爱爱香蕉片| 一级特级aaaa毛片免费观看| 国产又大又黑又粗免费视频 | 免费国产成人α片| 亚洲第一福利视频| 中文字幕视频免费| 亚洲成人激情小说| 亚洲伊人成无码综合网| 国产免费网站看v片在线| 久久亚洲精品无码aⅴ大香| 免费观看成人毛片a片2008| 美女黄色毛片免费看| 亚洲丝袜中文字幕| 成人永久免费高清| 国产人成亚洲第一网站在线播放| 最好免费观看韩国+日本 | 中国内地毛片免费高清| 久久亚洲国产精品成人AV秋霞| 猫咪社区免费资源在线观看 | 看亚洲a级一级毛片| 中文字幕第13亚洲另类| 久视频精品免费观看99| 亚洲av日韩综合一区久热| 亚洲精品一级无码鲁丝片| 最近免费2019中文字幕大全| 亚洲av无码成人影院一区| 亚洲成av人在线视| 麻豆国产精品入口免费观看| 免费黄网站在线观看| 国产人成亚洲第一网站在线播放|