ABAP Objects vs. BOR to trigger event?

Mike Pokraka wug at workflowconnections.com
Wed Feb 16 05:31:03 EST 2011


Hi Karl,

Should work with a functional method, but your example is a bit dubious as
you're mixing instance variables with class names.
Use & for instance variables and % for static references.
&ORDER.GET_ITEM( &ITEM_NO& )&
%ZCL_PLANT.GET_INSTANCE( &PLANT_NO& )%

Hope that helps,
Mike

On Wed, February 16, 2011 3:48 am, Karl Nietz wrote:
> Hi Jocelyn,
>
> I've been following this thread with interest.  I created a test workflow
> triggered by a BOR event and attempted to instantiate the class equivalent
> via a container operation that referenced a 'CreateInstance' functional
> method.  I assumed that the key of the BOR object needed to be coded in
> the Expression field of the container operation, but all the examples I
> can see have the input parameter hard-coded (eg. &ZCL_plant
> .....IV_PLANT='1000'&). However, in order to instantiate the class the
> input parameter needs to be dynamically referenced from the BOR object
> key.  However, when I try to reference the BOR object key field an invalid
> data or syntax error is rendered.  Do you have any advice?
>
>
> Karl Nietz
>
>
>
>
> From:
> "Dart, Jocelyn" <jocelyn.dart at sap.com>
> To:
> "SAP Workflow Users' Group" <sap-wug at mit.edu>
> Date:
> 15/02/2011 12:41 PM
> Subject:
> RE: ABAP Objects vs. BOR to trigger event? (Thanks Jocelyn -    Questions
> answered)
>
>
>
> No worries Rick. Glad to offer what help we can.
>
> One proviso... FOR THE BENEFIT OF EVERYONE...
>
> Watch you put in the CONSTRUCTOR method of your class. You want to put
> anything with potential performance issues into its own method rather than
> drag the whole class down on instantiation.
>
> Also in particular I would avoid creating recursive calls - i.e.
> instantiating another class in your constructor which instantiates your
> class in its constructor.  The risk of course is creating an infinite loop
> or at worst a nasty deadlock.  Hopefully you wouldn't factor your classes
> that way anyway, but it doesn't hurt to state it in your workflow strategy
> guide for the site... to cater for varying degrees of OO knowledge of your
> developers.
>
> Hope that helps.
> Regards,
> Jocelyn
>
> -----Original Message-----
> From: sap-wug-bounces at MIT.EDU [mailto:sap-wug-bounces at MIT.EDU] On Behalf
> Of Sample, Rick
> Sent: Saturday, 12 February 2011 3:23 AM
> To: SAP Workflow Users' Group
> Subject: RE: ABAP Objects vs. BOR to trigger event? (Thanks Jocelyn -
> Questions answered)
>
> I just needed a little direction to ensure I am starting down the correct
> path and following SAP standards best as possible. Just switching from
> standard ABAP to OO is a leap, so this helps a lot. Like most things, not
> really one simple answer.
>
> I know you folks are very busy and I really appreciate your assistance and
> patience. I will try not to misquote you folks.
>
>
> Rick Sample | SAP Workflow Analyst/Developer
> 11885 Lackland Road | Maryland Heights, MO 63146  |
> rick.sample at graybar.com
> www.graybar.com - Works to Your Advantage
>
>
>
>> -----Original Message-----
>> From: sap-wug-bounces at mit.edu
>> [mailto:sap-wug-bounces at mit.edu] On
>> Behalf Of Dart, Jocelyn
>> Sent: Thursday, February 10, 2011 6:06
>> PM
>> To: SAP Workflow Users' Group
>> Subject: RE: ABAP Objects vs. BOR to
>> trigger event?
>>
>> Hi Rick,
>> We regularly use your option 3 below
>> where the config doesn't easily allow us to
>> repoint to an ABAP class. Yes it's possible
>> to write an event receiver function module
>> to transform the object event to a class
>> event but this takes some skill and you
>> need to consider the risk of introducing
>> event errors into your code.
>>
>> SWEHR1/2/3 are fairly easy to work with
>> as there are plenty of examples of the
>> function module that shows how to adjust
>> the event being raised.
>>
>> Similarly change documents config very
>> easily allows OO events to be raised.
>>
>> But status mgt doesn't give an option for
>> OO :-( and most of the other special event
>> config doesn't consider it.
>>
>> Of course if you are raising events from
>> your own code or user exit ABAP OO
>> event raise is easy enough.
>>
>> Regards,
>> Jocelyn
>>
>>
>> __________________________________
>> ______
>> From: sap-wug-bounces at mit.edu [sap-
>> wug-bounces at mit.edu] On Behalf Of
>> Sample, Rick [Rick.Sample at graybar.com]
>> Sent: Friday, 11 February 2011 2:47 AM
>> To: SAP Workflow Users' Group
>> Subject: RE: ABAP Objects vs. BOR to
>> trigger event?
>>
>> Hi Jocelyn, Mike and Mike,
>>
>> No real hurry on this project, learning
>> thing. I want to be as forward thinking as
>> practical and possible and follow best
>> practices.
>> So Little clarification please. (I am ordering
>> the 2nd addition. will need that for others
>> anyway)
>>
>> Like most shops, we have many existing
>> WFs in BOR and little in the way of OO
>> staffing. So, ABAP Objects must coexist
>> with BOR.  Rewrite where needed, leave
>> rest alone until business reason dictates
>> re-write.
>>
>> If I use the BOR objects only for GOS, I
>> need clarification on where to plug these
>> in.
>> 1. Event Receiver (from a BOR event) and
>> create my ABAP event to trigger. We have
>> high volume, so this may not be good for
>> us.
>>
>> 2. SAP Config (as stated in something I
>> read, was not really ready yet?)  SWEC?
>> Add my ABAP Objects onChange, Create,
>> Delete?
>>
>> 3. My prior post, which no one seemed to
>> like, GET_INSTANCE after BOR event
>> triggered and WF started.
>>
>> I am flexible at this point. Learning prj and
>> would like to conform to best practices.
>> The OO to WF hurdle is still a learning
>> thing, so I have a bit of time to make
>> changes.
>>
>> Thanks much folks and Best Regards,
>> Rick
>>
>> > -----Original Message-----
>> > From: sap-wug-bounces at mit.edu
>> > [mailto:sap-wug-bounces at mit.edu] On
>> > Behalf Of Dart, Jocelyn
>> > Sent: Wednesday, February 09, 2011
>> > 11:52 PM
>> > To: 'SAP Workflow Users' Group'
>> > Subject: RE: ABAP Objects vs. BOR to
>> > trigger event?
>> >
>> > Hi Rick,
>> > Just FYI.
>> > On my sites, we actually always use the
>> opposite approach i.e. use the
>> > class for everything and just use the
>> BOR for events/GOS.
>> > I did have one site use the event
>> receiver fm to convert a bor event
>> > to an OO event at runtime - so it does
>> work but we haven't bothered
>> > with this again.
>> > The overhead of instantiating a class is
>> usually pretty minimal  and
>> > so often you need to recode the bor
>> object anyway ,e.g. because
>> > there's some unwanted auth check or
>> awkward formatting anyway.
>> >
>> > It gets away from having to teach
>> > developers BOR coding at all.
>> > Regards,
>> > Jocelyn
>> >
>> > -----Original Message-----
>> > From: sap-wug-bounces at mit.edu
>> > [mailto:sap-wug-bounces at mit.edu] On
>> > Behalf Of Sample, Rick
>> > Sent: Thursday, February 10, 2011 6:25
>> AM
>> > To: SAP Workflow Users' Group
>> > Subject: RE: ABAP Objects vs. BOR to
>> > trigger event?
>> >
>> > Mike P / Mike GT,
>> >
>> > Forgot about the need for BOR to use
>> > GOS.
>> >
>> > The need for BOR to use GOS is a big
>> > one for determining my approach to this
>> low priority prj. This is a
>> > re-write of one of our first WFs (newbie
>> code, patches galore, etc.)
>> > so would like to look forward as far as
>> possible, but grey areas to be
>> > figured out by SAP at a later time, I will
>> just avoid for now.
>> >
>> > Replacement for BOR-GOS or
>> > coexistence of ABAP Objects-GOS?
>> Time
>> > line? SAP plan?
>> >
>> > I need BOR to use GOS, so I think I will
>> simply continue to use BOR
>> > for all the events, links, etc. and add in
>> only new ABAP Object code
>> > where required. I can already just
>> instantiate the object or as you
>> > stated below.
>> >
>> > This seems like the simplest approach to
>> me. This sounds like what
>> > most will be required to do anyway
>> unless a complete custom app with
>> > all its own events, etc.
>> > etc. Yes?
>> >
>> > Thanks,
>> > Rick
>> >
>> >
>> > > -----Original Message-----
>> > > From: sap-wug-bounces at mit.edu
>> > > [mailto:sap-wug-bounces at mit.edu]
>> On
>> > > Behalf Of Mike Pokraka
>> > > Sent: Wednesday, February 09, 2011
>> > > 11:27 AM
>> > > To: SAP Workflow Users' Group
>> > > Subject: RE: ABAP Objects vs. BOR
>> to trigger event?
>> > >
>> > > Hi Rick,
>> > >
>> > > Yes it is unfortunately necessary to
>> have
>> > both in most cases.
>> > > Sometimes I just have the BOR in the
>> > WF container purely so the
>> > > workflow is visible from GOS. There
>> are
>> > ways around that too but some
>> > > things aren't always worth the effort.
>> > >
>> > > A couple of ways around the
>> > instantiation:
>> > > 1.  An event replicator. The BOR
>> event
>> > receiver in SWETYPV is a method
>> > > that looks at the BOR event and
>> raises
>> > the clas event which starts the
>> > > workflow. Not suitable for high-volume
>> > processes.
>> > > 2. First prize is always to raise a class
>> > event in first place. If
>> > > using change docs or the likes you're
>> all
>> > set.
>> > > 3. Create class instance in WF. This is
>> > what you have done, but far
>> > > less performance overhead is via a
>> > static GET_INSTANCE functional
>> > > method on the
>> > > class: this can then be called in a
>> > > conatiner operation step or even in a
>> binding of the first step that
>> > > needs it.
>> > >
>> > > This is all explained in the second
>> edition
>> > of the WF book. Author's
>> > > prceeds go to charity so this is not
>> > advertising :-)
>> > >
>> > > Cheers,
>> > > Mike
>> > >
>> > >
>> > > On Wed, February 9, 2011 4:39 pm,
>> > > Sample, Rick wrote:
>> > > > Note: I added a hack. I catch the
>> BOR
>> > > Created event, then in
>> > > > background task, call a
>> > > CREATE_INSTANCE method to
>> > populate
>> > > the ABAP
>> > > > objects instance, but this seems a
>> little
>> > > bit of a kludge way to do it.
>> > > >
>> > > >
>> > > >
>> > > >> -----Original Message-----
>> > > >
>> > > >> From: sap-wug-bounces at mit.edu
>> > > >
>> > > >> [mailto:sap-wug-bounces at mit.edu]
>> > On
>> > > >
>> > > >> Behalf Of Sample, Rick
>> > > >
>> > > >> Sent: Wednesday, February 09,
>> > 2011
>> > > >
>> > > >> 10:14 AM
>> > > >
>> > > >> To: SAP Workflow Users' Group
>> > > >
>> > > >> Subject: ABAP Objects vs BOR to
>> > > trigger
>> > > >
>> > > >> event?
>> > > >
>> > > >>
>> > > >
>> > > >> Hi all,
>> > > >
>> > > >>
>> > > >
>> > > >> I am playing around with a WF
>> using
>> > > >
>> > > >> ABAP Objects. I built the object,
>> wf,
>> > > some
>> > > >
>> > > >> tasks, and all seems to be going
>> fine.
>> > > >
>> > > >>
>> > > >
>> > > >> The WF will be based on Sales
>> > > >
>> > > >> (BUS2032). I will obviously need to
>> > run
>> > > >
>> > > >> both BOR and ABAP objects to
>> > trigger
>> > > the
>> > > >
>> > > >> CREATE, CHANGED, etc. events.
>> > > When
>> > > >
>> > > >> BUS2032.CREATE triggers, how to
>> I
>> > > also
>> > > >
>> > > >> trigger ABAP Objects?
>> > > >
>> > > >>
>> > > >
>> > > >> What is the "Best practices" to run
>> > side
>> > > by
>> > > >
>> > > >> side? I have several PDFs, but do
>> > not
>> > > see
>> > > >
>> > > >> this addressed.
>> > > >
>> > > >>
>> > > >
>> > > >> Thanks,
>> > > >
>> > > >> Rick
>> > > >
>> > > >>
>> > > >
>> > > >>
>> > >
>> >
>> __________________________________
>> > > >
>> > > >> _____________
>> > > >
>> > > >> 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
>
> _______________________________________________
> 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