Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Standard Program - Parallel Processing

Former Member
0 Likes
2,782

Hi Gurus -

Is there any standard program or transaction which allows me to execute another program parallely ( in background with multiple sessions ) ? ( It's not SM37 ).

Thanks

John

13 REPLIES 13
Read only

naimesh_patel
Active Contributor
0 Likes
2,082

If you are concerning about report, than you can run more than 1 report simentanously.

Let's say FBL5N (Customer line items) report, you can in two session for same selection criteria. But keep in mind that both this session has no relations internally.

Regards,

Naimesh Patel

Read only

Former Member
0 Likes
2,082

Hi John,

Sorry, but didn't got what you actually looking for.

Regards,

Atish

Read only

0 Likes
2,082

Hi Guys -

Thanks for your reply. I have a program which takes lots of time to complete. The input to this program is Article/Material number and I am executing the program for 1000k articles. I am thinking about an option of creating batch jobs each with 10k articles running parallely. But, I don't want to create 100 variants and execute it via SM37. Is there any other option to accomplish my requirement ? Any programs / transaction codes which will help me to do the job.

Thanks

John

Read only

0 Likes
2,082

Hi John,

But what is the point in creating multiple background jobs with splitting of records. Then you can just split your selection and run the same program again for all of them. And if the program is going to be run in background and it is not dumping then there is no need to split it in multiple batches.

Regards,

Atish

Read only

0 Likes
2,082

Yes ... we can do it.. but it is little bit complex.

My plan is to schedule a job from one program.

Like:

1. PRogram 1 will select the data for only the material number.

2. Move the requried data 10K to one internal table

Export this table to memory ...

3. Schedule a job programatically for the main program which is taking much time in the first program itself.

- JOB_OPEN

- SUBMIT MAIN_REPORT WITH SOME PARAMETERS VIA JOBNUMBER AND JOBNAME

- JOB_CLOSE

4. In the Main program, fatch the data from the memory

IMPORT ITAB FROM MEMROY ID 'ZSDDD'.

Step 2 to 4 will be in the loop.

LOOP AT  ITAB . "Table with 100K records
   STEP 2
   STEP 3
   STEP 4
ENDLOOP.

Regards,

Naimesh Patel

Read only

0 Likes
2,082

The program takes 6hours to process 1000k articles. If I can split it into 100 batches of 10k each (10 of them running in parallel at any point in time, till all the batches are completed), I can drastically reduce the processing time.

Thanks

John

Read only

0 Likes
2,082

Thanks Naimesh for your inputs. But, it involves development effort. I am looking for a generic program / tcode which helps me to do it. I dont have any budget to hire an ABAP developer to accomplish this task

Thanks

John

Read only

0 Likes
2,082

I don't have any idea about any standard program which can do this, but I think so there will not be any standard.

As you said it is taking much more time in execution, you can schedule the job Over Night. SO, when you come next morning you will have your job finished. Just a thought ..!

Regards,

Naimesh Patel

Read only

0 Likes
2,082

Hi John,

You can built a logic as below.

Use the PACKAGE SIZE to retrieve the data. So lets say your package size is 10K.

SELECT...PACKAGE SIZE 10000..

SUBMIT these 10K to background job..

ENDSELECT.

Just before submitting them to the background you need to do some kind of verifications as the status of the earlier job and its results etc. It's just a rough idea but you need to build logic something like this.

Regards,

Atish

Read only

0 Likes
2,082

Hi John,

You have given the idea of parallel processing of batch jobs. Actually I have got exactly the same problem in my scenario.

In my case there is a program logic that as the number of customers are greater than 30000, the program exits. Now I need to process more than 30000 record but in the same time I need to maintain exactly the same time to finish the process. I am really very worried to solve the problem . So can you please help me with sample programs so as to divide more than 30000 records into parts and run them them in jobs in parallel process. I need it soon.

Thanks & Regards,

Abhik Biswas

Read only

Former Member
0 Likes
2,082

Hi,

To multitask an abap program, a standard way is to use asynchronous RFC calls with this syntax :

CALL FUNCTION func STARTING NEW TASK task

[DESTINATION {dest|{IN GROUP {group|DEFAULT}}}]

parameter_list

[{PERFORMING subr}|{CALLING meth} ON END OF TASK].

Extras:

1. ... DESTINATION IN GROUP {group|DEFAULT}

2. ... {PERFORMING subr}|{CALLING meth} ON END OF TASK

Check this example :

<a href="http://help.sap.com/saphelp_nw70/helpdata/en/22/042592488911d189490000e829fbbd/frameset.htm">Asynchronous RFC Parallel processing Example</a>

Best Regards,

Olivier

Read only

Former Member
0 Likes
2,082

There is a standard program that does exactly this - but I can't recall the name and I've had trouble finding reference to it... I'm going to keep looking and will post it back here ASAP.

Read only

Former Member
0 Likes
2,082

Try transaction code WLCPAR - there is very explicit program documentation available from the 'info' icon. If this works for you please consider points...