I added it to the misc portion of the faq, because I didn't have a better idea. I thought of adding it to the service engine page, but I don't have permissions to edit that one.
Thanks everyone. Cheers, Anne. On 14 September 2011 18:54, Jacques Le Roux <[email protected]> wrote: > It's already in FAQ, and there is a link to Service Engine (SECA) in the > page > > Jacques > > From: "BJ Freeman" <[email protected]> >> >> oops this is the one I meant to suggest the link to service engine and FAQ >> >> Jacques Le Roux sent the following on 9/13/2011 10:24 PM: >>> >>> Thanks Anne, >>> >>> I don't see a better place either. >>> >>> Jacques >>> >>> From: "Anne" <[email protected]> >>>> >>>> I've added a page to the wiki at >>>> >>>> https://cwiki.apache.org/confluence/display/OFBIZ/SECAs+and+Error+and+Failure+Management >>>> >>>> summarising my findings on secas and error/failure handling. >>>> >>>> I couldn't find an obvious place to link to it from, so as yet there >>>> are no links to it from anywhere else in the wiki. Does anyone have >>>> any suggestions? If no one has a better idea, I could add a link from >>>> the Misc section of the FAQ. >>>> >>>> Comments/corrections/suggestions welcome. >>>> >>>> Cheers, >>>> Anne. >>>> >>>> On 6 September 2011 20:58, Scott Gray <[email protected]> >>>> wrote: >>>>> >>>>> The main service will never run if an error condition exists, I don't >>>>> think that is something I would consider unexpected. I'm not really >>>>> sure why the context validation is skipped but I don't think it >>>>> matters much since the main service won't be run anyway. But anyway, >>>>> just consider the main service to be set as run-on-error="false" >>>>> permanently. >>>>> >>>>> Aside from this there is the whole issue of transactions to consider, >>>>> if a service error results in a transaction rollback then that will >>>>> effect all other service calls executed within the same transaction. >>>>> >>>>> Regards >>>>> Scott >>>>> >>>>> On 6/09/2011, at 10:19 PM, Anne wrote: >>>>> >>>>>> Thanks Scott. But I now think it's more complicated than that. >>>>>> >>>>>> After BJ's comment I spent nearly all of today going through the code >>>>>> (ServiceDispatcher.java and friends) to try to answer my question. I >>>>>> had hoped to avoid doing that, for what I thought was a simple >>>>>> question. >>>>>> >>>>>> It's looking like it wasn't a simple question after all. In the >>>>>> example you give, nothing after the "in-validate" event will be run >>>>>> (assuming all have run-on-error="false"). However if instead we set >>>>>> run-on-error="true" everywhere, then once the in-validate action has >>>>>> an error, validation of the IN data will be skipped, and the main >>>>>> service will *not* be run, but all the other SECAs will be run. Not >>>>>> what I would have expected. >>>>>> >>>>>> I intend continuing through ServiceDispatcher and friends tomorrow. >>>>>> Once I'm done, I'll write up something that will hopefully help the >>>>>> next person who has questions about secas and errors/failures. >>>>>> >>>>>> Cheers, >>>>>> Anne. >>>>>> >>>>>> On 6 September 2011 17:47, Scott Gray <[email protected]> >>>>>> wrote: >>>>>>> >>>>>>> run-on-error="true", run this eca service even when the main >>>>>>> service flow contains an error condition >>>>>>> ignore-error="true", do not allow an error return from this service >>>>>>> to cause an error condition in the main service flow >>>>>>> >>>>>>> For example if you have a "validate" event eca with >>>>>>> ignore-error="false" that when executed it returns an error, and >>>>>>> you then you have an "invoke" event eca with run-on-error="false" >>>>>>> then this eca will not be executed because an error condition exists. >>>>>>> >>>>>>> Regards >>>>>>> Scott >>>>>>> >>>>>>> On 6/09/2011, at 11:56 AM, Anne wrote: >>>>>>> >>>>>>>> Does anyone know how "run-on-error" (eca tag) and "ignore-error" >>>>>>>> (action tag) attributes work for a SECA that is set to run at invoke >>>>>>>> time? The documentation's wording suggests to me it is talking >>>>>>>> about a >>>>>>>> commit or return SECA. >>>>>>>> >>>>>>>> Cheers, >>>>>>>> Anne. >>>>>>>> >>>>>>>> On 2 September 2011 15:35, Anne <[email protected]> wrote: >>>>>>>>> >>>>>>>>> Hi >>>>>>>>> >>>>>>>>> I've successfully added secas many times before, but only on >>>>>>>>> actions >>>>>>>>> that run after the service, such as "return" or "commit" events. >>>>>>>>> I now >>>>>>>>> need an "invoke" seca, and it isn't working the way I expected. So >>>>>>>>> I >>>>>>>>> re-read the documentation, and all that did was confuse me. :-( >>>>>>>>> Searching the mailing list showed me plenty of examples that did >>>>>>>>> make >>>>>>>>> sense, but only for "return" or "commit" events, so they didn't >>>>>>>>> help >>>>>>>>> me at all. >>>>>>>>> >>>>>>>>> At http://ofbiz.apache.org/docs/services.html#ECAs it says for >>>>>>>>> the eca >>>>>>>>> tag "run-on-error Should this ECA run if there is an error in the >>>>>>>>> service". I know the service it refers to is the one named in the >>>>>>>>> eca >>>>>>>>> tag. But if the event is set to invoke, the action service is run >>>>>>>>> before the eca service is invoked. Does this mean the run-on-error >>>>>>>>> attribute is irrelevant for an invoke event? >>>>>>>>> >>>>>>>>> Further down in the same page it says for the action tag >>>>>>>>> "ignore-error >>>>>>>>> Ignore any errors caused by the action service. If true the error >>>>>>>>> will cause the original service to fail. Default true.". Does this >>>>>>>>> mean, if ignore-error is true and the "invoke" action service >>>>>>>>> returns >>>>>>>>> an error, that: >>>>>>>>> >>>>>>>>> 1) the eca service will not be run, and an error will be returned >>>>>>>>> ( I >>>>>>>>> think not, as the attribute name would then be wrong)? OR >>>>>>>>> >>>>>>>>> 2) the eca service will not be run, but a failure will be >>>>>>>>> returned? OR >>>>>>>>> >>>>>>>>> 3) the eca service will be run, but a failure (or error) will be >>>>>>>>> returned no matter the result of the eca service? OR >>>>>>>>> >>>>>>>>> 4) the eca service will be run, and the return will be whatever the >>>>>>>>> eca service returns >>>>>>>>> >>>>>>>>> >>>>>>>>> What I'm trying to do is use a seca to check some things and not >>>>>>>>> run >>>>>>>>> the main service if the seca action service fails/errors. Perhaps I >>>>>>>>> should be doing this on "auth" or "in-validate" events, but I'll >>>>>>>>> still >>>>>>>>> need a better understanding of "run-on-error" and "ignore-error". >>>>>>>>> >>>>>>>>> Anyone able to explain? >>>>>>>>> >>>>>>>>> Cheers, >>>>>>>>> Anne. >>>>>>>>> >>>>>>>>> >>>>>>>>> >>>>>>>>> -- >>>>>>>>> Coherent Software Australia Pty Ltd >>>>>>>>> PO Box 2773 >>>>>>>>> Cheltenham Vic 3192 >>>>>>>>> Phone: (03) 9585 6788 >>>>>>>>> Fax: (03) 9585 1086 >>>>>>>>> Web: http://www.cohsoft.com.au/ >>>>>>>>> Email: [email protected] >>>>>>>>> >>>>>>>>> Bonsai ERP, the all-inclusive ERP system >>>>>>>>> http://www.bonsaierp.com.au/ >>>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> -- >>>>>>>> Coherent Software Australia Pty Ltd >>>>>>>> PO Box 2773 >>>>>>>> Cheltenham Vic 3192 >>>>>>>> Phone: (03) 9585 6788 >>>>>>>> Fax: (03) 9585 1086 >>>>>>>> Web: http://www.cohsoft.com.au/ >>>>>>>> Email: [email protected] >>>>>>>> >>>>>>>> Bonsai ERP, the all-inclusive ERP system >>>>>>>> http://www.bonsaierp.com.au/ >>>>>>> >>>>>>> >>>>>> >>>>>> >>>>>> >>>>>> -- >>>>>> Coherent Software Australia Pty Ltd >>>>>> PO Box 2773 >>>>>> Cheltenham Vic 3192 >>>>>> Phone: (03) 9585 6788 >>>>>> Fax: (03) 9585 1086 >>>>>> Web: http://www.cohsoft.com.au/ >>>>>> Email: [email protected] >>>>>> >>>>>> Bonsai ERP, the all-inclusive ERP system >>>>>> http://www.bonsaierp.com.au/ >>>>> >>>>> >>>> >>>> >>>> >>>> -- >>>> Coherent Software Australia Pty Ltd >>>> PO Box 2773 >>>> Cheltenham Vic 3192 >>>> Phone: (03) 9585 6788 >>>> Fax: (03) 9585 1086 >>>> Web: http://www.cohsoft.com.au/ >>>> Email: [email protected] >>>> >>>> Bonsai ERP, the all-inclusive ERP system >>>> http://www.bonsaierp.com.au/ >>>> >>> >>> >>> > > -- Coherent Software Australia Pty Ltd PO Box 2773 Cheltenham Vic 3192 Phone: (03) 9585 6788 Fax: (03) 9585 1086 Web: http://www.cohsoft.com.au/ Email: [email protected] Bonsai ERP, the all-inclusive ERP system http://www.bonsaierp.com.au/
