Hi, I have used error handling filters extensively in the following way:
1. create two display-only-fields: - errorhandler errno - errorhandler text 2. create two error handler filters - errorhandler Message error run if: ('errorhandler errno' = $ERRNO$) action: message error: $errorhandler text$ - errorhandler Message warning run if: ('errorhandler errno' = $ERRNO$) action: message warning: $errorhandler text$ The idea is to give better feedback to the user, and either stop (error) or allow (warning) the transaction to the database. 3. filter that can fail error handler: errorhandler Message warning action 1: set-fields current transaction errorhandler errno = 380 errorhandler errno = "The customer " + $Customer$ " was not found, and the customer field has been cleared" action 2: set-fields from form Customer ('Customer' = $Customer$) if no records match: error This will allow very flexible functionality I think. Now back to your problem. With the new non-transactional-filter-service-call, you could do something like this: errorhandlerfilter action 1: call service: push the error handler ticket (invalid CTI combination, ...) action 2: message error: transaction stopped due to ... Then create the service that does the actual pushing: service filter: > I have the same trouble with the error handler feature. I was so excited > when it was introduced but then realized it wasn't exactly what I wanted > it > to be once I used it. It seems you still need many filter qualifications > to > account for all of the different situations that will cause an error in > your > process. > > For example we have a custom db table where records are inserted and an > escalation touches the new records using a Vendor Form to bring them into > ARS processing (filter pushes them to a Help Desk ticket). There are a > number of errors that can occur: invalid CTI combination, invalid Region, > Site, Department combination, missing Region, Site or Department, etc. > When > this happens we want a ticket created to review and correct the record so > it > can be processed for the customer. When we initially created the process > we > though if the push fields fails say because a require field on the > destination form is missing then our error handler field would create the > ticket to research the failure and processing would stop after that. This > statement is where our idea fell flat: > > Pg 165 of 7.5 Workflow Objects Guide > > "When all the If actions of the error handling filter complete > successfully, > *the error is considered handled*, the error information and keyword is > cleared, and the filter in which the error occurred continues execution > with > the next action. If another error occurs during the execution of the > filter, > the error handler is executed again." > > In our initial development attempt would end up with a ticket to research > the error and a ticket missing the required field(s) (who knew that was > possible, they are required). So then the though was to throw an error in > the error handler after the research ticket push fields but then entire > transaction rolled back and neither tickets were created just as if we > didn't even have the EH. > > We ended up having our push fields filter still evaluate that all of the > requirements were met in the qualification. At the very end if the source > record status is still "New" (would have been set to "Processed" if ticket > was created) then we assume an error has occurred, set the status to > "Error" > and create a ticket to research. > > Another similar process on a web service integration form varies a little > bit by throwing an error if a pre-check fails (CTI, RSD, item # not in the > catalog). The error handler is called and sets the status field to > "Error". The pre-checks continue since the error was "handled" and > concatenates the $ERRMSG$ and $ERRNO$ to a character field that is > returned > in web service. All of the filters that do push fields do not fire if > 'Status' = "Error". > > In both situations we need to figure out all of the possible points of > failure ahead of time. If an unexpected error is encountered then our > error > handling actions fall apart. > > I see value in the way it is designed but it would be nice if there was an > option to terminate normal processing if an EH filter is called and only > process the filters triggered by the EH. Sometimes you want to take a > special action due to an error but you still want a hard error that stops > the original processing. > > Jason > > On Mar 14, 2011 2:04 PM, "Misi Mladoniczky" <m...@rrr.se> wrote: >> Hi Robert, >> >> Maybe, but the documentation does not say anything about this. >> >> This would both limit and extend the use of servive-calls I guess. >> >> In my case, when my service picks the next of several counters, it will >> create holes in my counter-series. I guess I have to redesign... >> >> Best Regards - Misi, RRR AB, http://www.rrr.se >> >> Products from RRR Scandinavia (Best R.O.I. Award at WWRUG10): >> * RRR|License - Not enough Remedy licenses? Save money by optimizing. >> * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy >> logs. >> Find these products, and many free tools and utilities, at >> http://rrr.se. >> >>> My understanding is that since you are calling a Service (just like >>> consuming an external web-service logically) that is an independent >>> transaction. So an ERROR Trap will need to be constructed, and then >>> service >>> X_rollback would need to be called in the error handling... >>> >>> Yes it adds much complication... >>> >>> HTH >>> Robert >>> >>> On Mon, Mar 14, 2011 at 12:48 PM, Misi Mladoniczky <m...@rrr.se> wrote: >>> >>>> Hi, >>>> >>>> I have created a Filter Service that I call from a filter. The problem >>>> is >>>> that data seems to be committed to the database even though there is >>>> an >>>> ERROR later on in the processing. >>>> >>>> A1. Modify Filter in form A: Call Service X >>>> >>>> X2. Service Filter: pushes data to form X >>>> >>>> A2. Modify Filter in form A: generates ERROR (phase 2) >>>> >>>> The data pushed to form X via the Service Filteris commited to the >>>> data >>>> >>>> Is this as designed??? >>>> >>>> I was under the impression that everything should be rolled back if >>>> you >>>> have a failiure. At least if you refrain from meddling with the filter >>>> phasing, which I have not done... >>>> >>>> Any comments? >>>> >>>> ARServer version 7.6.04 on MS SQL Server. >>>> >>>> Best Regards - Misi, RRR AB, http://www.rrr.se >>>> >>>> Products from RRR Scandinavia (Best R.O.I. Award at WWRUG10): >>>> * RRR|License - Not enough Remedy licenses? Save money by optimizing. >>>> * RRR|Log - Performance issues or elusive bugs? Analyze your Remedy >>>> logs. >>>> Find these products, and many free tools and utilities, at >>>> http://rrr.se. >>>> >>>> >>>> > _______________________________________________________________________________ >>>> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org >>>> attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are" >>>> >>> >>> >>> >>> -- >>> >>> > _______________________________________________________________________________ >>> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org >>> attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are" >>> >> >> > _______________________________________________________________________________ >> UNSUBSCRIBE or access ARSlist Archives at www.arslist.org >> attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are" > > _______________________________________________________________________________ > UNSUBSCRIBE or access ARSlist Archives at www.arslist.org > attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are" > _______________________________________________________________________________ UNSUBSCRIBE or access ARSlist Archives at www.arslist.org attend wwrug11 www.wwrug.com ARSList: "Where the Answers Are"