Exception Handling in ABAP OO and Workflow

Mike Pokraka asap at workflowconnections.com
Wed Nov 15 11:25:08 EST 2006


Huh, so what I suggested was to use cx_bo_error, which is a subclass of
cx_bo_application. Therefore no need to create a subtype.
Along with cx_bo_temporary, these are the two I use all the time, or
create subclasses from them if I need something more specific.

Cheers,
Mike

On Wed, November 15, 2006 15:11, Alon Raskin wrote:
> Ummm. I am creating a custom method and want to raise an application
> exception using cx_bo_application . I cant use that class (I have to
> create a sub-type) and I don't really have any reason to create a
> sub-class (except for Jocelyn's comments about modelling outcomes) as I
> have no requirement to further enhance the SAP delivered class.
>
> However, what Jocelyn said makes sense. If all methods used the same class
> there would be no real way to model the exceptions as outcomes.
>
> Regards,
>
> Alon Raskin
> e: araskin at 3i-consulting.com <mailto:araskin at 3i-consulting.com>
> p: +1 207 523 3489
> c: +1 207 409 4983
> f:  +1 806 403 4983
>
> ________________________________
>
> From: sap-wug-bounces at mit.edu on behalf of Mike Pokraka
> Sent: Wed 11/15/2006 09:39
> To: SAP Workflow Users' Group
> Subject: RE: Exception Handling in ABAP OO and Workflow
>
>
>
> Sorry, misunderstood - sounded like you were confused about the abstract
> thing.
> Still, you're not forced to create any subclass. Just use SAP's ones, or
> am I the one missing the problem?
> Cheers,
> Mike
>
> On Wed, November 15, 2006 13:12, Alon Raskin wrote:
>> Jocelyn and Mike. Thanks for the reply. I understand why and how
>> abstract
>> classes are used (I have been doing OO in other languages for quite some
>> time now).
>>
>> Anyway, your explanation of modelling outcomes in the Workflows based on
>> the different class types makes perfect sense and I now understand why
>> SAP
>> have 'forced' us to create a child class.
>>
>> Appreciate the response.
>>
>> Alon
>>
>> ________________________________
>>
>> From: sap-wug-bounces at mit.edu on behalf of Mike Pokraka
>> Sent: Wed 11/15/2006 05:06
>> To: SAP Workflow Users' Group
>> Subject: RE: Exception Handling in ABAP OO and Workflow
>>
>>
>>
>> Hi Alon,
>>
>> On a slightly different note to Jocelyn's very sensible answer, the
>> cx_bo_application is very rightfully an abstract class, because it
>> represents the comcept of a BO error and includes the common
>> functionality
>> for all of them.
>>
>> Think of it as cx_bo_application being the exception in a BOR sense, but
>> you need to select one of the radio buttons (subclasses in this case) in
>> the exception dialog box to tell WF how to respond. cx_bo_error and
>> cx_bo_temporary are it's subclasses which you can use straight away (and
>> you should create subtypes of these rather than cx_bo_application).
>>
>> Another BO example might be the VBAK object (Sales Order) which nobody
>> really uses, instead we use one of it's subtypes Sales Order (BUS2032)
>> Returns (BUS20toolazytolookitup), Credit Memo Request.
>> Abstract means "Dont use this, use it's subclasses".
>>
>> Hope that makes sense. So much for academic questions :)
>> Cheers,
>> Mike
>>
>> On Tue, November 14, 2006 20:40, Alon Raskin wrote:
>>> Mike,
>>>
>>> You are right. While I was waiting for someone to respond I tried
>>> creating
>>> my own sub-type of cx_bo_application and that fixed the problem.
>>>
>>> My issue with this, is academic. Why do I have to create a subtype to
>>> use
>>> this? I have not reason to 'enhance' the SAP delivered class so why
>>> create
>>> a sub-type? Particularly when you don't have to do this for the other
>>> exception classes ( CX_BO_TEMPORARY, CX_BO_ACTION_CANCELLED, etc)....
>>>
>>> Appreciate the response regardless.
>>>
>>> Alon
>>>
>>>
>>> ________________________________
>>>
>>> From: sap-wug-bounces at mit.edu on behalf of Mike Pokraka
>>> Sent: Tue 11/14/2006 11:52
>>> To: SAP Workflow Users' Group
>>> Subject: Re: Exception Handling in ABAP OO and Workflow
>>>
>>>
>>>
>>> Hi Alon,
>>>
>>> It does what it says on the tin, cx_bo_application is abstract and
>>> should
>>> not be used other than perhaps to catch subclasses.
>>>
>>> Use any of the existing subclasses or define your own. cx_bo_error for
>>> errors and cx_bo_temporary for .. er, temporary errors, and cx_bo_abort
>>> for system errors. You can even create your own subclasses from the
>>> above
>>> and it will behave according to it's subcleass (i.e. temporary error
>>> etc.). Exception classes excellent and so much more useful.
>>>
>>> Cheers,
>>> Mike
>>>
>>>
>>> On Tue, November 14, 2006 16:05, Alon Raskin wrote:
>>>> So I finally took the plunge and created my first ABAP OO Workflow.
>>>>
>>>> I implemented a class which inherits from IF_WORKFLOW, BI_PERSISTENT
>>>> and
>>>> BI_OBJECT.
>>>>
>>>> Everything was going well till I tried to raise an exception from my
>>>> method using the standard exception classes. Here is an excerpt from
>>>> my
>>>> code...
>>>>
>>>> ...
>>>>       IF sy-subrc <> 0.
>>>>       RAISE EXCEPTION type cx_bo_application.
>>>>     ENDIF.
>>>> ...
>>>>
>>>> When I compile I get the error saying that You cannot generate
>>>> instances
>>>> of the abstract class 'cx_bo_application'. I can see that the
>>>> instantiation scope is marked as abstract but surely I don't have
>>>> define
>>>> a
>>>> concrete child class of cx_bo_application for every exception that I
>>>> want
>>>> to raise? Or do I just need to do one per workflow (seems redundant).
>>>>
>>>> Oh and I went to the method definition and checked the exception
>>>> classes
>>>> checkbox (in the class builder) and pasted in cx_bo_application. It
>>>> seemed
>>>> happy with that but it didn't make my syntax error go away.
>>>>
>>>> Perhaps I am using the wrong syntax in the method ? I checked OSS...
>>>> nothing. I checked SDN... nothing.
>>>>
>>>> I am using ECC 6.0 with SAP_BASIS and SAP_ABA release 7.00
>>>>
>>>> I will keep trying other things but I welcome your comments.
>>>>
>>>> Alon
>>>>
>>>>
>>>> Your comments are welcome.
>>>>
>>>>
>>>>
>>>> _______________________________________________
>>>> SAP-WUG mailing list
>>>> SAP-WUG at mit.edu
>>>> http://mailman.mit.edu/mailman/listinfo/sap-wug
>>>>
>>>
>>>
>>> _______________________________________________
>>> SAP-WUG mailing list
>>> SAP-WUG at mit.edu
>>> http://mailman.mit.edu/mailman/listinfo/sap-wug
>>>
>>>
>>> _______________________________________________
>>> SAP-WUG mailing list
>>> SAP-WUG at mit.edu
>>> http://mailman.mit.edu/mailman/listinfo/sap-wug
>>>
>>
>>
>> _______________________________________________
>> SAP-WUG mailing list
>> SAP-WUG at mit.edu
>> http://mailman.mit.edu/mailman/listinfo/sap-wug
>>
>>
>> _______________________________________________
>> SAP-WUG mailing list
>> SAP-WUG at mit.edu
>> http://mailman.mit.edu/mailman/listinfo/sap-wug
>>
>
>
> _______________________________________________
> SAP-WUG mailing list
> SAP-WUG at mit.edu
> http://mailman.mit.edu/mailman/listinfo/sap-wug
>
>
> _______________________________________________
> SAP-WUG mailing list
> SAP-WUG at mit.edu
> http://mailman.mit.edu/mailman/listinfo/sap-wug
>





More information about the SAP-WUG mailing list