Exception Handling in ABAP OO and Workflow

Alon Raskin araskin at 3i-consulting.com
Wed Nov 15 10:11:45 EST 2006


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


-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/ms-tnef
Size: 11663 bytes
Desc: not available
Url : http://mailman.mit.edu/pipermail/sap-wug/attachments/20061115/03ba9782/attachment.bin


More information about the SAP-WUG mailing list