Author Topic: BPMN Object Reuse  (Read 3650 times)

Michael L. Preiss

  • EA Novice
  • *
  • Posts: 1
  • Karma: +0/-0
    • View Profile
BPMN Object Reuse
« on: December 03, 2020, 04:58:12 am »
I'm so confused...  ??? ??? ???

I'm trying to figure out how to reuse various objects (roles, lanes, etc.) in different diagrams. In one post (https://www.sparxsystems.com/forums/smf/index.php/topic,38775.msg240645.html#msg240645), Eve said (last reply) that pools, lanes, and events are not reusable. In another post, Geert said that, according the BPMN spec, you're not supposed to reuse BPMN elements because they only live inside each instance of a process.

In other posts, I've read that there are various ways to effect reuse:
  • You can create a clone of an object, but that's not really reuse (or is it?) because you're essentially creating a new object (different GUID) with the same name. How does EA know the cloned object references the original object? Does the cloned object contain the GUID of the original? Are the partnerRef and partnerEntity TVs filled out with the original object's name? I know I should check this myself, but I'm in the middle of a deliverable my client wants yesterday.
  • You can drag an object from the project onto a different diagram and create a link to the original object. I've done this in the past.
  • You can create an alias (I think).
  • If you have pools and lanes defined in a project catalog, you can create a new pool or lane in a diagram and use the partnerEntity/partnerRef TVs to make the name of the newly created pool or lane display there. Again, it doesn't seem like it's truly reusing the original object, just reusing its name.
  • Cephus Consulting demostrates different ways to reuse EA BPMN objects, including pools and lanes, in one or two videos. But they were made using older versions of EA; I don't know if anything has changed in newer versions of EA relative to the way EA manages BPMN objects or allows them to be managed (meaning reused).
Would someone tell me if my understanding of the concept of reuse and how it's accomplished in EA using BPMN offbase? Under which circumstances would someone prefer to use one method over another? The answer is probably a hearty, "It depends."

As a side note, I was playing with reusing data stores by creating a new data store as a DataStoreReference and then inserting (by picking the object in the popup project browser) into the dataStoreRef field one of the data stores in my catalog. The name displayed on the data store reference object remained blank (I deleted the default name associated with the object as you would with lanes and pools). Am I doing something wrong? I would hope it's a bug so I can shift the blame to EA instead of my lack of knowledge.
Thanks for any help anyone can provide!

Michael

Thanks

qwerty

  • EA Guru
  • *****
  • Posts: 13584
  • Karma: +396/-301
  • I'm no guru at all
    • View Profile
Re: BPMN Object Reuse
« Reply #1 on: December 03, 2020, 07:40:44 am »
Reuse means you put a light on the same thing in different ways. That's good for classes which you can put in different contexts where you show collaboration with different classes/sub domains. Objects however represent something concrete. They are created especially for ONE scenario where you will use them. Reuse of an object rarely makes sense and often it's plain wrong (life lines in SD MUST not be reused). It's fairly simple if you take it this way.

q.

Geert Bellekens

  • EA Guru
  • *****
  • Posts: 13404
  • Karma: +567/-33
  • Make EA work for YOU!
    • View Profile
    • Enterprise Architect Consultant and Value Added Reseller
Re: BPMN Object Reuse
« Reply #2 on: December 03, 2020, 06:02:08 pm »
The 'reuse' part is where you reference or call existing things.

This works in BPMN with
- Business Processes (they can be called from an Activity using the tag calledActivityRef )
- Global task (similar to Business Process, but atomic)
- Messages (reference via the MessageRef tag on messageFlow)
- PartnerRoles and PartnerEntities used in Pools via the corresponding tags
- These same PartnerRole or PartnerEntities used in Lanes using the tag partionElementRef

BPMN is a lot like Activity Diagrams in UML. You don't reuse an action outside of it's owning activity either.

The problem with BPMN in EA is that EA doesn't force you to use it correctly, and there are a lot more ways to do it wrong then there are to do it right.
It took me a few years to figure out how it really should be used.
I still have a few customers who use BPMN somewhat wrong (but are now so invested it is not worth the trouble to correct the models)

It's not too bad to use it wrong, as long as you are aware of where you are diverting from the standard.
Not using the standard may result in problems when upgrading to a new version, or trying to exchange the model with another BPMN aware tool, or...

Geert

Marc Lampron

  • EA User
  • **
  • Posts: 20
  • Karma: +0/-0
    • View Profile
Re: BPMN Object Reuse
« Reply #3 on: February 21, 2024, 08:08:08 am »
Hi,
To my understanding, the following video from CEPHAS Consulting is still the best explanation on how to model processes using BPMN notation with Enterprise Architect (v15 and v16)
https://www.sparxsystems.com/resources/webinar/partners/introduction/business-process-models-using-enterprise-architect.html

I wish it could be simpler (Pool & Lane with PartnerRoleRef, PartnerEntityRef, etc.) but it is what it is: a BPMN metamodel implemented on top of an UML tool based on the MOF metamodel.  Even ArchiMate suffer from the same approach. BPMN and ArchiMate diagrams are instance models but UML diagrams are mostly class models.