Elbonian Bureau of Investigations
The Elbonian Bureau of Investigations has several district offices "serving" all parts of the homeland. Each office is associated with a specific set of coterminous postal codes i.e. given a postal code one can determine which office has local authority.
An office is organized by "desks" to which cases are assigned. For the most part, each desk corresponds to a staff member e.g. by assigning a case to desk JB001 you effectively assign the case to staff member John Bravo. However, some "desks" correspond to a team e.g. the CNTRFT desk corresponds to the Counterfeiting team furthermore each district office has a CNTRFT desk made up of different staff members.
What I want to know is, can jBPM5 (or BPM in general) be applied to this problem? So here are some requirements:
The users of the system are registered in an IAM system which grants them privileges at different levels, however the correspondence between users and desks is not rigorously maintained. When a user signs in, they are asked to enter the desk they represent. Apparently they can enter anything and it won't be verified. They can enter a fictitious desk id should they choose to.
When the user signs in, they see all cases assigned to their office plus all cases assigned to their desk i.e. the one they just entered. Some privileged users have the ability to assign cases to desks. Some of these cases are not assigned at the time, others are reassigned.
A privileged user can also request a case be transferred to another office (perhaps because the subject of the investigation has moved to a different postal code). When this transfer is requested, then the other office can either accept or reject the transfer. If the office accepts the transfer, it then "belongs" to the "new" office and if a desk had been assigned to it (at the "old" office) then the case is no longer assigned to that desk.
Regarding desks -- it would appear the system knows nothing about most desks (except possibly well-known ones such as CNTRFT) except to the extent that users enter the codes when signing in and cases are assigned to them. So it might be possible to create fictitious desks.
New cases are created as a consequence of action items. An action item is like, somebody calls the bureau to report suspicious activity. When an action item is opened, one of two things happens a.) it is associated to an existing case or b.) no such case is found and an new case is created. So the life cycle of a case begins when its creation is triggered by opening an action item. Once created, the case can have additional action items associated with it. Action items stay open until resolved. When the last open action item associated to a case is closed, the associated case is also closed. So the life cycle of a case is driven by the life cycle of its action items.
It should be somewhat clear that resolution of action items is the responsibility of the desk to which their associated case is assigned. If the case is reassigned or transferred, then all its action items become the responsibility of the next desk to which the case is assigned.
Note also that cases are not created or closed directly, only as a consequence of action items being created or closed. However cases are assigned and transferred, not action items.
Can these processes be modeled in BPM?