Don't use "flows with diamonds"
Avoid conditional flows outgoing from activities, use gateways instead.
✔ How to
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxkZWZpbml0aW9ucyB4bWxucz0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9NT0RFTCIgeG1sbnM6YnBtbmRpPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L0RJIiB4bWxuczpvbWdkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIHhtbG5zOm9tZ2RjPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9ERC8yMDEwMDUyNC9EQyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgaWQ9InNpZC0zODQyMmZhZS1lMDNlLTQzYTMtYmVmNC1iZDMzYjMyMDQxYjIiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2JwbW4uaW8vYnBtbiIgZXhwb3J0ZXI9Imh0dHA6Ly9icG1uLmlvIiBleHBvcnRlclZlcnNpb249IjAuMTAuMSI+CiAgPHByb2Nlc3MgaWQ9IlByb2Nlc3NfMXZ6NjRsbyI+CiAgICA8dGFzayBpZD0iQWN0aXZpdHlfMDEzMWlsYiI+CiAgICAgIDxvdXRnb2luZz5GbG93XzFlbTZvODY8L291dGdvaW5nPgogICAgPC90YXNrPgogICAgPHRhc2sgaWQ9IkFjdGl2aXR5XzAzMTdvMjgiIG5hbWU9IkRvIHRoaXMiPgogICAgICA8aW5jb21pbmc+Rmxvd18wNGlzNG00PC9pbmNvbWluZz4KICAgIDwvdGFzaz4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMDRpczRtNCIgbmFtZT0iaWYgdGhpcyIgc291cmNlUmVmPSJHYXRld2F5XzBnbjlyOXEiIHRhcmdldFJlZj0iQWN0aXZpdHlfMDMxN28yOCIgLz4KICAgIDx0YXNrIGlkPSJBY3Rpdml0eV8wZmtnZGMxIiBuYW1lPSJEbyB0aGF0Ij4KICAgICAgPGluY29taW5nPkZsb3dfMDJ1NDlydDwvaW5jb21pbmc+CiAgICA8L3Rhc2s+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzAydTQ5cnQiIG5hbWU9ImlmIHRoYXQiIHNvdXJjZVJlZj0iR2F0ZXdheV8wZ245cjlxIiB0YXJnZXRSZWY9IkFjdGl2aXR5XzBma2dkYzEiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzFlbTZvODYiIHNvdXJjZVJlZj0iQWN0aXZpdHlfMDEzMWlsYiIgdGFyZ2V0UmVmPSJHYXRld2F5XzBnbjlyOXEiIC8+CiAgICA8aW5jbHVzaXZlR2F0ZXdheSBpZD0iR2F0ZXdheV8wZ245cjlxIj4KICAgICAgPGluY29taW5nPkZsb3dfMWVtNm84NjwvaW5jb21pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzAydTQ5cnQ8L291dGdvaW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18wNGlzNG00PC9vdXRnb2luZz4KICAgIDwvaW5jbHVzaXZlR2F0ZXdheT4KICA8L3Byb2Nlc3M+CiAgPGJwbW5kaTpCUE1ORGlhZ3JhbSBpZD0iQnBtbkRpYWdyYW1fMSI+CiAgICA8YnBtbmRpOkJQTU5QbGFuZSBpZD0iQnBtblBsYW5lXzEiIGJwbW5FbGVtZW50PSJQcm9jZXNzXzF2ejY0bG8iPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iQWN0aXZpdHlfMDEzMWlsYl9kaSIgYnBtbkVsZW1lbnQ9IkFjdGl2aXR5XzAxMzFpbGIiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMjYwIiB5PSIxNTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iODAiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1OU2hhcGUgaWQ9IkdhdGV3YXlfMHdjYWY3NV9kaSIgYnBtbkVsZW1lbnQ9IkdhdGV3YXlfMGduOXI5cSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI0MTUiIHk9IjE2NSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8wZmtnZGMxX2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMGZrZ2RjMSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIzOTAiIHk9IjI2MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbCAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8wMzE3bzI4X2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMDMxN28yOCI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIzOTAiIHk9IjQwIiB3aWR0aD0iMTAwIiBoZWlnaHQ9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5TaGFwZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wNGlzNG00X2RpIiBicG1uRWxlbWVudD0iRmxvd18wNGlzNG00Ij4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNDQwIiB5PSIxNjUiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjQ0MCIgeT0iMTIwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSI0NDYiIHk9IjE0MiIgd2lkdGg9IjI3IiBoZWlnaHQ9IjE0IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTkVkZ2U+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMDJ1NDlydF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMDJ1NDlydCI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjQ0MCIgeT0iMjE1IiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSI0NDAiIHk9IjI2MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbD4KICAgICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iNDQ2IiB5PSIyMjQiIHdpZHRoPSIyOCIgaGVpZ2h0PSIxNCIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzFlbTZvODZfZGkiIGJwbW5FbGVtZW50PSJGbG93XzFlbTZvODYiPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIzNjAiIHk9IjE5MCIgLz4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iNDE1IiB5PSIxOTAiIC8+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgPC9icG1uZGk6QlBNTlBsYW5lPgogIDwvYnBtbmRpOkJQTU5EaWFncmFtPgo8L2RlZmluaXRpb25zPgo=
✘ How NOT to
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxkZWZpbml0aW9ucyB4bWxucz0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9NT0RFTCIgeG1sbnM6YnBtbmRpPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L0RJIiB4bWxuczpvbWdkaT0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREkiIHhtbG5zOm9tZ2RjPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9ERC8yMDEwMDUyNC9EQyIgeG1sbnM6eHNpPSJodHRwOi8vd3d3LnczLm9yZy8yMDAxL1hNTFNjaGVtYS1pbnN0YW5jZSIgaWQ9InNpZC0zODQyMmZhZS1lMDNlLTQzYTMtYmVmNC1iZDMzYjMyMDQxYjIiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2JwbW4uaW8vYnBtbiIgZXhwb3J0ZXI9Imh0dHA6Ly9icG1uLmlvIiBleHBvcnRlclZlcnNpb249IjAuMTAuMSI+CiAgPHByb2Nlc3MgaWQ9IlByb2Nlc3NfMXZ6NjRsbyI+CiAgICA8dGFzayBpZD0iQWN0aXZpdHlfMDEzMWlsYiI+CiAgICAgIDxvdXRnb2luZz5GbG93XzA0aXM0bTQ8L291dGdvaW5nPgogICAgICA8b3V0Z29pbmc+Rmxvd18wMnU0OXJ0PC9vdXRnb2luZz4KICAgIDwvdGFzaz4KICAgIDx0YXNrIGlkPSJBY3Rpdml0eV8wMzE3bzI4IiBuYW1lPSJEbyB0aGlzIj4KICAgICAgPGluY29taW5nPkZsb3dfMDRpczRtNDwvaW5jb21pbmc+CiAgICA8L3Rhc2s+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzA0aXM0bTQiIG5hbWU9ImlmIHRoaXMiIHNvdXJjZVJlZj0iQWN0aXZpdHlfMDEzMWlsYiIgdGFyZ2V0UmVmPSJBY3Rpdml0eV8wMzE3bzI4Ij4KICAgICAgPGNvbmRpdGlvbkV4cHJlc3Npb24geHNpOnR5cGU9InRGb3JtYWxFeHByZXNzaW9uIiAvPgogICAgPC9zZXF1ZW5jZUZsb3c+CiAgICA8dGFzayBpZD0iQWN0aXZpdHlfMGZrZ2RjMSIgbmFtZT0iRG8gdGhhdCI+CiAgICAgIDxpbmNvbWluZz5GbG93XzAydTQ5cnQ8L2luY29taW5nPgogICAgPC90YXNrPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18wMnU0OXJ0IiBuYW1lPSJpZiB0aGF0IiBzb3VyY2VSZWY9IkFjdGl2aXR5XzAxMzFpbGIiIHRhcmdldFJlZj0iQWN0aXZpdHlfMGZrZ2RjMSI+CiAgICAgIDxjb25kaXRpb25FeHByZXNzaW9uIHhzaTp0eXBlPSJ0Rm9ybWFsRXhwcmVzc2lvbiIgLz4KICAgIDwvc2VxdWVuY2VGbG93PgogIDwvcHJvY2Vzcz4KICA8YnBtbmRpOkJQTU5EaWFncmFtIGlkPSJCcG1uRGlhZ3JhbV8xIj4KICAgIDxicG1uZGk6QlBNTlBsYW5lIGlkPSJCcG1uUGxhbmVfMSIgYnBtbkVsZW1lbnQ9IlByb2Nlc3NfMXZ6NjRsbyI+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8wMTMxaWxiX2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMDEzMWlsYiI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIyNjAiIHk9IjE1MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iQWN0aXZpdHlfMDMxN28yOF9kaSIgYnBtbkVsZW1lbnQ9IkFjdGl2aXR5XzAzMTdvMjgiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMzkwIiB5PSI0MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbCAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8wZmtnZGMxX2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMGZrZ2RjMSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIzOTAiIHk9IjI2MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbCAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTkVkZ2UgaWQ9IkZsb3dfMDRpczRtNF9kaSIgYnBtbkVsZW1lbnQ9IkZsb3dfMDRpczRtNCI+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjMxMCIgeT0iMTUwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIzMTAiIHk9IjgwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIzOTAiIHk9IjgwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIzMjYiIHk9IjgzIiB3aWR0aD0iMjciIGhlaWdodD0iMTQiIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18wMnU0OXJ0X2RpIiBicG1uRWxlbWVudD0iRmxvd18wMnU0OXJ0Ij4KICAgICAgICA8b21nZGk6d2F5cG9pbnQgeD0iMzEwIiB5PSIyMzAiIC8+CiAgICAgICAgPG9tZ2RpOndheXBvaW50IHg9IjMxMCIgeT0iMzAwIiAvPgogICAgICAgIDxvbWdkaTp3YXlwb2ludCB4PSIzOTAiIHk9IjMwMCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbD4KICAgICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMzI2IiB5PSIyODMiIHdpZHRoPSIyOCIgaGVpZ2h0PSIxNCIgLz4KICAgICAgICA8L2JwbW5kaTpCUE1OTGFiZWw+CiAgICAgIDwvYnBtbmRpOkJQTU5FZGdlPgogICAgPC9icG1uZGk6QlBNTlBsYW5lPgogIDwvYnBtbmRpOkJQTU5EaWFncmFtPgo8L2RlZmluaXRpb25zPgo=
Notes
- It's sometimes argued that conditional flows saves one element (the gateway) and hence makes the diagram simpler. This argument is hardly acceptable because the gateway adds value to the diagram by making process execution logic clear.
- Conditional flows outgoing from an activity are idependent, hence the inclusive gateway in the “How to” diagram above.
See also
Автор(ы)
— Anatoly Belaychuk 2024-01-08 17:01