Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
en:rule:business_exception_error [2024-01-11 23:48] – Embedded diagram updated Anatoly Belaychuken:rule:business_exception_error [2024-08-24 15:50] (current) – [Error event may be used to model business exceptions] Anatoly Belaychuk
Line 1: Line 1:
-====== Error event depicts business exceptions ======+====== Error event may be used to model business exceptions ======
  
-{{tag>event event_error attached_event end_event subprocess}}+{{tag>event error_event attached_event end_event subprocess}}
  
-Нормальное (или желательноезавершение подпроцесса изобразите простым конечным событием, а бизнес-исключение (нежелательный вариант- событием-ошибкойНа верхнем уровне воспользуйтесь прикрепленным обработчиком.+End the normal (or deisrableend of a process by the none event and the business exception (or unwanted endby the error eventUse the attached event at the above level of the model.
 ===== ✔ How to ===== ===== ✔ How to =====
  
Line 9: Line 9:
 ===== ✘ How NOT to ===== ===== ✘ How NOT to =====
  
-Put antipattern (BPMN diagrams) here +<diagram><svg xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" version="1.1" width="481px" height="81px" viewBox="-0.5 -0.5 481 81" content="&lt;mxfile host=&quot;embed.diagrams.net&quot; modified=&quot;2024-01-11T20:49:21.140Z&quot; agent=&quot;Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36&quot; etag=&quot;ABXA-hMj33heMggPp9Qd&quot; version=&quot;22.1.18&quot; type=&quot;embed&quot;&gt;&lt;diagram id=&quot;Oj1wgXiuPFaf_WvJZpv8&quot; name=&quot;Страница — 1&quot;&gt;7ZhNb6MwEIZ/TY5b8VGa5FjYtntopUo57NmBKXhjPMg4X/vrd2xMCIU01aq7lapUqcCvx2N75vEEMgmTcvegWFU8YQZiEnjZbhJ+nwSBH8yv6WKUvVPmM79RcsUzp3XCgv8GJ3pOXfMM6p6hRhSaV30xRSkh1T2NKYXbvtkLiv6sFcthICxSJobqT57polFnwbTTfwDPi3Zm/2be9JSsNXY7qQuW4fZICu8mYaIQdXNX7hIQJnptXJpx9yd6DwtTIPV7BgRRM2LDxNptLkGpFaOoUVBBlTVdJeSoOdMcZe3WrfdtMCrkUtuARjF9vCvjM/Hsf0QGiRXHtOlQ9E2r9dAXx7RpNObSH5n7tRaMiKMuR+b2Xi2SPmFMmaxMRMpdbqi/WlalvNKsXlHftuAaFhVLjcGWuklTBObCRVHhWmaQGS8N6wR6GBe6FOaebglkzbgE5dqwq5g0KfRspxCsqvnS+jKKmfaJqZW1Z8u6yWcY8/oRsVqsl87NkBYH0AaUht2R5Oh5ACxBqz2ZtL1TR5A7y9/89pBuu5Pht7gXR6di5jTmDmN+8N3xSjcO2RP43gzwPc+nf20z117PQDqLxq3HoOys3fUMhO1KBtZ936f5go3N3DEqJnWcStUjW4J4xpqbU0t9S9QaSzIQpiNm6Sq32CUoUNlIhS/278jHreC5GavREMtcK6U5DVlxBYpTyixllBeqvvDcSTGutSBmk0MRNmiyumoaL3xniXdWpNSamGbKHoN9uUSzoxwIeiY+htWWuBbVeTQgNRoBNfoIUGcDUBcUTS7z5mvKVdxLab2U1gOuYXT9maV1fimtX6a0guxVVfNcxyXTEHwMqZH/eZU19M5zChk9vrsmKl1gjpKJu06ND2XCRrKzMYfaZf8XaL137yJsrbHPBkX41rxZGBwEpqtGuufiyMAN9t+Meo1rlUL/6VwzlYPuf5OYPb2ZGwWCntg3/VeWsUi7oc/mMJ/8sozatbQemnW6QcdvGK/8hMEZR83mBo5s3g/beR8K/hdG4WYEhej/oDB/lcHwL1Hwvb6j2b8jIfjCJMxGSJhfisKh2f160ph3P0KFd38A&lt;/diagram&gt;&lt;/mxfile&gt;"><defs/><g><path d="M 95 10 C 95 4.48 99.48 0 105 0 L 205 0 C 210.52 0 215 4.48 215 10 L 215 70 C 215 75.52 210.52 80 205 80 L 105 80 C 99.48 80 95 75.52 95 70 L 95 10 Z" fill="rgb(255, 255, 255)" stroke="none" pointer-events="all"/><path d="M 97 11 L 97 69 C 97 73.97 101.03 78 106 78 L 204 78 C 208.97 78 213 73.97 213 69 L 213 11 C 213 6.03 208.97 2 204 2 L 106 2 C 101.03 2 97 6.03 97 11" fill="none" stroke="none" pointer-events="all"/><path d="M 95 10 C 95 4.48 99.48 0 105 0 L 205 0 C 210.52 0 215 4.48 215 10 L 215 70 C 215 75.52 210.52 80 205 80 L 105 80 C 99.48 80 95 75.52 95 70 L 95 10 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="148" y="66" width="14" height="14" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 152 73 L 158 73 M 155 70 L 155 76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 40px; margin-left: 96px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Contract terms negotiations</div></div></div></foreignObject><text x="155" y="44" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Contract terms negot...</text></switch></g><ellipse cx="25" cy="40" rx="25" ry="25" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 274 10 C 274 4.48 278.48 0 284 0 L 384 0 C 389.52 0 394 4.48 394 10 L 394 70 C 394 75.52 389.52 80 384 80 L 284 80 C 278.48 80 274 75.52 274 70 L 274 10 Z" fill="rgb(255, 255, 255)" stroke="none" pointer-events="all"/><path d="M 276 11 L 276 69 C 276 73.97 280.03 78 285 78 L 383 78 C 387.97 78 392 73.97 392 69 L 392 11 C 392 6.03 387.97 2 383 2 L 285 2 C 280.03 2 276 6.03 276 11" fill="none" stroke="none" pointer-events="all"/><path d="M 274 10 C 274 4.48 278.48 0 284 0 L 384 0 C 389.52 0 394 4.48 394 10 L 394 70 C 394 75.52 389.52 80 384 80 L 284 80 C 278.48 80 274 75.52 274 70 L 274 10 Z" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><rect x="327" y="66" width="14" height="14" fill="none" stroke="rgb(0, 0, 0)" pointer-events="all"/><path d="M 331 73 L 337 73 M 334 70 L 334 76" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><g transform="translate(-0.5 -0.5)"><switch><foreignObject pointer-events="none" width="100%" height="100%" requiredFeatures="http://www.w3.org/TR/SVG11/feature#Extensibility" style="overflow: visible; text-align: left;"><div xmlns="http://www.w3.org/1999/xhtml" style="display: flex; align-items: unsafe center; justify-content: unsafe center; width: 118px; height: 1px; padding-top: 40px; margin-left: 275px;"><div data-drawio-colors="color: rgb(0, 0, 0); " style="box-sizing: border-box; font-size: 0px; text-align: center;"><div style="display: inline-block; font-size: 12px; font-family: Helvetica; color: rgb(0, 0, 0); line-height: 1.2; pointer-events: all; white-space: normal; overflow-wrap: normal;">Signing contract</div></div></div></foreignObject><text x="334" y="44" fill="rgb(0, 0, 0)" font-family="Helvetica" font-size="12px" text-anchor="middle">Signing contract</text></switch></g><ellipse cx="455" cy="40" rx="25" ry="25" fill="rgb(255, 255, 255)" stroke="rgb(0, 0, 0)" stroke-width="3" pointer-events="all"/><path d="M 215 40 L 259.88 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 272.88 40 L 259.88 46.5 L 259.88 33.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 50 40 L 70 40 L 65 40 L 80.88 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 93.88 40 L 80.88 46.5 L 80.88 33.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/><path d="M 394 40 L 414 40 L 400 40 L 415.88 40" fill="none" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="stroke"/><path d="M 428.88 40 L 415.88 46.5 L 415.88 33.5 Z" fill="rgb(0, 0, 0)" stroke="rgb(0, 0, 0)" stroke-miterlimit="10" pointer-events="all"/></g></svg></diagram>
 ===== Notes ===== ===== Notes =====
  
-  - Техническиприкрепленный обработчик не обязателен если он отсутствуетто событие-ошибка прекратит выполнение и текущего подпроцесса, и вышестоящих, вплоть до верхнего уровня процессаНо в этом случае существенный аспект поведения процесса оказывается спрятан в подпроцессепоэтому хорошая практика - всегда показывать обработчик ошибки+  * Technicallyattached event can be omitted in this case error event would stop the current subprocessthe subprocesses above and the top-level processYet if modelled this waythe significant aspects of the process behavior would be hidden so the good practice is to always depict the attached error event
-  - Если на событии-обработчике указано имя, то он будет обрабатывать только выход из подпроцесса по завершающему событию с таким именемТаким способом можно предусмотреть свой вариант обработки для каждого бизнес-исключенияЕсли имя не указано, то будут обрабатываться все завершающие события-ошибки в подпроцессе.+  * If the attached event is named then it'd catch only the end error event with the same nameThis way each end event can be processed separatelyIf the attached event is unnamed it'd catch all end error events.
 ===== See also ===== ===== See also =====
  
-Использование события-ошибки - альтернатива более простой технике [[ru:rule:check_subprocess_results | проверки результата на выходе из подпроцесса]]. К плюсу этого способа можно отнести то, что диаграмма получается более компактной, к минусу - то, что в палитру добавляется еще один элемент.+  * Error event is the alternative to more simple technique of [[en:rule:check_subprocess_results | checking the suprocess results on exit]]. It's advantage is more compact diagram.
 ===== Author(s) ===== ===== Author(s) =====
  
  --- //[[user:bell|Anatoly Belaychuk]] 2024-01-11 23:30//  --- //[[user:bell|Anatoly Belaychuk]] 2024-01-11 23:30//