<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://bpmnbox.org/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://bpmnbox.org/feed.php">
        <title>BPMNbox - en:rule</title>
        <description>Best BPMN Practices</description>
        <link>https://bpmnbox.org/</link>
        <image rdf:resource="https://bpmnbox.org/_media/wiki/logo.png" />
       <dc:date>2026-04-18T09:49:16+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://bpmnbox.org/en/rule/use-default-flow-only-in-executable-models?rev=1743495895&amp;do=diff"/>
                <rdf:li rdf:resource="https://bpmnbox.org/en/rule/veto?rev=1736356095&amp;do=diff"/>
                <rdf:li rdf:resource="https://bpmnbox.org/en/rule/attached_timer?rev=1732718879&amp;do=diff"/>
                <rdf:li rdf:resource="https://bpmnbox.org/en/rule/start_and_end_of_process?rev=1732714958&amp;do=diff"/>
                <rdf:li rdf:resource="https://bpmnbox.org/en/rule/structured_diagram?rev=1732711707&amp;do=diff"/>
                <rdf:li rdf:resource="https://bpmnbox.org/en/rule/different_rhytms?rev=1730544892&amp;do=diff"/>
                <rdf:li rdf:resource="https://bpmnbox.org/en/rule/control_branch?rev=1730543781&amp;do=diff"/>
                <rdf:li rdf:resource="https://bpmnbox.org/en/rule/explicit_parallel_merge?rev=1727348098&amp;do=diff"/>
                <rdf:li rdf:resource="https://bpmnbox.org/?image=en%3Arule%3Ahugebpmn.png&amp;ns=en%3Arule&amp;rev=1706198968&amp;tab_details=history&amp;media_do=diff&amp;do=media"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://bpmnbox.org/_media/wiki/logo.png">
        <title>BPMNbox</title>
        <link>https://bpmnbox.org/</link>
        <url>https://bpmnbox.org/_media/wiki/logo.png</url>
    </image>
    <item rdf:about="https://bpmnbox.org/en/rule/use-default-flow-only-in-executable-models?rev=1743495895&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-04-01T08:24:55+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>Use default flow only in executable models - [Use default flow only in executable models] </title>
        <link>https://bpmnbox.org/en/rule/use-default-flow-only-in-executable-models?rev=1743495895&amp;do=diff</link>
        <description>Use default flow only in executable models

default_flow

Use default flow outgoing from the exclusive gateway only if the model to be executed by a process engine.

✔ How to

Executable model:

Non-executable model:

Notes

	*  When used in the executable model, the default flow guarantees that the process will continue even if there is a mistake in the flow conditions. E.g. there may be a gateway controlled by a boolean attribute stored in a database. Process designer may define flow condition…</description>
    </item>
    <item rdf:about="https://bpmnbox.org/en/rule/veto?rev=1736356095&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-01-08T17:08:15+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>Use a subprocess with a terminate or error error event to model veto power - [0-TBD Rule name] </title>
        <link>https://bpmnbox.org/en/rule/veto?rev=1736356095&amp;do=diff</link>
        <description>Use a subprocess with a terminate or error error event to model veto power

subprocess terminate_event error_event

✔ How to

See also

	*  Error event may be used to model business exceptions

Author(s)

 --- Anatoly Belaychuk 2025-01-08 20:03</description>
    </item>
    <item rdf:about="https://bpmnbox.org/en/rule/attached_timer?rev=1732718879&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-27T14:47:59+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>Don&#039;t use timer event to depict expected activity duration - created</title>
        <link>https://bpmnbox.org/en/rule/attached_timer?rev=1732718879&amp;do=diff</link>
        <description>Don&#039;t use timer event to depict expected activity duration

event timer_event attached_event

Use text annotation and/or task properties to show expected activity duration.

Use attached timer to show what should be done if the activity lasts longer than allowed.

✔ How to

✘ How NOT to</description>
    </item>
    <item rdf:about="https://bpmnbox.org/en/rule/start_and_end_of_process?rev=1732714958&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-27T13:42:38+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>Make process start and end explicit - created</title>
        <link>https://bpmnbox.org/en/rule/start_and_end_of_process?rev=1732714958&amp;do=diff</link>
        <description>Make process start and end explicit

event start_event end_event

Always depict start and end events.

✔ How to

✘ How NOT to

Notes

According to  BPMN spec start and end events aren&#039;t obligatory -
an activity without incoming sequence flows is treated as implicit process start, activity without outgoing sequence flows is implicit end.
However it&#039;s better to avoid such diagrams because they may be misunderstood.</description>
    </item>
    <item rdf:about="https://bpmnbox.org/en/rule/structured_diagram?rev=1732711707&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-27T12:48:27+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>Follow structured modeling rules - [✘ How NOT to] </title>
        <link>https://bpmnbox.org/en/rule/structured_diagram?rev=1732711707&amp;do=diff</link>
        <description>Follow structured modeling rules

subprocess gateway loop

Leverage structured blocks and subprocesses.

✔ How to

Sequence:

Selection, parallel, conditionally parallel:

Cycles - explicit, loop, multi-instance:

Subprocess, call activity:

✘ How NOT to

Process will hang out at the parallel merge:</description>
    </item>
    <item rdf:about="https://bpmnbox.org/en/rule/different_rhytms?rev=1730544892&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-02T10:54:52+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>Activities performed in different rhytms belong to different processes - [Notes] </title>
        <link>https://bpmnbox.org/en/rule/different_rhytms?rev=1730544892&amp;do=diff</link>
        <description>Activities performed in different rhytms belong to different processes

process collaboration

If one activity is performed once per month and another every time a client&#039;s order received then there are two different processes.

✔ How to



✘ How NOT to

Notes

From performers&#039; (organizational, functional) point of view, they update the price list first, then develop the sales plan and finally fulfill the deal.
Yet BPMN diagram should be treated literally so if we depict the process this way (se…</description>
    </item>
    <item rdf:about="https://bpmnbox.org/en/rule/control_branch?rev=1730543781&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-02T10:36:21+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>A subprocess and a control branch may be used as an alternative to the attached event - [Edit diagram] </title>
        <link>https://bpmnbox.org/en/rule/control_branch?rev=1730543781&amp;do=diff</link>
        <description>A subprocess and a control branch may be used as an alternative to the attached event

subprocess event attached_event terminate_event

Use a subprocess containing the control branch to implement versatile event processing logic.

✔ How to

Let&#039;s assume that we need to obtain payment from the client, watch the payment due date and talk with the customer in case of delay. Use the following technique:</description>
    </item>
    <item rdf:about="https://bpmnbox.org/en/rule/explicit_parallel_merge?rev=1727348098&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-26T10:54:58+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>Make parallel merge explicit - [See also] </title>
        <link>https://bpmnbox.org/en/rule/explicit_parallel_merge?rev=1727348098&amp;do=diff</link>
        <description>Make parallel merge explicit

parallel_gateway sequence_flow terminate_event

Use parallel gateway to merge parallel flows.

✔ How to

✘ How NOT to

Task with two incoming flows will be executed twice.
Probably this wasn&#039;t your intention.

Executing this model by BPMS would lead to misreporting - doubled number of end events.</description>
    </item>
    <item rdf:about="https://bpmnbox.org/?image=en%3Arule%3Ahugebpmn.png&amp;ns=en%3Arule&amp;rev=1706198968&amp;tab_details=history&amp;media_do=diff&amp;do=media">
        <dc:format>text/html</dc:format>
        <dc:date>2024-01-25T16:09:28+00:00</dc:date>
        <dc:creator>Anatoly Belaychuk (bell@undisclosed.example.com)</dc:creator>
        <title>hugebpmn.png - created</title>
        <link>https://bpmnbox.org/?image=en%3Arule%3Ahugebpmn.png&amp;ns=en%3Arule&amp;rev=1706198968&amp;tab_details=history&amp;media_do=diff&amp;do=media</link>
        <description>&lt;img src=&quot;https://bpmnbox.org/_media/en/rule/hugebpmn.png?w=500&amp;amp;h=500&amp;amp;tok=4e51bd&quot; alt=&quot;hugebpmn.png&quot; loading=&quot;lazy&quot; width=&quot;500&quot; height=&quot;500&quot; /&gt;</description>
    </item>
</rdf:RDF>
