Legacy Issue Number: 19478
Source: hidera.nl ( Thijs Petter)
A HumanTask can have a reference to a performer role. But why was this not done at the level of the PlanItem?
E.g., i could have the same human task to review, referred to from 2 different plan items. In the first occurrence the review must happen by the role "knowledge worker", and if we plan the second plan item, the review must happen by the role "expert". It is the same human task, but to be done by someone else.
Same counts for 18.104.22.168 UserEventListener reference to role, again, it would be better to have this on PlanItem level.
Perhaps the best would be to apply a concept similar to what is done with ItemControl, where a plan item can override the default item control of a task.
Reported: CMMN 1.0 — Tue, 17 Jun 2014 04:00 GMT
Disposition: Closed; No Change — CMMN 1.1
Better to keep performer role to Human Task only
Human Task instances can be planned based on Plan Items, as well as Discretionary Items. As Human Task as PlanItemDefinition provides the definition for both, it was logical to at least link the Role there. And not to both of the others. But even when we would do it in all three, similar to the way ItemControl is used (with default in the PlanItemDefinition), we would still have a problem with the use of Role in relation to TableItem, where Role reference is used to specify whether a user is authorized to plan. And it should be possible also, when the PlanningTable is owned by a the HumanTask, that the performerRole of the HumanTask would be one of the Roles that are authorized to plan. The ItemControl-like solution would not work in relation to TableItem. Hence it is best to link the Role to HumanTask (as PlanItemDefinition), and not to PlanItem etc.
And this “limitation” should not cause a problem, because when different “instances” of Tasks (as PlanItems) should be performed by different persons, this is possible, by assigning the Role to different organization roles or users. This assignment is outside the scope of CMMN. When it is really required that different Roles (functional and design-time Roles) perform the Tasks, then different Tasks (as PlanItemDefinitions) can be defined. This should not be a problem.
More-over, even when we would link Role to PlanItem, the model would be complicated further, as we would also have to specify constraints, as we cannot link Roles to any PlanItem, but only to PlanItems of the PlanItemDefinition kind of HumanTask and UserEventListener. And furthermore: for different types of PlanItems, the Role reference would be named differently, like performerRole versus roleRefs, etc. It would become more complicated, and we better want to avoid that.
And after all, the issue does not look like that important, as, based on what is suggested above, there are sufficient ways to use CMMN to achieve what you want here.
Updated: Tue, 29 Mar 2016 15:06 GMT