There is no significant difference between two models as long as excactly one process issues invoices.
The event-message scheme may look preferable since it more clearly shows the collaboration mechanism.
The situation changes if that the company has different sales processes for different product lines (goods, services) or channels (retail, partner, online).
In this case, the logic of the bank statement processing process becomes too complicated:
it will need a gateway to send a message to the process from which this specific invoice has come.
If a new variation of sales process emerges, the statement processing process should be modified.
The conditional event eliminates this dependency.
Now the processes don't need to know anything about each other's internals, only about the datastore serving as the the common interface:
* the client process (Order to pay) adds a record to the database table (Invoices) and waits until the value of the “status” field of this record changes to the required one (paid)
* the server process (Bank statement processing) searches the database table for the record to which the payment refers, and changes the status to “paid”
* the client process awakens and continues working
There may be unlimited number of client and server processes.
In the case of an executable process model, the event message will be automatically processed by the engine.
If the process engine does not support a conditional event, it can be easily replaced with a combination of an exclusive gateway and a timer:
Cjw/eG1sIHZlcnNpb249IjEuMCIgZW5jb2Rpbmc9IlVURi04Ij8+CjxkZWZpbml0aW9ucyB4bWxucz0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvQlBNTi8yMDEwMDUyNC9NT0RFTCIgeG1sbnM6YnBtbmRpPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9CUE1OLzIwMTAwNTI0L0RJIiB4bWxuczpvbWdkYz0iaHR0cDovL3d3dy5vbWcub3JnL3NwZWMvREQvMjAxMDA1MjQvREMiIHhtbG5zOnhzaT0iaHR0cDovL3d3dy53My5vcmcvMjAwMS9YTUxTY2hlbWEtaW5zdGFuY2UiIHhtbG5zOmRpPSJodHRwOi8vd3d3Lm9tZy5vcmcvc3BlYy9ERC8yMDEwMDUyNC9ESSIgaWQ9InNpZC0zODQyMmZhZS1lMDNlLTQzYTMtYmVmNC1iZDMzYjMyMDQxYjIiIHRhcmdldE5hbWVzcGFjZT0iaHR0cDovL2JwbW4uaW8vYnBtbiIgZXhwb3J0ZXI9Imh0dHA6Ly9icG1uLmlvIiBleHBvcnRlclZlcnNpb249IjAuMTAuMSI+CiAgPHByb2Nlc3MgaWQ9IlByb2Nlc3NfMSIgaXNFeGVjdXRhYmxlPSJmYWxzZSI+CiAgICA8ZXhjbHVzaXZlR2F0ZXdheSBpZD0iR2F0ZXdheV8wNGFrem83IiBuYW1lPSJJbnZvaWNlIHN0YXR1cyBpcyAmIzM5O3BhaWQmIzM5Oz8iPgogICAgICA8aW5jb21pbmc+Rmxvd18xNThtYWYwPC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMGt5bHRoZTwvb3V0Z29pbmc+CiAgICAgIDxvdXRnb2luZz5GbG93XzE0dTI3ejk8L291dGdvaW5nPgogICAgPC9leGNsdXNpdmVHYXRld2F5PgogICAgPHRhc2sgaWQ9IkFjdGl2aXR5XzAzZTkyZ3EiIG5hbWU9Ii4uLiI+CiAgICAgIDxpbmNvbWluZz5GbG93XzBreWx0aGU8L2luY29taW5nPgogICAgPC90YXNrPgogICAgPHNlcXVlbmNlRmxvdyBpZD0iRmxvd18wa3lsdGhlIiBuYW1lPSJ5ZXMiIHNvdXJjZVJlZj0iR2F0ZXdheV8wNGFrem83IiB0YXJnZXRSZWY9IkFjdGl2aXR5XzAzZTkyZ3EiIC8+CiAgICA8dGFzayBpZD0iQWN0aXZpdHlfMHQxOGpkcSIgbmFtZT0iLi4uIj4KICAgICAgPG91dGdvaW5nPkZsb3dfMWFmeDBsaDwvb3V0Z29pbmc+CiAgICA8L3Rhc2s+CiAgICA8aW50ZXJtZWRpYXRlQ2F0Y2hFdmVudCBpZD0iRXZlbnRfMWRzamE2YyI+CiAgICAgIDxpbmNvbWluZz5GbG93XzE0dTI3ejk8L2luY29taW5nPgogICAgICA8aW5jb21pbmc+Rmxvd18xYWZ4MGxoPC9pbmNvbWluZz4KICAgICAgPG91dGdvaW5nPkZsb3dfMTU4bWFmMDwvb3V0Z29pbmc+CiAgICAgIDx0aW1lckV2ZW50RGVmaW5pdGlvbiBpZD0iVGltZXJFdmVudERlZmluaXRpb25fMHM2aXVtcyIgLz4KICAgIDwvaW50ZXJtZWRpYXRlQ2F0Y2hFdmVudD4KICAgIDxzZXF1ZW5jZUZsb3cgaWQ9IkZsb3dfMTR1Mjd6OSIgbmFtZT0ibm8iIHNvdXJjZVJlZj0iR2F0ZXdheV8wNGFrem83IiB0YXJnZXRSZWY9IkV2ZW50XzFkc2phNmMiIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzE1OG1hZjAiIHNvdXJjZVJlZj0iRXZlbnRfMWRzamE2YyIgdGFyZ2V0UmVmPSJHYXRld2F5XzA0YWt6bzciIC8+CiAgICA8c2VxdWVuY2VGbG93IGlkPSJGbG93XzFhZngwbGgiIHNvdXJjZVJlZj0iQWN0aXZpdHlfMHQxOGpkcSIgdGFyZ2V0UmVmPSJFdmVudF8xZHNqYTZjIiAvPgogIDwvcHJvY2Vzcz4KICA8YnBtbmRpOkJQTU5EaWFncmFtIGlkPSJCUE1ORGlhZ3JhbV8xIj4KICAgIDxicG1uZGk6QlBNTlBsYW5lIGlkPSJCUE1OUGxhbmVfMSIgYnBtbkVsZW1lbnQ9IlByb2Nlc3NfMSI+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJHYXRld2F5XzA0YWt6bzdfZGkiIGJwbW5FbGVtZW50PSJHYXRld2F5XzA0YWt6bzciIGlzTWFya2VyVmlzaWJsZT0idHJ1ZSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIyNTUiIHk9IjEwNSIgd2lkdGg9IjUwIiBoZWlnaHQ9IjUwIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIyNDEiIHk9IjE2MiIgd2lkdGg9Ijc5IiBoZWlnaHQ9IjI3IiAvPgogICAgICAgIDwvYnBtbmRpOkJQTU5MYWJlbD4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iQWN0aXZpdHlfMDNlOTJncV9kaSIgYnBtbkVsZW1lbnQ9IkFjdGl2aXR5XzAzZTkyZ3EiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMzYwIiB5PSI5MCIgd2lkdGg9IjEwMCIgaGVpZ2h0PSI4MCIgLz4KICAgICAgICA8YnBtbmRpOkJQTU5MYWJlbCAvPgogICAgICA8L2JwbW5kaTpCUE1OU2hhcGU+CiAgICAgIDxicG1uZGk6QlBNTlNoYXBlIGlkPSJBY3Rpdml0eV8wdDE4amRxX2RpIiBicG1uRWxlbWVudD0iQWN0aXZpdHlfMHQxOGpkcSI+CiAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIzMCIgeT0iOTAiIHdpZHRoPSIxMDAiIGhlaWdodD0iODAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWwgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5TaGFwZSBpZD0iRXZlbnRfMXFkaWx6aV9kaSIgYnBtbkVsZW1lbnQ9IkV2ZW50XzFkc2phNmMiPgogICAgICAgIDxvbWdkYzpCb3VuZHMgeD0iMTgyIiB5PSIxMTIiIHdpZHRoPSIzNiIgaGVpZ2h0PSIzNiIgLz4KICAgICAgPC9icG1uZGk6QlBNTlNoYXBlPgogICAgICA8YnBtbmRpOkJQTU5FZGdlIGlkPSJGbG93XzBreWx0aGVfZGkiIGJwbW5FbGVtZW50PSJGbG93XzBreWx0aGUiPgogICAgICAgIDxkaTp3YXlwb2ludCB4PSIzMDUiIHk9IjEzMCIgLz4KICAgICAgICA8ZGk6d2F5cG9pbnQgeD0iMzYwIiB5PSIxMzAiIC8+CiAgICAgICAgPGJwbW5kaTpCUE1OTGFiZWw+CiAgICAgICAgICA8b21nZGM6Qm91bmRzIHg9IjMyNCIgeT0iMTEyIiB3aWR0aD0iMTciIGhlaWdodD0iMTQiIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xNHUyN3o5X2RpIiBicG1uRWxlbWVudD0iRmxvd18xNHUyN3o5Ij4KICAgICAgICA8ZGk6d2F5cG9pbnQgeD0iMjgwIiB5PSIxMDUiIC8+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjI4MCIgeT0iNzAiIC8+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjIwMCIgeT0iNzAiIC8+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjIwMCIgeT0iMTEyIiAvPgogICAgICAgIDxicG1uZGk6QlBNTkxhYmVsPgogICAgICAgICAgPG9tZ2RjOkJvdW5kcyB4PSIyOTMiIHk9IjczIiB3aWR0aD0iMTMiIGhlaWdodD0iMTQiIC8+CiAgICAgICAgPC9icG1uZGk6QlBNTkxhYmVsPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xNThtYWYwX2RpIiBicG1uRWxlbWVudD0iRmxvd18xNThtYWYwIj4KICAgICAgICA8ZGk6d2F5cG9pbnQgeD0iMjE4IiB5PSIxMzAiIC8+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjI1NSIgeT0iMTMwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgICAgPGJwbW5kaTpCUE1ORWRnZSBpZD0iRmxvd18xYWZ4MGxoX2RpIiBicG1uRWxlbWVudD0iRmxvd18xYWZ4MGxoIj4KICAgICAgICA8ZGk6d2F5cG9pbnQgeD0iMTMwIiB5PSIxMzAiIC8+CiAgICAgICAgPGRpOndheXBvaW50IHg9IjE4MiIgeT0iMTMwIiAvPgogICAgICA8L2JwbW5kaTpCUE1ORWRnZT4KICAgIDwvYnBtbmRpOkJQTU5QbGFuZT4KICA8L2JwbW5kaTpCUE1ORGlhZ3JhbT4KPC9kZWZpbml0aW9ucz4K
In the case of a non-executable model, the conditional event models an employee periodically pressing the F5 key
on the automated system page displaying a list of issued invoices together with status.