Parallel Processing framework using package BANK_PP_JOBCTRL

Hi All,
I am analyzing differnt parallel processing techniques available in SAP and need some input on Parallel Processing framework using package BANK_PP_JOBCTRL.
Can someone please let me know if you have any documentation available with you on this framework.
I have couple of questions on this framework as mentioned below.
1) This framewrok was develped as part of SAP Banking soltion. So is it possible to leverage it for other modules in SAP since now it is part of SAP_ABA component.
2) What are the benfits of it over other technique like asynchronous Remote function call (aRFC).
Any inputs on this will be of great help since there is very less documentation available on this topic on net.
Regards/Ajay Dhyani

Hello,
Apologies, never saw this thread and your query and i already worked it out myself during the time i posted it . If you are still interested here are some of the inputs for you.
With in package bank_pp_jobctrl , you will find these FM. I have mentioned the use of it as well.
RBANK_PP_DEMO_GENERATE_DATA: To create the Business data for Parallel Processing.
RBANK_PP_DEMO_CREATE_PACKMAN: To create Packages out of the business data.
RBANK_PP_DEMO_START : To process data in parallel.
RBANK_PP_DEMO_RESTART: To re-process failed records during parallel Processing.
You will need to call above in your report program in the same sequence as shown above based on you requirement. I did used only first three.
TO generate events you will need to execute SE38: RBANK_PP_GENERATE_APPL to create application this will create the FM with numbers as shown below.
Events: This PPF automatically triggers various events during the execution of the Start Program. Each of this event is associated with a custom function module which contains the business logic.
For implementing this framework, at least the below mentioned methods should be implemented .
0205 – Create Package Templates  : This method is used to write the logic for creating packages which in turn decides the data to be processed in parallel. This function module is called in loop at the loop ends only when the exporting parameter E_FLG_NO_PACKAGE has a value ‘X’ passed back to the Parallel processing framework.
1000 – Initialize Package :This method is the first step in processing a package. It fetches all the parameters required for the parallel processing to start. All the parameters are passed to this FM as importing parameters and it is the responsibility of this FM to save it in global parameters so that it can be utilized by Parallel processing framework.
1100 – Selection per Range : This method is used to read data for a package. The objects selected must be buffered in global data areas of the application for later processing. The package information is stored as interval in global parameters and this information is used to select the package specific data.
1200 – Selection for Known Object List: This method is used instead of method 1100 if it is a restart run. The objects to be processed are known already.
1300 – Edit Objects: The processing logic to be implemented using parallel processing for the selected objects is written in this method. This function module is used to implement the business logic and
Also, obiviously you would like to log your messages , so the framwrok provides macros to do it.
Let me know if you need some further help as I know there is very little information provided on this.
Regards/Ajay

Similar Messages

  • Parallel processing in Info package

    Hi All,
    I want to increase the parallel processing for pulling the data from R/3 to PSA. I dont find any options available in Info package. Like DTP, is there any options available to increase the parallel processing from R3 to PSA.
    Please suggest how to reduce the data loading time from R/3 to PSA ?
    Thanks

    Hi Jalina,
    As suggested by Michael can you please check following tables in your R/3 system.
    Regards,
    Ganesh Bothe

  • Framework for parallel processing

    Hello,
    Can anyone help me by giving some links or examples as to how to use the framework for parallel processing ?? (FPP)
    My scenario is that I have a report that handles huge volumes of data and process it. But at present my report is not able to handle huge volume and it either dumps or hangs. So I would want to use the parallel processing framework which would then can handle huge volumes and also reduce the time for execution.
    Thanks and Regards,
    Sandhya

    Is there anyone can provide some comments?

  • Performance in Parallel Processing

    Hi,
    My program model is as follows:
    I have a RFC FM(ZRFC_BACKGROUND) that will be called in BACKGROUND TASK and
    This FM in turn will call a child process(another RFC FM(ZRFC_CHILD)) in parallel for packages that are created in ZRFC_BACKGROUND
    We can use around 10 work processes that belongs to one server group, for parallel processing
    Facts regarding Packaging:
    One Package has 4 retry attempts due to locking issues.if there is an error in child process, the package is held back in FM : ZRFC_BACKGROUND and re triggered after sometime
    Locking issues are frequent.
    Data in DB tables on which I will put SELECT query:
    Header        Table LIKP (With approximately 1 Million Entries) (My select query will fetch around    800 entries)
    Item             Table LIPS (With approximately 6 Million Entries) (My select query will fetch around 10000 entries)
    Partner        Table VBPA (With around 3 Million Entries) (My select query will fetch around 3000 entries)
    Reference   Table LIPSRF (With around 74 million entries) (My select query will fetch around 10000 entries)
    My QUESTION is which of the following approach is better:
         To put LIKP select query in the first background FM ZRFC_BACKGROUND and pass it to ZRFC_CHILD and do remaining query in ZRFC_CHILD
         OR to put all the select query in ZRFC_BACKGROUND
    Please keep following things in mind :
    As we know it is not recommended to pass huge tables in RFC as it may increase the network load (In case of select query in ZRFC_BACKGROUND, network load will be more)
    But it is also not recommended to do DB select several times (In case of select query in ZRFC_CHILD, db read time will be more )
    On the basis of aove facts, please suggest which is the better approach.
    Regards
    Rocky

    Hi Rocky,
    Why do you have locking issues? In the worst case, parallel processing will not help at all or even slow down the process if there are too many locks. Ideally, parallel tasks should not collide with each other. Which tables do you update / insert?
    How big are your packages? How long do they take to process?
    From the database point of view, it will not make a big difference whether you select 1 x 10000 entries or 100 x 100 entries. On the other side, if your second approach leads to additional database accesses as compared to the first one, this of course could slow down the process.
    Best Regards, Randolf

  • Parallel process in Application engine

    could any one explain me what is parallel process in Application engine where temp table is use?
    give me with example?

    Parallel processing is used when considerable amounts of data must be updated or processed within a limited amount of time, or batch window. In most cases, parallel processing is more efficient in environments containing partitioned data.
    To use parallel processing, partition the data between multiple concurrent runs of a program, each with its own dedicated version of a temporary table (for example, PS_MYAPPLTMP). If you have a payroll batch process, you could divide the employee data by last name. For example, employees with last names beginning with A through M get inserted into PS_MYAPPLTMP1; employees with last names beginning with N-Z get inserted into PS_MYAPPLTMP2.
    To use two instances of the temporary table, you would define your program (say, MYAPPL) to access to one of two dedicated temporary tables. One execution would use A-M and the other N-Z.
    The Application Engine program invokes logic to pick one of the available instances. After each program instance gets matched with an available temporary table instance, the %Table meta-SQL construct uses the corresponding temporary table instance. Run control parameters passed to each instance of the MYAPPL program enable it to identify which input rows belong to it, and each program instance inserts the rows from the source table into its assigned temporary table instance using %Table. The following diagram illustrates this process:
    Multiple program instances running against multiple temporary table instances
    There is no simple switch or check box that enables you to turn parallel processing on and off. To implement parallel processing, you must complete the following set of tasks. With each task, you must consider details regarding your specific implementation.
    Define and save temporary table records in PeopleSoft Application Designer.
    You don't need to run the SQL Build process at this point.
    In PeopleSoft Application Engine, assign temporary tables to Application Engine programs, and set the instance counts dedicated for each program.
    Employ the %Table meta-SQL construct so that PeopleSoft Application Engine can resolve table references to the assigned temporary table instance dynamically at runtime.
    Set the number of total and online temporary table instances on the PeopleTools Options page.
    Build temporary table records in PeopleSoft Application Designer by running the SQL Build process.

  • Parallel processing in background

    Hi All,
    I am processing 1 million of records in background, which takes approximately around 10 hrs. I wanted to reduce the time to less than 1 hr and tried using parallel processing. But the tasks run in Dialog workprocesses and giving abap short dumps due to time out.
    Is there any other solutions using that i can reduce total processing time.
    Please note that i cannot split. I am getting 1 million records from a select query and after processing all those records in SAP, I am sending to XI and XI will post in legacy system.
    Please note that all other performance tunings done.
    Thanks,
    Rajesh.

    Hi Rajesh,
    Refer sample code for <b>Parallel Processing</b>:
    By doing this your <b>processing</b> time will be highly optimized.
    Go thru the description given in the code at each level.
    This code Checks available WORK PROCESSes and assigns data in packets for processing. This way you save a lot of time esp when data is in Millions.
    Hope it helps.
    REPORT PARAJOB.
    Data declarations
    DATA: GROUP LIKE RZLLITAB-CLASSNAME VALUE ' ',
    "Parallel processing group.
    "SPACE = group default (all
    "servers)
    WP_AVAILABLE TYPE I, "Number of dialog work processes
    "available for parallel processing
    "(free work processes)
    WP_TOTAL TYPE I, "Total number of dialog work
    "processes in the group
    MSG(80) VALUE SPACE, "Container for error message in
    "case of remote RFC exception.
    INFO LIKE RFCSI, C, "Message text
    JOBS TYPE I VALUE 10, "Number of parallel jobs
    SND_JOBS TYPE I VALUE 1, "Work packets sent for processing
    RCV_JOBS TYPE I VALUE 1, "Work packet replies received
    EXCP_FLAG(1) TYPE C, "Number of RESOURCE_FAILUREs
    TASKNAME(4) TYPE N VALUE '0001', "Task name (name of
    "parallel processing work unit)
    BEGIN OF TASKLIST OCCURS 10, "Task administration
    TASKNAME(4) TYPE C,
    RFCDEST LIKE RFCSI-RFCDEST,
    RFCHOST LIKE RFCSI-RFCHOST,
    END OF TASKLIST.
    Optional call to SBPT_INITIALIZE to check the
    group in which parallel processing is to take place.
    Could be used to optimize sizing of work packets
    work / WP_AVAILABLE).
    CALL FUNCTION <b>'SPBT_INITIALIZE'</b>
    EXPORTING
    GROUP_NAME = GROUP
    "Name of group to check
    IMPORTING
    MAX_PBT_WPS = WP_TOTAL
    "Total number of dialog work
    "processes available in group
    "for parallel processing
    FREE_PBT_WPS = <b>WP_AVAILABLE</b>
    "Number of work processes
    "available in group for
    "parallel processing at this
    "moment
    EXCEPTIONS
    INVALID_GROUP_NAME = 1
    "Incorrect group name; RFC
    "group not defined. See
    "transaction RZ12
    INTERNAL_ERROR = 2
    "R/3 System error; see the
    "system log (transaction
    "SM21) for diagnostic info
    PBT_ENV_ALREADY_INITIALIZED = 3
    "Function module may be
    "called only once; is called
    "automatically by R/3 if you
    "do not call before starting
    "parallel processing
    CURRENTLY_NO_RESOURCES_AVAIL = 4
    "No dialog work processes
    "in the group are available;
    "they are busy or server load
    "is too high
    NO_PBT_RESOURCES_FOUND = 5
    "No servers in the group
    "met the criteria of >
    "two work processes
    "defined.
    CANT_INIT_DIFFERENT_PBT_GROUPS = 6
    "You have already initialized
    "one group and have now tried
    "initialize a different group.
    OTHERS = 7..
    CASE SY-SUBRC.
    WHEN 0.
    "Everything’s ok. Optionally set up for optimizing size of
    "work packets.
    WHEN 1.
    "Non-existent group name. Stop report.
    MESSAGE E836. "Group not defined.
    WHEN 2.
    "System error. Stop and check system log for error
    "analysis.
    WHEN 3.
    "Programming error. Stop and correct program.
    MESSAGE E833. "PBT environment was already initialized.
    WHEN 4.
    "No resources: this may be a temporary problem. You
    "may wish to pause briefly and repeat the call. Otherwise
    "check your RFC group administration: Group defined
    "in accordance with your requirements?
    MESSAGE E837. "All servers currently busy.
    WHEN 5.
    "Check your servers, network, operation modes.
    WHEN 6.
    Do parallel processing. Use CALL FUNCTION STARTING NEW TASK
    DESTINATION IN GROUP to call the function module that does the
    work. Make a call for each record that is to be processed, or
    divide the records into work packets. In each case, provide the
    set of records as an internal table in the CALL FUNCTION
    keyword (EXPORT, TABLES arguments).
    DO.
    CALL FUNCTION 'RFC_SYSTEM_INFO' "Function module to perform
    "in parallel
    STARTING NEW TASK TASKNAME "Name for identifying this
    "RFC call
    DESTINATION IN GROUP group "Name of group of servers to
    "use for parallel processing.
    "Enter group name exactly
    "as it appears in transaction
    "RZ12 (all caps). You may
    "use only one group name in a
    "particular ABAP program.
    PERFORMING RETURN_INFO ON END OF TASK
    "This form is called when the
    "RFC call completes. It can
    "collect IMPORT and TABLES
    "parameters from the called
    "function with RECEIVE.
    EXCEPTIONS
    COMMUNICATION_FAILURE = 1 MESSAGE msg
    "Destination server not
    "reached or communication
    "interrupted. MESSAGE msg
    "captures any message
    "returned with this
    "exception (E or A messages
    "from the called FM, for
    "example. After exception
    "1 or 2, instead of aborting
    "your program, you could use
    "SPBT_GET_PP_DESTINATION and
    "SPBT_DO_NOT_USE_SERVER to
    "exclude this server from
    "further parallel processing.
    "You could then re-try this
    "call using a different
    "server.
    SYSTEM_FAILURE = 2 MESSAGE msg
    "Program or other internal
    "R/3 error. MESSAGE msg
    "captures any message
    "returned with this
    "exception.
    RESOURCE_FAILURE = 3. "No work processes are
    "currently available. Your
    "program MUST handle this
    "exception.
    YOUR_EXCEPTIONS = X. "Add exceptions generated by
    "the called function module
    "here. Exceptions are
    "returned to you and you can
    "respond to them here.
    CASE SY-SUBRC.
    WHEN 0.
    "Administration of asynchronous RFC tasks
    "Save name of task...
    TASKLIST-TASKNAME = TASKNAME.
    "... and get server that is performing RFC call.
    CALL FUNCTION 'SPBT_GET_PP_DESTINATION'
    EXPORTING
    RFCDEST = TASKLIST-RFCDEST
    EXCEPTIONS
    OTHERS = 1.
    APPEND TASKLIST.
    WRITE: / 'Started task: ', TASKLIST-TASKNAME COLOR 2.
    TASKNAME = TASKNAME + 1.
    SND_JOBS = SND_JOBS + 1.
    "Mechanism for determining when to leave the loop. Here, a
    "simple counter of the number of parallel processing tasks.
    "In production use, you would end the loop when you have
    "finished dispatching the data that is to be processed.
    JOBS = JOBS - 1. "Number of existing jobs
    IF JOBS = 0.
    EXIT. "Job processing finished
    ENDIF.
    WHEN 1 OR 2.
    "Handle communication and system failure. Your program must
    "catch these exceptions and arrange for a recoverable
    "termination of the background processing job.
    "Recommendation: Log the data that has been processed when
    "an RFC task is started and when it returns, so that the
    "job can be restarted with unprocessed data.
    WRITE msg.
    "Remove server from further consideration for
    "parallel processing tasks in this program.
    "Get name of server just called...
    CALL FUNCTION 'SPBT_GET_PP_DESTINATION'
    EXPORTING
    RFCDEST = TASKLIST-RFCDEST
    EXCEPTIONS
    OTHERS = 1.
    "Then remove from list of available servers.
    CALL FUNCTION 'SPBT_DO_NOT_USE_SERVER'
    IMPORTING
    SERVERNAME = TASKLIST-RFCDEST
    EXCEPTIONS
    INVALID_SERVER_NAME = 1
    NO_MORE_RESOURCES_LEFT = 2
    "No servers left in group.
    PBT_ENV_NOT_INITIALIZED_YET = 3
    OTHERS = 4.
    WHEN 3.
    "No resources (dialog work processes) available at
    "present. You need to handle this exception, waiting
    "and repeating the CALL FUNCTION until processing
    "can continue or it is apparent that there is a
    "problem that prevents continuation.
    MESSAGE I837. "All servers currently busy.
    "Wait for replies to asynchronous RFC calls. Each
    "reply should make a dialog work process available again.
    IF EXCP_FLAG = SPACE.
    EXCP_FLAG = 'X'.
    "First attempt at RESOURCE_FAILURE handling. Wait
    "until all RFC calls have returned or up to 1 second.
    "Then repeat CALL FUNCTION.
    WAIT UNTIL RCV_JOBS >= SND_JOBS UP TO '1' SECONDS.
    ELSE.
    "Second attempt at RESOURCE_FAILURE handling
    WAIT UNTIL RCV_JOBS >= SND_JOBS UP TO '5' SECONDS.
    "SY-SUBRC 0 from WAIT shows that replies have returned.
    "The resource problem was therefore probably temporary
    "and due to the workload. A non-zero RC suggests that
    "no RFC calls have been completed, and there may be
    "problems.
    IF SY-SUBRC = 0.
    CLEAR EXCP_FLAG.
    ELSE. "No replies
    "Endless loop handling
    ENDIF.
    ENDIF.
    ENDCASE.
    ENDDO.
    Wait for end of job: replies from all RFC tasks.
    Receive remaining asynchronous replies
    WAIT UNTIL RCV_JOBS >= SND_JOBS.
    LOOP AT TASKLIST.
    WRITE:/ 'Received task:', TASKLIST-TASKNAME COLOR 1,
    30 'Destination: ', TASKLIST-RFCDEST COLOR 1.
    ENDLOOP.
    This routine is triggered when an RFC call completes and
    returns. The routine uses RECEIVE to collect IMPORT and TABLE
    data from the RFC function module.
    Note that the WRITE keyword is not supported in asynchronous
    RFC. If you need to generate a list, then your RFC function
    module should return the list data in an internal table. You
    can then collect this data and output the list at the conclusion
    of processing.
    FORM RETURN_INFO USING TASKNAME.
    DATA: INFO_RFCDEST LIKE TASKLIST-RFCDEST.
    RECEIVE RESULTS FROM FUNCTION 'RFC_SYSTEM_INFO'
    IMPORTING RFCSI_EXPORT = INFO
    EXCEPTIONS
    COMMUNICATION_FAILURE = 1
    SYSTEM_FAILURE = 2.
    RCV_JOBS = RCV_JOBS + 1. "Receiving data
    IF SY-SUBRC NE 0.
    Handle communication and system failure
    ELSE.
    READ TABLE TASKLIST WITH KEY TASKNAME = TASKNAME.
    IF SY-SUBRC = 0. "Register data
    TASKLIST-RFCHOST = INFO_RFCHOST.
    MODIFY TASKLIST INDEX SY-TABIX.
    ENDIF.
    ENDIF.
    ENDFORM
    Reward points if that helps.
    Manish
    Message was edited by:
            Manish Kumar

  • Parallel processing in large_pool

    How can you set the parallel processes to use the large_pool instead of the shared_pool on an 11gR2 database? Pre 10g, parallel_automatic_tuning would set the large_pool for processing by paralel processes. Pparallel_automatic_tuning is deprecated since 10g. Also, I know that setting the PXuse_large_pool enables parallel processing in the large_pool. If PXuse_large_pool and parallel_automatic_tuning is set to FALSE and ASSM is disabled (sga_target=0), then what else can cause parallel processing to use large_pool?

    Large Pool Sizing
    Sizing the large pool can be complex. The large pool, if configured, must be at least 600 kilobytes in size. Usually, for most MTS applications, 600 is enough. However, if PQO (parallel query option) is also used in your Oracle8,Oracle8i, or Oracle9i environment, then the size of the large pool will increase dramatically. The V$SGASTAT dynamic performance view has a new column in Oracle8 called POOL. It is used to contain the pool area where that particular type of object is being stored. By issuing a summation select against the V$SGASTAT view, a DBA can quickly determine the size of the large pool area currently being used.
    SELECT name, SUM(bytes) FROM V$SGASTAT WHERE pool='LARGE POOL' GROUP BY ROLLUP(name);
    The above select should be used when an “ORA-04031:Unable to allocate 16084 bytes of shared memory (‘large pool’, ‘unknown object’, ‘large pool hea’, ‘PX large pool’)” error is received during operation with a large pool configured (the number of bytes specified may differ). When the above select is run, the resulting summary number of bytes will indicate the current size of the pool and show how close you are to your maximum, as specified in the initialization parameter LARGE_POOL_SIZE. Generally, increasing the large_pool by up to 100 percent will eliminate the ORA-04031 errors.
    In an undocumented (as of this writing) bug in 8.1.7.1 if you have large complex SQL statements, such as a 15 table join, and nothing to force large pool usage you can get excessive CPU times, ORA-04031 and ORA_01037 errors. If you get ORA-04031, or ORA-01037 errors and aren't using the large pool try turning on parallel query by setting the parallel query processes to minimum values to force use of the large pool.

  • Pointers for optimizing system performance (run time) while running DP process chain with parallel processing

    Hi Experts,
    We are running APO DP process chain with parallel processing in our company, we are experiencing some issues regarding run time of process chain, need your help on below points;
    - What are the ways we can optimize process chain run time.
    - Special points we need to take care of in case of parallel processing profiles used in process chain.
    - Any specific sequence to be followed for different processes in process chain - if there is some best practice followed.
    - Any notes suggesting ways to improve system performance for APO version 7 with different enhancement packs 1 and 2.
    Any help will be really appreciated.
    Regards

    HI Neelesh,
    There are many ways to optimize performance of the process chains (background jobs) in APO system.
    Firstly I would recommend you to identify the pain areas (steps) which are completing with more runtimes. Then each one of the step has got different approaches to decrease the runtime.
    Like you may end up with steps like infopackage executions, DTPs, DP mass processing jobs etc which might be running with more runtimes. So now target each one of them differently and find out the ways to optimize. At the same time the approach you follow should be technically possible with basis perspective (system load and utilization) as well.
    And coming to parallel processing, you can use parallel processing for different for different jobs. You can further r explore on the same using parallel processing. Like loading an infocube, mass processing, infopackage execution, DTP, TSCOPY etc.
    Check the below link for more info
    Performance problems in DP mass processing
    Let me know if you require further info.
    Regards,
    Raj

  • Completing the block step for parallel processing

    Hello ,
    I"m  using a  ParForEach  block   .
    It works fine and  2   approves get their decision task  respectively ,
    I  want to end all parrallel  processes if one of the   approvers select the reject  option  .
    I  thought it could be done using the  End condition Option .
    I have defined an end condition    in  the tab  Parallel  Procesing  ,  the condition  is  an  element wf_result is set to REJECT
    was defined.
      But   nothing resulted and althogh i check  the container and the  element is correctly   assigned after one of the approvers
      rejects  the  other is still  sitting there.
    i  ran  the condiion evalate button  on  this step  with no   success .
    Please Advise

    Hi Rina
    In EHP4, there is the following workflows for Compensation:
    04000022 ECM_SUBMIT
    04000024 ECM_REJECT
    04000025 ECM_CREATE
    together with class CL_HRECM00_WORKFLOW_EVENT.
    There, the parallel processing is used.
    Best Regards
    Raquel

  • Parallel processing for compression

    Hello Experts,
    Is there a way to control the number of parallel processes (background) used when compressing a request in a cube?
    Sunil

    Hi Sunil,
    Kindly have a look at below link, hope this helps.
    http://help.sap.com/saphelp_nw70/helpdata/en/c5/40813b680c250fe10000000a114084/content.htm
    Regards,
    Mani

  • Parallel Processing Issue : call function starting new task

    Hi
    I am using the parallel processing functionality using the call function new task  destination in group default  Performing    on end of task  inside a loop ( i am splitting the internal table )
    However when i am debugging the code, i am able to see the function module( it opens a new session in debugging ) ,  and i see that new task is started after the RFC Function module is executed .
    How is this parallel processing ? I mean the new task starts after control returns back to main program , after the execution of the RFC FM.
    I thought the idea was to have the same FM executing in multi threads. So that time is saved.

    Thanks for the answers.
    There were too many  complications in the 'call function in new task '  option.
    So we are trying it with the job submit option. So we are splitting up the data into smaller tables and submiting it with this statement : Submit  'prog' with selection-table 's_sel' via job 'job' and return .
    Thanks

  • Parallel Processing when running in background

    Hi
    We have implemented a parallel processing solution using the Call Function Starting New Task Destination in Group format to split a large number of updates across an RFC Server Group.
    This works well when running the ABAP in dialog, but when we schedule for background processing, the parallel processing does not seem to occur, we get a single background process.
    Does anyone have any ideas why this may be occuring ?
    Thanks
    Paul

    Paul,
    Starting new task will start a new LUW in dialog process and not in background. This is the reason you are having a problem. While technically STARTING NEW TASK is used for parallel processing, you need to consider whether the program will be run in foreground or background mode.
    In case of background, you need consider using multiple jobs via job open, submit, job close. This way you can initiate more than one process in your server group to do the work.
    You will need to consider the # of background WP available and the # of WPs you can use for this program.
    So if there are 100 WPs available and you can use only 10 at any give time, then you should schedule 10 jobs and then check the status of the 10 jobs before you can start scheduling the next jobs.
    You can use the FM SPBT_INITIALIZE to check the # of WPs that are currently available in the server group.
    Hope this helps.
    Thanks,
    Vikram.M

  • Parallel processing issue withing same server

    hi,
    i need to perform parallel processing withing same server using work processes available in same server.
    suggest if this can be accomplished and explain the design if possible.

    Hello Venkata,
    You can achieve parallel processing by using CALL FUNCTION .... STARTING NEW TASK <task name>.
    In this case function module runs in asynchronous mode without stopping calling program.
    For more details you can refer following link:
    https://wiki.sdn.sap.com/wiki/display/Snippets/Easilyimplementparallelprocessinginonlineandbatchprocessing
    Thanks,
    Augustin.

  • Error while using RSDRI_INFOPROV_READ : parallel processing error

    Hi
    I am also facing parallel processing error while using the function module RSDRI_INFOPROV_READ in transformation.
    when only one data package is there, the load happens without any issue.  But when multiple data packages are involved the load fails with an error "Exception in parallel processing".

    Hi Lijo,
    I got the following information from the function module documentation of the FM RSDRI_INFOPROV_READ.
    If neither I_SAVE_IN_FILE nor I_SAVE_IN_TABLE are set, then the return takes place in the form of packages (that is an internal table), of value I_PACKAGESIZE. A negative value means that the return should be in one package.
    Prathish.

  • Use of global data in transformation with parallel processing

    Hi,
    In an upgrade I have a global variable in a routine in 3.5 in a transfer rule. The global variable keeps count of an ID.
    The global variable is used in every data package,because the corrsponding infopackage is set to PSA only, where help says:
    "If you select this processing option and then request processing is done serially during loading, the global data are maintained as long as the process with which the data were processed remains.
    In 7.0 I also use a global variable to do the same thing, but an Infopackage is no longer available, because we use DTP´s now.
    How can I store my global variable so that all parallel processing of the data packages use the same global variable? or can I set an option so that the DTP does serial processing, similar to the infopackage setting in 3.5?
    As a workaround I increased the package size to a very large figure, but I would be more comfortable with a sounder solution.
    thanks

    Hi Max,
      Try to declare your global variable in start routine. Among the lines:
    $$ begin of global - insert your declaration only below this line  -
    $$ end of global - insert your declaration only before this line   -
    Best Regards.
    Javier Gómez

Maybe you are looking for

  • Instructions: Create Blu-Ray disc in Compressor with Final Cut TImeline

    I searched mightily for simple instructions on how to do this. The Compressor help files are woefully inadequate in providing a simple walkthrough to do this. Burning a Blu-ray directly from Final Cut does not allow one to optimize the conversion lik

  • Trying to map java to %ROWTYPE

    Hello: I am calling stored procedure with JDBC and the procedure has an in parameter of type %ROWTYPE. What method do I call on OracleStoredProcedure to pass a value on to the procedure (setObject, setCursor, etc.)? I haven't had luck finding answers

  • How can i get into the phone without the computer or passcode?

    A friend of mine gave me an old iphone to use as a replacement for mine and she no longer has the computer for the itunes which it was synced, nor does she remember the passcode.

  • SVG format and Jdeveloper

    Hi, Is it possible to display SVG format map generated by MapViewer through Jdeveloper / embedded oc4j? Thanks, Shoutong

  • My list of Arch issues

    Hello, Below is a list of issues I am having with my install of Arch. amd-ucode error on start-up - I have read this can be handled by installing the AMD microcode, but I am not certain if I should do this or not since it seems to affect the hardware