Sparx Systems Forum

Enterprise Architect => General Board => Topic started by: Adam@Schneider on November 13, 2014, 06:25:14 pm

Title: BPMN relocating elements
Post by: Adam@Schneider on November 13, 2014, 06:25:14 pm
I've noticed a quirk, if you create a BPMN process diagram, any elements you drop on it move to where the diagram is located within the project tree, if you move them back to their correct home in the project tree and then move them on a diagram they relocate next to the diagram again.

Why? and is this a user setting?
Title: Re: BPMN relocating elements
Post by: ducatiross on November 16, 2014, 11:11:37 pm
I've had exactly the same thing Adam. See my post http://www.sparxsystems.com/cgi-bin/yabb/YaBB.cgi?num=1416086349

It's so annoying and wastes a lot of time moving things back to where they should be in the project browser.

This is a serious bug that needs to be fixed as it is essential that a project can be organised correctly in order to aid object re-use and management.
Title: Re: BPMN relocating elements
Post by: ducatiross on November 16, 2014, 11:45:51 pm
Doing a quick bit of testing, and it seems to not have this issue in Builds 1106 and 1112 when using a .EAP file as the repository, but it does in build 1112 when using a SQL Server database instead.

What repository type are you using Adam ?
Title: Re: BPMN relocating elements
Post by: qwerty on November 17, 2014, 05:34:36 am
It surely does not depend on the repository type. Sparx has done a lot of work in direction of BPMN. You should both report a bug.

q.
Title: Re: BPMN relocating elements
Post by: Eve on November 17, 2014, 09:15:03 am
What are you trying to re-use? What's the circumstance?

BPMN requires any activity to belong to a single process, but a process can be re-used by referencing it with a pool. Just as a Pool belongs to a single collaboration, but it can represent a PartnerEntity or PartnerRole, either of which can be used across multiple collaborations.
Title: Re: BPMN relocating elements
Post by: Adam@Schneider on November 17, 2014, 12:09:10 pm
We are on EA build 1110 and an SQL server repository.

I'll report a bug, there are 2 main reasons we arrange all activities in a single place, firstly the same process can be shown on multiple different diagrams, we might have a very big diagram showing everything, and cut down diagrams that go in certain document sections that are more focussed.

Second, following on from that we pool all activities under a single root so we can easily fire up the relationship matrix to view or assign requirements traceability. This also helps in document generation for example to generate a traceability table.

I dont mind that creating the activities on the diagram puts them with the diagram, but if they are manually moved away, or put onto another diagram (which for example may be in a sub package for doc gen formatting/heading purposes) moves the element then I think its wrong, it was put where it is for a reason.
Title: Re: BPMN relocating elements
Post by: ducatiross on November 19, 2014, 01:41:35 am
To add to Adam's comments I have some elements that I want to use on any diagram, of any type, such as an Entity that I can flag with a status of 'Incomplete' which I then drag onto any diagram from my 'General' package. I then remove it from the diagram when I have finished drawing it.

By keeping it in my 'General' package, I can quickly locate it and do 'Find in all diagrams' to show me which diagrams I still have work to do on. This works fine for all diagram types except BPMM where once dragged onto one of these, the element is moved from the 'General' package and re-located in the package where the diagram is. This makes it very hard to find the next time I want to use it on any diagram.

Specifically related to BPMN diagrams, I created a folder/package called 'Swimlanes' where I put all the lanes I need. I also have over 40 other packges containing diagrams related to specific processes. Once I drag a swimlane from the 'Swimlane' package into one of these diagrams, the swimlane itself is re-located to the package containing the diagram I have just dragged it on to.

This is bad enough when there is one person doing the modelling, but in a team environment, where people need to know where to find common elements, it is completely unmanageable.

Matthew
Title: Re: BPMN relocating elements
Post by: Eve on November 20, 2014, 09:00:42 am
Quote
Specifically related to BPMN diagrams, I created a folder/package called 'Swimlanes' where I put all the lanes I need. I also have over 40 other packges containing diagrams related to specific processes. Once I drag a swimlane from the 'Swimlane' package into one of these diagrams, the swimlane itself is re-located to the package containing the diagram I have just dragged it on to.

This is bad enough when there is one person doing the modelling, but in a team environment, where people need to know where to find common elements, it is completely unmanageable.
As I said, BPMN is very clear that swimlanes are not common elements.
Quote
a Pool belongs to a single collaboration, but it can represent a PartnerEntity or PartnerRole, either of which can be used across multiple collaborations.

Title: Re: BPMN relocating elements
Post by: OpenIT Solutions on November 20, 2014, 11:32:35 pm
Hi Simon,

One thing for Sparx to consider - a lot of customers will have configured their repositories to work with the behavior exhibited by the Sparx version they started with; for us this was 9.3. In 9.3 as you will know the BPMN behavior was different to 11/12.

The issue I face now is that I can't upgrade to 11 or 12; for various reasons we do reuse pools/lanes from a central library of lanes/pools....main reason being that we need standard names displayed on pools/lanes as they represent external parties and internal teams/orgnisational units respectively in our model - so the names need to be consistent (on the face of our diagrams). I can't let modellers add local/new lanes to a diagram and give them a random name.

I know they can set the role/entity/participant ref (defined in a library)... and that I could reliably query this. However when set, this doesn't appear on the diagram; so anyone looking at the diagram only will see the random name the modeler might have given the lane.

What would be good in this regard (pool/lane naming) is that if the name was left blank, but the role/entity/participant ref is set - it is displayed as the name...then I could migrate over to using bpmn as sparx/spec intends. Does this make sense ? Do you understand the dilemma/problem in this case ?

Another thing I've noticed in v12 is that if I add a pool to a diagram sparx magically moves my diagram under a CollaborationModel element. Again this may be as per bpmn spec (although in this case i'd question that) - but it causes issues for those that have written reports/analytics/training etc to use the behavior of previous versions of Sparx.

What we need when Sparx adds these great new features - is a way of turning them off if required. Is there a configure option available to turn of this new behavior (CollaborationModel being added). I also need to be able to stop Sparx moving activities under pools/lanes as child elements when they are placed in the pool/lane....

Appreciate your feedback.
Title: Re: BPMN relocating elements
Post by: Eve on November 21, 2014, 08:58:55 am
Quote
What we need when Sparx adds these great new features - is a way of turning them off if required. Is there a configure option available to turn of this new behavior (CollaborationModel being added). I also need to be able to stop Sparx moving activities under pools/lanes as child elements when they are placed in the pool/lane....
I understand what you're saying, and why you are requesting it. We did consider this issue, and our initial plans were changed after consultation with someone else in much the same position. Ultimately though, we needed to elevate our BPMN support from drawing a picture to creating a model.

Showing the entity/role name on a diagram doesn't seem unreasonable. However, a simpler solution to the pool naming problem is to tell your modellers what is expected. If you can't trust them to name something correctly, can you trust anything else that you've done.

The problem with adding an option to keep the old behavior, is that kind of thing drastically increases code, user interface and testing complexity. Each option of that sort added makes issues with one setting or the other that much more likely.
Title: Re: BPMN relocating elements
Post by: OpenIT Solutions on November 21, 2014, 09:39:23 pm
Hi,

I appreciate that having an option to disable behavior adds to code/testing complexity. But to be blunt without it we will not be able to upgrade beyond v10 and would thus look for a new tool.

As a company we hold circa 1200 Sparx licenses. We have invested $100sK in building circa 6000 process maps over the last three years, along with scripts, reports, model structure etc to support our modelers. The cost of reworking all this to fit with your changes is prohibitive.

Given the seriousness of the issue we face - I have sent a direct email/request to Sparx.

I'm responding here as well as i'm sure many other members of the community will have similar concerns regarding changes in behavior between releases. I'd encourage them to voice them.

Title: Re: BPMN relocating elements
Post by: ducatiross on November 22, 2014, 12:27:43 am
Quote
Ultimately though, we needed to elevate our BPMN support from drawing a picture to creating a model.

OK, I admit I am not the world's best BPMN modeller, but I don't understand what you are saying here. A Swimlane represents the activities of a particular role. That role may be engaged in many disparate processes, modelled in many independent diagrams, but they should all use the same Swimlane for the same Role, so you know, as a totality, what actions/messages/data that role interacts with and can re-use those item in any other diagram that needs that Lane. Thus, you have modelled, rather than simply drawn.

How does allowing a lane to exist in an owning package (where EVERYONE knows where to find it) independent of any specific diagram put this 'model' at risk ?

Are you really saying that each process requires a new Swimlane for the same role because it represents a different interaction/collaboration ? Just looking for some clarification here.

thanks

Matthew
Title: Re: BPMN relocating elements
Post by: ducatiross on November 22, 2014, 12:29:50 am
Quote
The cost of reworking all this to fit with your changes is prohibitive.

I'm with you on this one ! Updates should, unless it is totally unavoidable, be backwards compatible to protect customer's investment.
Title: Re: BPMN relocating elements
Post by: Eve on December 03, 2014, 03:35:07 pm
We have someone looking into what the negative impact of not moving Pools would be. I can't promise a timeframe, but we have heard your concerns.

Quote
A Swimlane represents the activities of a particular role.
Assuming you're talking about a Pool, that's not quite true. A Pool represents the activities of a participant (either an entity or role) in a particular collaboration. Which is why BPMN specifies that it is always owned by the collaboration.

Quote
That role may be engaged in many disparate processes, modelled in many independent diagrams
Exactly, which is whythere are PartnerRole/PartnerEntity elements which a Pool can reference.

Quote
but they should all use the same Swimlane for the same Role, so you know, as a totality, what actions/messages/data that role interacts with and can re-use those item in any other diagram that needs that Lane.
The problem with this is that if in two different diagrams you send a message to this pool (ie. MessageFlow) the model can't distinguish which collaboration each message is part of (without looking at the other end.) Unfortunately, if you've done this the model and any documentation generated from it is either wrong or simply misleading.

You would have the same issue using Classes on a UML Communication diagram instead of creating Objects with the appropriate Classifier set.

Quote
But to be blunt without it we will not be able to upgrade beyond v10 and would thus look for a new tool.
...
The cost of reworking all this to fit with your changes is prohibitive.
Obviously, we don't want that, but to be equally blunt. Without these changes there's almost1 no way that you could export your model and expect another tool to import it in a useable fashion.  We put a lot of effort into version 11.1 to ensure that it could round-trip BPMN models in the standard format. The changes that were made to modelling in 11.1 where what was required to help create models that you would be able to export to an execution engine or other tool.

If you tried exporting to another tool from EA 11.1 without changing your model you will mostly get individual processes across. At a minimum I would expect all the Pool linkages to be broken and need to be recreated. If you tried that from EA 11.0 or earlier I would expect it to be even worse.

If you updated your model and exported with EA 11.1, I would expect most of the model to make it intact2. From what I've seen of the BPMN MIWG wiki there's usually some diagram differences too, which vary depending on tool. Unfortunately, we don't have our test results up there yet, but in my opinion we are among the best.

-----

1 It's possible that some other BPMN tool has explicitly written an importer for our BPMN models that takes the same assumptions about how pools are used that you have done into account.

2 Depending on the capabilities of the other tool of course.
Title: Re: BPMN relocating elements
Post by: OpenIT Solutions on December 03, 2014, 09:31:02 pm
Hi,

Quick update on this - I raised a registered support query - sparx have responded indicating that the issues I raised will be addressed in v12 (or shortly after)....which is great - so thank you Sparx .


Regards,


Jon.
Title: Re: BPMN relocating elements
Post by: Svend Erik Nygaard on December 04, 2014, 03:22:07 am
Link a swimlane to its performer by Ctrl+L  (Instance Classifier)
I never reuse swimlanes (pools or lanes). But I link each swimlane to its performer by setting its instance classifier to a UML element - business actor or other business object (e.g. baggage belt) performimg the activities in that swimlane.
This may not be a BPMN feature but a UML feature (?). But it Works nicely (so far?) in EA. And the performer is displayed on the diagrams like: "Swiwlane Name : Performer". Sometimes I leave the swimlane name empty - but if I can I give it a name representing the activities in the swimlane.
This also works nicely in the traceability window. For each actor I can see the set of performed swimlanes across processes - and the activities withing each of the swimlanes. In that window, the benefit of naming each swimlane for its own context really shows.
I imagine a BPMN export will ignore this instance classifier (?)
I hope this will still be supported (?)
... or that the proper BPMN entity/rolename will displayed on diagrams in upcoming versions
Title: Re: BPMN relocating elements
Post by: Eve on December 16, 2014, 05:24:35 pm
If you are following this thread, please download release candidate 1 and try the BPMN functionality.

If we don't hear back we will be forced to assume that there are no complaints with the direction we are heading...
Title: Re: BPMN relocating elements
Post by: ducatiross on December 16, 2014, 09:00:05 pm
Quote
If you are following this thread, please download release candidate 1 and try the BPMN functionality.

If we don't hear back we will be forced to assume that there are no complaints with the direction we are heading...

Downloading it now Simon !
Will let you know.
Title: Re: BPMN relocating elements
Post by: ducatiross on December 16, 2014, 10:08:18 pm
Quote
Link a swimlane to its performer by Ctrl+L  (Instance Classifier)This also works nicely in the traceability window. For each actor I can see the set of performed swimlanes across processes - and the activities withing each of the swimlanes.

Svend - I've tried this just now and don't see any reference to the Lane in the Traceability window when I have the actor selected. I located the lane in the browser, did CTRL-L, and linked in the Actor, but when selecting the actor and going to the traceability window, there was no evidence of it being linked in any way to the lane. Am I doing something wrong ?
Title: Re: BPMN relocating elements
Post by: VK on December 17, 2014, 08:46:47 am
Quote
I located the lane in the browser, did CTRL-L, and linked in the Actor, but when selecting the actor and going to the traceability window, there was no evidence of it being linked in any way to the lane.

Try selecting Classifiers in the Relationship Selector ( the button before the Help button in the Traceability window toolbar )
Title: Re: BPMN relocating elements
Post by: Eve on December 17, 2014, 10:56:50 am
Regarding the suggestion of a classifier for Pools/Lanes, one of this things discussed when working on build 1204 was pretty much that.

A Pool has properties partnerEntity and partnerRole. These refer to the specific entity or general role being played by this pool. In that way their meaning is very similar to a classifier. We've made a change so that if no name is specified for a Pool, these values will be displayed on the diagram instead. Using a UML classifier notation when a name was present was considered, but it didn't feel right.

A Pool also has a processRef property, instead of being like a classifier, that is about specifying the behavior of the Pool.

As for Lanes, the partitionElementRef can be used in a similar way, and we've handled the notation in the same way as Pools above. According to the specification it's actually about dividing the FlowElements into the appropriate lane. For that reason I recommend specifying a ResourceRole element, because the only way I can see it doing its job is to set the resources property of an activity to match.

Having said all that, these links will not currently show up in the traceability window.
Title: Re: BPMN relocating elements
Post by: ducatiross on December 17, 2014, 07:55:29 pm
Quote
Having said all that, these links will not currently show up in the traceability window.

Simon - This seems like a way forward to relate activities to the role responsible for performing them, but may be of limited use if they are not available in either the Properties dialog or shown in the Traceability window. Is there a plan to make them accessible ? How else can they be viewed or queried ?

As regards Release 12 Candidate 1, I downloaded and tried this quickly yesterday, and it seems that it no longer forces elements to be located in the area where the diagram is. This is good because it enables us to maintain a strict project structure that facilitates teamwork and re-use. I'd be happy with that. Particular as some elements I want to put on the BPMN diagrams are nothing to do with BPMN objects (like Issues and other 'generic' elements).
Title: Re: BPMN relocating elements
Post by: Svend Erik Nygaard on December 18, 2014, 03:20:20 am
I currently also use classifier with data objects and data stores though.
Going through the BPMN suggested links, e.g.:
DataObject.itemSubjectRef -> ItemDefinition.structureRef -> Class
... is quite cumbersome, AND besides the ekstra Work it also results in:
- poor visibility of the mapping
- looong chain in the mapping traceabilitiy
Title: Re: BPMN relocating elements
Post by: Mhatch on January 01, 2015, 06:16:47 am
If someone could report on the status of these three 'bugs/features' in the release candidate it would be appreciated (I cannot install it due to locked down workstation).  I'm currently using version 11.1.1112.

1. Existing items dropped onto a BPMN model are moved to the package where the model resides (Bad!).  
2. When adding a pool to a diagram, a new CollaborationModel is added as the parent of the working diagram (Confusing.)
3. The default properties page of BPMN objects is the BPMN properties, rather than the general page. (Annoying.)
4. After changing an Intermediate Event BPMN Type to something other than the default (blank), it is not possible to change it back.

Thanks!
-Mike
Title: Re: BPMN relocating elements
Post by: MMA on January 02, 2015, 02:01:35 pm
Hi Mike,

Issue #1 #2 was resolved in 1113

Issue #3 was resolved in 12 RC. Then General page and the BPMN properties are on the same page.

About #4: the Intermediate Event you are talking about is Edge mounted (or boundary event). According to BPMN 2.0 Specification, Table 10.89 – Intermediate Event Types in Normal Flow

The None Intermediate Event is only valid in normal flow, i.e., it MAY
NOT be used on the boundary of an Activity. Although there is no specific
trigger for this Event, it is defined as throw Event.


So this is a feature to guide us to build a syntax correct model.

Hope that helps ;)
Miles
Title: Re: BPMN relocating elements
Post by: Eve on January 12, 2015, 04:03:06 pm
Quote
About #4: the Intermediate Event you are talking about is Edge mounted (or boundary event). According to BPMN 2.0 Specification, Table 10.89 – Intermediate Event Types in Normal Flow
If you want your model to be incompletely specified for any reason you can open the tagged values docked window and set eventDefinition to None.
Title: Re: BPMN relocating elements
Post by: llsempro on March 02, 2018, 02:26:09 am
@Simon:
WHY don't the resource references show up in relationship or traceability matrix?  How can I view all processes where a BPMN resourceRole is reused?  Or see all of the activities that are in a resourceRole across multiple processes? 
Title: Re: BPMN relocating elements
Post by: Geert Bellekens on March 02, 2018, 02:40:37 am
@Simon:
WHY don't the resource references show up in relationship or traceability matrix?  How can I view all processes where a BPMN resourceRole is reused?  Or see all of the activities that are in a resourceRole across multiple processes?

Don't you think it's a better idea to start a new topic instead of replying to a 3 year old topic about something only slightly related?

Geert