Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [henshin-dev] Multiplicity Contraint for Edges

Hi Andreas,

take a look at the attached screenshot. This rule matches an ExclusiveGateway that has exactly one incoming SequenceFlow. Note that the two forbid actions have different indizes (1 and 2). This is necessary to distinguish between two forbid patterns which should be checked individually. If you omit these indices, the match finder will try to find a match for all forbid-elements in the rule together.

If you use indizes, then it is basically like an AND: there should be no extra SequenceFlow AND there should be no NodeType with the same id.

If you omit the indizes it is basically like an OR: there should be either no SequenceFlow OR no NodeType with the same id.

In your case, you want an AND I think.

Hope that helps.

Cheers,
Christian


On 07/19/2012 12:29 PM, Andreas Drobisch wrote:
I want to match the gateways which have only one "incoming" SequenceFlow reference.  I did an intermediate step and wanted to forbid the match of exclusive gateways with a incoming sequence flow, but thats not working (see attached image), the node will always be created.

I am I missing something here? My other "forbid" works as expected.

On Wed 18 Jul 2012 03:43:08 PM CEST, Christian Krause wrote:
Hi Andreas,

On 07/18/2012 03:21 PM, wp1101223-androbit wrote:

Hi Henshin Devs,

first of all: Henshin is great :) . Currently I am trying to use it
to transform BPMN models to a graph exchange format.


Thanks.

I have managed the basic parts and now I am little bit stuck on
checking the multiplicity of edges. Is it possible to have an
contraint on the number of matching edges / nodes (see attached image)?


I am not 100% sure whether this is what you want to do, but if you
want to make sure that there exists only one SequenceFlow object with
a reference to the ExclusiveGate node, you can change the SequenceFlow
action to <<preserve>> (for the reference as well), and then add a
second SequenceFlow node and reference with the action <<forbid>>.

You can find a similar example here:
http://wiki.eclipse.org/Henshin_Trace_Model -- the difference is
though that in this case Trace objects are created only if they do not
exist yet. In your case you want to forbid the application if there is
at least one such object already.

I hope this helps. Let us know if this is not what you are trying to
achieve.

Cheers,
Christian

Best Regards,

Andreas



_______________________________________________
henshin-dev mailing list
henshin-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/henshin-dev



_______________________________________________
henshin-dev mailing list
henshin-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/henshin-dev




_______________________________________________
henshin-dev mailing list
henshin-dev@xxxxxxxxxxx
https://dev.eclipse.org/mailman/listinfo/henshin-dev

Attachment: test.png
Description: PNG image


Back to the top