<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: When Are Error End Events Legal?</title>
	<atom:link href="http://www.brsilver.com/wordpress/2008/10/22/when-are-error-end-events-legal/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.brsilver.com/wordpress/2008/10/22/when-are-error-end-events-legal/</link>
	<description>Bruce Silver's blog on business process management</description>
	<lastBuildDate>Sat, 27 Feb 2010 10:22:38 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: bruce</title>
		<link>http://www.brsilver.com/wordpress/2008/10/22/when-are-error-end-events-legal/comment-page-1/#comment-6884</link>
		<dc:creator>bruce</dc:creator>
		<pubDate>Fri, 24 Oct 2008 23:11:28 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/?p=383#comment-6884</guid>
		<description>Hmmm... I didn&#039;t think BPMN was supposed to be a flowcharting &quot;style guide&quot;.  It purports to be a spec with defined semantics and rules.  The key difference between BPMN and the flowcharts of yesteryear is a business-oriented language for defining what should happen if some exception occurs, precisely so it doesn&#039;t just get dumped into the old &quot;supervisor queue&quot;.  That is so 1995.

I don&#039;t think this is about uncaught runtime exceptions.  In an executable design environment, if there&#039;s nothing to catch an exception throw the tool is not going to let you insert it.  This is about process modeling not execution.  It might be a good idea for BPMN to allow process-level exception handlers, but today it doesn&#039;t.  If the semantic is valuable let&#039;s get it into the spec instead of awarding style points to violators.</description>
		<content:encoded><![CDATA[<p>Hmmm&#8230; I didn&#8217;t think BPMN was supposed to be a flowcharting &#8220;style guide&#8221;.  It purports to be a spec with defined semantics and rules.  The key difference between BPMN and the flowcharts of yesteryear is a business-oriented language for defining what should happen if some exception occurs, precisely so it doesn&#8217;t just get dumped into the old &#8220;supervisor queue&#8221;.  That is so 1995.</p>
<p>I don&#8217;t think this is about uncaught runtime exceptions.  In an executable design environment, if there&#8217;s nothing to catch an exception throw the tool is not going to let you insert it.  This is about process modeling not execution.  It might be a good idea for BPMN to allow process-level exception handlers, but today it doesn&#8217;t.  If the semantic is valuable let&#8217;s get it into the spec instead of awarding style points to violators.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: sfrancis</title>
		<link>http://www.brsilver.com/wordpress/2008/10/22/when-are-error-end-events-legal/comment-page-1/#comment-6883</link>
		<dc:creator>sfrancis</dc:creator>
		<pubDate>Fri, 24 Oct 2008 22:50:19 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/?p=383#comment-6883</guid>
		<description>I&#039;d say that when you see an error event &quot;thrown&quot; at the end you assume the process is a subprocess.  I don&#039;t think it is &quot;good&quot; design for a top-level process to do this, but an implementation of BPMN should handle this case as it can happen by accident if not on purpose. 

Much like, in other &quot;programming languages&quot; an uncaught exception still has to be dealt with at some level (by the OS if nothing else).  you don&#039;t want your BPM server dying just because someone threw the odd exception End event :) 

One &quot;advantage&quot; of throwing an error exception on a failed process is that you can see that it failed. but personally, when I have to model a failure I want it to go into some kind of queue for resolution by someone that knows what they&#039;re doing (administrator, IT admin, etc. ) 

I guess to me the issue isn&#039;t so much conformance to spec as it is style... .5++ :)</description>
		<content:encoded><![CDATA[<p>I&#8217;d say that when you see an error event &#8220;thrown&#8221; at the end you assume the process is a subprocess.  I don&#8217;t think it is &#8220;good&#8221; design for a top-level process to do this, but an implementation of BPMN should handle this case as it can happen by accident if not on purpose. </p>
<p>Much like, in other &#8220;programming languages&#8221; an uncaught exception still has to be dealt with at some level (by the OS if nothing else).  you don&#8217;t want your BPM server dying just because someone threw the odd exception End event <img src='http://www.brsilver.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  </p>
<p>One &#8220;advantage&#8221; of throwing an error exception on a failed process is that you can see that it failed. but personally, when I have to model a failure I want it to go into some kind of queue for resolution by someone that knows what they&#8217;re doing (administrator, IT admin, etc. ) </p>
<p>I guess to me the issue isn&#8217;t so much conformance to spec as it is style&#8230; .5++ <img src='http://www.brsilver.com/wordpress/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bruce</title>
		<link>http://www.brsilver.com/wordpress/2008/10/22/when-are-error-end-events-legal/comment-page-1/#comment-6880</link>
		<dc:creator>bruce</dc:creator>
		<pubDate>Wed, 22 Oct 2008 19:29:13 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/?p=383#comment-6880</guid>
		<description>OK, one vote the other way.  But I think you are saying business may want to relax the rules of BPMN, so it&#039;s ok with that understanding.

Re the diagram in Steve and Derek&#039;s book - it&#039;s fig 8-14 on p93 - No this is not a reusable subprocess with a None start (used when called as a subprocess) and a message start (used when a top level process).  It&#039;s a process with two message start events representing two different types of orders.  It&#039;s exactly the use case described by the bootstrapped event gateway in BPMN 1.1.  So I&#039;m standing firm on that one.</description>
		<content:encoded><![CDATA[<p>OK, one vote the other way.  But I think you are saying business may want to relax the rules of BPMN, so it&#8217;s ok with that understanding.</p>
<p>Re the diagram in Steve and Derek&#8217;s book &#8211; it&#8217;s fig 8-14 on p93 &#8211; No this is not a reusable subprocess with a None start (used when called as a subprocess) and a message start (used when a top level process).  It&#8217;s a process with two message start events representing two different types of orders.  It&#8217;s exactly the use case described by the bootstrapped event gateway in BPMN 1.1.  So I&#8217;m standing firm on that one.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: jakob.freund</title>
		<link>http://www.brsilver.com/wordpress/2008/10/22/when-are-error-end-events-legal/comment-page-1/#comment-6879</link>
		<dc:creator>jakob.freund</dc:creator>
		<pubDate>Wed, 22 Oct 2008 19:16:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/?p=383#comment-6879</guid>
		<description>I am not sure about this, but I actually think it&#039;s ok. My ambition is to bring the BPMN to Business, and I have experienced that Business users love to design a &quot;bad end&quot; of a process as an error. And of course there can be process models which reflect a bad As-Is-situation by showing thrown errors nobody takes care of. I mean, process modeling is not only about the perfect world, but also showing the process running today, especially if it is designed weakly. I think it is not the purpose of a notation nor a metamodel or anything similar to tell us how a &quot;good&quot; process looks like. We need process design - guidelines for this, which you can perfectly implement into a modeling tool. But that&#039;s different story - A bad process modelled syntactically correct is definitely a valid model. 

Short version: I think it is ok to throw an error nobody&#039;s catching - in an as-is-model, not in a to-be-concept!

Another thing: In your review of Stephen White&#039;s Reference Guide you wonder why he presents a process instantiation pattern with different start events instead of using the event-based gateway. But I think the &quot;reusable sub-process which can also be a top-level-process&quot;-pattern in spec-section 9.4.2.3 does exactly the same, doesn&#039;t it?

BTW: Great blog!

Jakob</description>
		<content:encoded><![CDATA[<p>I am not sure about this, but I actually think it&#8217;s ok. My ambition is to bring the BPMN to Business, and I have experienced that Business users love to design a &#8220;bad end&#8221; of a process as an error. And of course there can be process models which reflect a bad As-Is-situation by showing thrown errors nobody takes care of. I mean, process modeling is not only about the perfect world, but also showing the process running today, especially if it is designed weakly. I think it is not the purpose of a notation nor a metamodel or anything similar to tell us how a &#8220;good&#8221; process looks like. We need process design &#8211; guidelines for this, which you can perfectly implement into a modeling tool. But that&#8217;s different story &#8211; A bad process modelled syntactically correct is definitely a valid model. </p>
<p>Short version: I think it is ok to throw an error nobody&#8217;s catching &#8211; in an as-is-model, not in a to-be-concept!</p>
<p>Another thing: In your review of Stephen White&#8217;s Reference Guide you wonder why he presents a process instantiation pattern with different start events instead of using the event-based gateway. But I think the &#8220;reusable sub-process which can also be a top-level-process&#8221;-pattern in spec-section 9.4.2.3 does exactly the same, doesn&#8217;t it?</p>
<p>BTW: Great blog!</p>
<p>Jakob</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: bruce</title>
		<link>http://www.brsilver.com/wordpress/2008/10/22/when-are-error-end-events-legal/comment-page-1/#comment-6878</link>
		<dc:creator>bruce</dc:creator>
		<pubDate>Wed, 22 Oct 2008 18:30:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/?p=383#comment-6878</guid>
		<description>Thanks for the comment.  Unlike BPEL, BPMN does not provide process-level error handlers, and to trigger an exception handler process you would use message not error event, as there is no error start event in BPMN.  So it&#039;s even worse than you thought.</description>
		<content:encoded><![CDATA[<p>Thanks for the comment.  Unlike BPEL, BPMN does not provide process-level error handlers, and to trigger an exception handler process you would use message not error event, as there is no error start event in BPMN.  So it&#8217;s even worse than you thought.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: frenchdk</title>
		<link>http://www.brsilver.com/wordpress/2008/10/22/when-are-error-end-events-legal/comment-page-1/#comment-6877</link>
		<dc:creator>frenchdk</dc:creator>
		<pubDate>Wed, 22 Oct 2008 18:21:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.brsilver.com/wordpress/?p=383#comment-6877</guid>
		<description>I would view the throwing of an event and not defining the handling of that event as very bad practice and at the very least I would like a BPMN tool to warn me about it. It is the equivalent of a sequence flow going nowhere. It is true that in the real world a business process may get to an exceptional condition and the business would invent a process to handle it at the time and it is not necessary to define every possible case but an indication that this is to happen should be made explicit even if the catch of the error leads to an activity simply labelled &quot;handle remaining error conditions&quot;
Where the BPMN goes on to be executed (as BPEL or whatever) there is likely to be a default error handler but it is not very useful to the business to have a decision recorded as 100 lines of java stack dump, or silence. Also, the BPMN is intended to be portable but there is no guarantee that the default action will be the same across different executables.

David.</description>
		<content:encoded><![CDATA[<p>I would view the throwing of an event and not defining the handling of that event as very bad practice and at the very least I would like a BPMN tool to warn me about it. It is the equivalent of a sequence flow going nowhere. It is true that in the real world a business process may get to an exceptional condition and the business would invent a process to handle it at the time and it is not necessary to define every possible case but an indication that this is to happen should be made explicit even if the catch of the error leads to an activity simply labelled &#8220;handle remaining error conditions&#8221;<br />
Where the BPMN goes on to be executed (as BPEL or whatever) there is likely to be a default error handler but it is not very useful to the business to have a decision recorded as 100 lines of java stack dump, or silence. Also, the BPMN is intended to be portable but there is no guarantee that the default action will be the same across different executables.</p>
<p>David.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
