WF_BWP_DYN_COLUMN

JANSSENS Koenraad Koenraad.JANSSENS at swift.com
Mon Jun 21 09:04:11 EDT 2010


Well, if it instantiates the object each time again for each attribute then indeed there can be an advantage (in our case).

Yep, that I can see.. one big select with an IN statement with object keys. (and then if overloaded run on the sql error.. too many entries for IN statement ;-)  )
(e.g. all vbeln for vbak-credat or something)

The problem I currently have is just to get it working.. to have it fill in one of the columns...  the BADI is executed but the changes made in it are ignored.
Anyway.. will tinker further with it tomorrow ...

Best regards

>-----Original Message-----
>From: sap-wug-bounces at mit.edu [mailto:sap-wug-bounces at mit.edu] On Behalf Of Mike Pokraka
>Sent: Monday, June 21, 2010 2:51 PM
>To: SAP Workflow Users' Group
>Subject: RE: WF_BWP_DYN_COLUMN
>
>Not sure about the exact problem you're having (I haven't needed to use
>the BAdI myself), but in terms of performance there is definitely a
>benefit.
>
>Normally, the inbox would:
>- read the container
>- instantiate the object
>- evaluate the attribute
>for EACH work item, one after the other. This means one or more SELECTs
>per work item (depending on what the objects do during instantiation).
>
>Deadly.
>
>Using the BADI allows you to skim through the object keys and group
>everything into a single query that bypasses object instantiation or
>attribute reads.
>
>Better but still best confined to a low number of items.
>
>On another note, I did a fair bit of testing on inbox performance and it's
>quite surprising how many times it will instantiate container objects.
>Poorly designed objects can easily drag your system performance down even
>without the help of Dynamic Columns.
>This is also one area where ABAP Classes have the potential to be more
>efficient than BOR, if they are well-designed.
>
>Cheers,
>Mike
>
>
>On Mon, June 21, 2010 12:13 pm, JANSSENS Koenraad wrote:
>> Thanks for responding Mike.
>>
>> I think I saw the slide in a presentation for advanced workflow
>> techniques.
>>
>> I agree with you on the process stuff.. but as often is the case generally
>> users don't want to change too much their way of working.
>> The problem is that I lack to see the performance improvement.. in the end
>> the same attributes must be fetched from the same objects.  (you can't
>> bypass everything with a giant select)
>>
>> Anyway... I don't seem to be able to make the BADI work either.  As an
>> example for myself.. I just calculated a random value (# days in inbox)
>> and put it in one of the dynamic columns.. however it doesn't want to
>> display.
>>
>> I put  EX_BUFFER_UPDATE = 'X' and VALUES_SET = 'X' for each line in the
>> output table.. but nada :)
>>
>> Best regards
>>
>> Koenraad
>>
>>
>>>-----Original Message-----
>>>From: sap-wug-bounces at mit.edu [mailto:sap-wug-bounces at mit.edu] On Behalf
>>> Of Mike Pokraka
>>>Sent: Monday, June 21, 2010 12:59 PM
>>>To: SAP Workflow Users' Group
>>>Subject: RE: WF_BWP_DYN_COLUMN
>>>
>>>Hi Koenraad,
>>>
>>>You're vaguely on the right track - it's basically a way of
>>> pre-populating
>>>what the inbox would otherwise read for each work item. There's a slide
>>> on
>>>it over here:
>>>http://www.sdn.sap.com/irj/scn/events?rid=/library/uuid/c6456e89-0a01-0010-0189-a7961fe42034
>>>
>>>Dynamic Columns can be very beneficial for selective low-medium volume
>>>workflows. As Mike mentioned, performance deteriorates rapidly with large
>>>numbers of work items. One killer is that users can activate the columns
>>>at the inbox top level. I've thought about disabling this (i.e. the
>>>columns only become available in the "grouped by task" view for a
>>> specific
>>>task), but never had the need to dig past the idea stage. Should be
>>> doable
>>>as an enhancement.
>>>
>>>There's also the business argument of how effective your processes are if
>>>you have too many work items in the inbox at any given time, so you may
>>>have a look at it from that angle as well. Inboxes with more than a
>>> couple
>>>of hundred work items is often a sign things could be done more
>>>efficiently.
>>>
>>>Cheers,
>>>Mike
>>>
>>>
>>>On Mon, June 21, 2010 6:20 am, JANSSENS Koenraad wrote:
>>>> I know.. but that’s not really answering my question ☺ and
>>>> it’s not
>>>> a viable option here…
>>>>
>>>> From: sap-wug-bounces at mit.edu [mailto:sap-wug-bounces at mit.edu] On
>>>> Behalf
>>>> Of Madgambler
>>>> Sent: Friday, June 18, 2010 4:31 PM
>>>> To: SAP Workflow Users' Group
>>>> Cc: SAP Workflow Users' Group
>>>> Subject: Re: WF_BWP_DYN_COLUMN
>>>>
>>>> Simple rule: never, ever use dynamic columns. Your system performance
>>>> will
>>>> plummet at high volume.
>>>>
>>>> Avoid at all costs.
>>>>
>>>> Sent from my iPhone
>>>>
>>>> On 18 Jun 2010, at 14:28, JANSSENS Koenraad
>>>> <Koenraad.JANSSENS at swift.com<mailto:Koenraad.JANSSENS at swift.com>>
>>>> wrote:
>>>> Hi,
>>>>
>>>> Did anyone among you already implement BADI WF_BWP_DYN_COLUMN ?
>>>> Can somebody please clarify a bit the possible performance gains
>>>> here…
>>>>
>>>> I will try to summarize what I know:
>>>>
>>>> The workflow inbox provides 6 dynamic columns which via customizing can
>>>> display up to 6 values from the task container, making it easier for
>>>> users
>>>> to select, prioritise, filter, … workitems.
>>>> However this does have its impact on performance.
>>>>
>>>> Now here this BADI is triggered when you display your inbox.. and you
>>>> get
>>>> a list of all wi_id’s, their task and the setup done for dynamic
>>>> columns.  Those values are often attributes of a BOR.
>>>> Let’s keep it simple and say that it are all sales order objects
>>>> (US2032) of which you want for instance the DocumentDate.  Now in order
>>>> to
>>>> make the query you will need to read every wi container.
>>>>
>>>> This will return you something like element: SalesOrder value
>>>> BUS20320000770044 .  So then you can derive the object id from the
>>>> value
>>>> string… and combine all to make one query like
>>>>
>>>> SELECT vbeln audat into table lt_custom_table
>>>> FROM VBAK
>>>> WHERE vbeln IN lr_vbeln
>>>>
>>>> Is that the advantage?
>>>>
>>>> Best Regards
>>>>
>>>> Koenraad
>>>> _______________________________________________
>>>> SAP-WUG mailing list
>>>> SAP-WUG at mit.edu<mailto: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