Skip to Content
author's profile photo
Former Member

Automatic call of OLI3BW (in R/3)

To be able to initialise the LIS extractors for purchase we usually schedule a number of parallel processes. I have written an ABAP that proposes document-ranges to have equal size running times for each parallel process. Currently I manually type these proposed ranges in the transaction OLI3BW.

I would rather extend my ABAP to automatically enter the ranges in the OLI3BW transaction and to schedule that range automatically. Unfortunately, my ABAP knowledge is insufficient to create such an extension.

I would like a 'wrapper' for the OLI3BW transaction that I can call like this:

CALL FUNCTION wrapper_oli3bw


range_low = r_lo

range_high = r_hi

start_time = time

start_date = date.

Any suggestions on how to accomplish this? Any ideas on how to automate initialisations differently are also welcome.

Note: I started this topic in the Business Intelligence forum, but I feel this is more generally an ABAP question.

One of the answers I got was to look at the module RS_CREATE_VARIANT. This function seems usable but...

I am afraid that I need a bit of help with this function.

Can you indicate briefly how to call this function?

I want to call OLI3BW. Lets say for documents '0001' to '0999'. How would I call RS_CREATE_VARIANT?

< -



DATA wt_parm like rsparams occurs 0 with header line.

wt_parm-SELNAME = ?????

wt_parm-KIND = ?????

wt_parm-SIGN = 'I'.

wt_parm-OPTION = 'BT'.

wt_parm-LOW = '0001'.

wt_parm-HIGH = '0999'.

append wt_parm.



curr_report = ????

curr_variant = 'my_var_name'

vari_desc = 'My generated var'


vari_contents = wt_parm

vari_text = ????

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

1 Answer

  • author's profile photo
    Former Member
    Oct 05, 2005 at 10:58 AM


    I would recommend to use 'call transaction' statement for this. Therefore you will need an abap that is calling the transaction with your different ranges. It might be possible to enter the ranges in a select-option or in a custom defined database table.

    But with this it is only possible to fill the setup tables step by step and at the end you will have all documents in there. But I guess that you want to extract the data also step by step after each range, won't you? If not, so why don't you run oli3bw in background for all documents?



    Add comment
    10|10000 characters needed characters exceeded

    • Former Member

      The trick is that if I create one job with the whole range, one batch process will execute the init (in R/3 4.5B). If I split it into 8 ranges, 8 batch-jobs will run in parallel. The init is then 8 times faster!

      This is of course only true if the database can handle the throughput for these 8 processes. We have checked this with trace. 80%-90% of the time that init needs is on the application server. Only 10%-20% is database access time. So the database server is not the bottleneck.

      I have never used the CALL TRANSACTION function before (my limited ABAP experience is more in BW where everything runs in background processes). Do you have any suggestions how I can call OLI3BW with this function? Specifically how I can fill the selection-option with my document range.