ELO9 parallel processing logic

Hi,
Can anyone help me out in understanding the processing logic or how the parallel processing job runs through EL09 transaction?
Could not understand how it is scheduled & processed
Regards,
Deepak

Hi,
Check things like
http://help.sap.com/saphelp_webas620/helpdata/en/e8/df959834ac11d586f90000e82013e8/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c4/3a7f1f505211d189550000e829fbbd/frameset.htm
http://help.sap.com/saphelp_nw04/helpdata/en/c4/3a7f39505211d189550000e829fbbd/frameset.htm
Eddy

Similar Messages

  • Using BAPI_PO_CREATE1  in parallel processing

    Hi experts,
    I am using BAPI_PO_CRATE1 in parallel processing to create multiple Purchase Orders. The Programs is creating only one PO (the Ist one)  however it should create multiple PO as per the program and data.
    For rest of the data it is returning error message saying "No instance of object type PurchaseOrder has been created".
    Please suggest how can I fix this issue.
    Points are sure.
    Thanks & Regards.
    Anirudh

    Without looking at some poriton of the code around this call and your parallel processing logic, it will be difficult to say.

  • Parallel processing of mass data : sy-subrc value is not changed

    Hi,
    I have used the Parallel processing of mass data using the "Start New Task" . In my function module I am handling the exceptions and finally raise the application specific old exception to be handled in my main report program. Somehow the sy-subrc is not getting changed and always returns 0 even if the expection is raised.
    Can anyone help me about the same.
    Thanks & Regards,
    Nitin

    Hi Silky,
    I've build a block of code to explain this.
      DATA: ls_edgar TYPE zedgar,
            l_task(40).
      DELETE FROM zedgar.
      COMMIT WORK.
      l_task = 'task1'.
      ls_edgar-matnr = '123'.
      ls_edgar-text = 'qwe'.
      CALL FUNCTION 'Z_EDGAR_COMMIT_ROLLBACK' STARTING NEW TASK l_task PERFORMING f_go ON END OF TASK
        EXPORTING
          line = ls_edgar.
      l_task = 'task2'.
      ls_edgar-matnr = 'abc'.
      ls_edgar-text = 'def'.
      CALL FUNCTION 'Z_EDGAR_COMMIT_ROLLBACK' STARTING NEW TASK l_task PERFORMING f_go ON END OF TASK
        EXPORTING
          line = ls_edgar.
      l_task = 'task3'.
      ls_edgar-matnr = '456'.
      ls_edgar-text = 'xyz'.
      CALL FUNCTION 'Z_EDGAR_COMMIT_ROLLBACK' STARTING NEW TASK l_task PERFORMING f_go ON END OF TASK
        EXPORTING
          line = ls_edgar.
    *&      Form  f_go
    FORM f_go USING p_c TYPE ctype.
      RECEIVE RESULTS FROM FUNCTION 'Z_EDGAR_COMMIT_ROLLBACK' EXCEPTIONS err = 2.
      IF sy-subrc = 2.
    *this won't affect the LUW of the received function
        ROLLBACK WORK.
      ELSE.
    *this won't affect the LUW of the received function
        COMMIT WORK.
      ENDIF.
    ENDFORM.                    "f_go
    and the function is:
    FUNCTION z_edgar_commit_rollback.
    *"*"Interface local:
    *"  IMPORTING
    *"     VALUE(LINE) TYPE  ZEDGAR
    *"  EXCEPTIONS
    *"      ERR
      MODIFY zedgar FROM line.
      IF line-matnr CP 'a*'.
    *comment raise or rollback/commit to test
    *    RAISE err.
        ROLLBACK WORK.
      ELSE.
        COMMIT WORK.
      ENDIF.
    ENDFUNCTION.
    ok.
    In your main program you have a Logical Unit of Work (LUW), witch consists of an application transaction and is associated with a database transaction. Once you start a new task, your creating an independent LUW, with it's own database transaction.
    So if you do a commit or rollback in your function the effect is only on the records your processing in the function.
    There is a way to capture the event when this LUW concludes in the main LUW. That is the PERFORMING whatever ON END OF TASK. In there you can get the result of the function but you cannot commit or rollback the LUW from the function since it already have implicitly happened at the conclusion of the funtion. You can test it by correctly comment the code I've supplied.
    So, if you  want to rollback the LUW of the function you better do it inside it.
    I don't think it matches exactly your question, maybe it lead you on the right track. Give me more details if it doesn't.
    Hope it helps,
    Edgar

  • How to achieve parallel processing in a single request?

    Hi all,
    I have a method in a Session EJB that will perform some business logic before it returns an answer to the client. The logic it will perform is to collect data from the applications database and two external systems, before sending all data to a third external system to get a response and send it back to the client. Each external system is quite slow so I would like to do all the collecting of data concurrent, parallel processing. How should I handle this? I'm not allowed to create my own threads in EJB's. Can I use MDB in some way? To the calling client this should be a synchronous call...
    Greatfull for any suggestions
    Cheers
    Anders =)

    Usually, the request is received by a component located in the web container, such as by an HTTP request (including Web Services). This component is able to start threads to allow parallel processing. Now, if for some reason the request arrives directly at EJB level and that you cannot move its receiver to web component, I think JMS is not a viable solution because you will switch to asynchronous processing and you have no way to make your EJB wait for the responses while preserving the client request (waiting implies programmatic life cycle management, which is forbidden in EJB container). Maybe a resource adapter (JCA) can bring a solution. A resource adapter acts as a datasource (a datasource is a specialization of a resource adapter) and thus it is a logical way to implement an adapter to an external, eventually non-J2EE, resource, as the name implies :) But I don't have enough knowledge in JCA to be sure of this.
    Hope it helps.
    Bruno Collet
    http://www.practicalsoftwarearchitect.com

  • ABAP OO and parallel processing

    Hello ABAP community,
    I am trying to implement a ABAP OO scenario where i have to take into account parallel processing and processing logic in the sense of update function modules (TYPE V1).
    The szenario is definied as follows:
    Frame class X creates a instance of class Y and a instance of class Z.
    Classes Y and Z sould be processed in parallel, so class X calls classes Y and Z.
    Classes Y and Z call BAPIS and do different database changes.
    If classes Y or Z have finished, the status of processing is written into a status table by caller class X.
    The processing logic within class Y and class Z should be a SAP LUW in the sense of a update function module (TYP V1).
    Can i use events?
    (How) Should i use "call function in upgrade task"?
    (How) Should i use "call function starting new task"?
    What is the best method to realise that behaviour?
    Many thanks for your suggestions.

    Hallo Christian,
    I will describe you in detail, whow I have solved this
    problem. May be there is a newer way ... but it works.
    STEPS:
    I asume you have splitt your data in packages.
    1.) create a RFC-FM: Z_WAIT
    It return OK or NOT OK.
    This FM: does following:
    DO.
      call function TH_WPINFO -> until the WPINFO has more
    than a certain number of lines. (==> free tasks)
    ENDDO.
    If it is OK ==> free tasks are available
    call your FM (RFC!) like this:
    CALL FUNCTION <FM>
    STARTING NEW TASK ls_tasknam " Unique identifier!
    DESTINATION IN GROUP p_group
    PERFORMING return_info ON END OF TASK
    EXPORTING
    TABLES
    IMPORTING
    EXCEPTIONS
    *:--- Take care of the order of the exceptions!
    COMMUNICATION FAILURE = 3
    SYSTEM_FAILURE = 2
    UNFORCED_ERROR = 4
    RESOURCE_FAILURE = 5
    OTHERS = 1.
    *:--- Then you must check the difference between
    *:--- the started Calls and the received calls.
    *:--- If the number increases a certain value limit_tasks.
    wait until CALLED_TASK < LIMIT_TASKS up to '600' seconds.
    The value should be not greater then 20!
    DATA-Description:
    parameters: p_group like bdfields-rfcgr default 'Server_alle'. " For example. Use the F4 help
    if you have defined the report-parameter as above.
    ls_tasknam ==> Just the increasing number of RFC-Calls
    as Character.
    RETURN_INFO is a form routine in which You can check the results. Within this Form you must call:
    RECEIVE RESULTS FROM FUNCTION <FM>
    TABLES: ... " The tables of your <FM> exactly the same order!
    EXCEPTIONS
    COMMUNICATION FAILURE = 3
    SYSTEM_FAILURE = 2
    UNFORCED_ERROR = 4
    NO_ACTIVATE_INFOSTRUCTURE = 1.
    Her eyou must count the received Calls!
    And you can save them into a internal table for checking!
    I hope I could help you a little bit
    God luck
    Michael

  • Parallel Process Option for Optimization in Background.

    Hi,
    I am testing the SNP Optimizer with various settings this week on  demo version from SAP for a client.  I am looking for information that anyone might have on the SNP Parallel Processing Option in the execution of the Optimizer in the background.   The information that I could find is very thin.   I would be interested in any documentation or experience that you have.
    Sincerely,
    Michael M. Stahl
    [email protected]

    Hello,
    While running the transaction /SAPAPO/SNPOP - Supply Network Optimization  in the background, In the variant of it you can enter Parallel Processing profile in the field Paral. Proc. Profile.
    This profile you will require to define in the Customization(SPRO) before use it in the variant.
    Path to maintain it is as below Use transaction SPRO
    Advanced Planning and Optimization --> Supply Chain Planning -->Supply Network Planning (SNP) --> Profiles --> Define Parallel Processing Profile
    Here you will require to define your profile... e.g. as below
    Paral. Proc. Profile SNP_OPT
    Description          SNP OPTIMIZER PP PROFILE
    Appl. (Parallel Pr.) : Optimization
    Parallel Processes   2
    Logical system :
    Server Group :
    Block Size:
    You will require to take Basis team's help to enter value for Server Group and Block size.
    I hope, above information is helpful for you.
    Regards,
    Anjali

  • 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.

  • Is pga is being used in Parallel process

    HI
    is pga is being used in parallel processing. if yes then increasing the size of pga can increase performance
    thank

    Firstofall we need to clarify the "PGA" in Oracle.
    PGA is a type of memory which contains data and control information for a server process. When server process starts, a PGA value is assinged to a single user (if i don't remember wrong, it's default is 5M). The collection of PGA's is defined as total instance PGA. PGA_AGGREGATE_TARGET defines the maximum value which can get.
    Regarding to your concept, in my opinion it's basically wrong. Caching happens in buffer_cache which is a component of the SGA. When you first execute your sql text, Oracle caches it to reduce the physical I/O. Afterwards, if you need to execute it again, this will be a logical I/O.
    If i got your question wrong, please expend it more for further help.

  • Parallel Processing in creation of idocs

    Hi Gurus ,
    I am working on the EDI Inbound process with IDOCS . I am getting several idocs as per my process from legacy systems and i am supposed to merge couple of idocs based on certain conditions and then create new IDOCS which in turns create the Sales Order .
    The response time of this utility is very bad hence for performance optimization we are planning to apply Parallel processing concept in the creation of idoc.
    we have a function module which creats Sales order . I want to  call this Function module in parallel in different LUWs so that multiple sales order can be created in parallel .
    can anyone please help me and tell me the logic to  call a function module in parallel .
    thanks in advance
    regards,
    khushi.

    yes i did max performance things on the merging logic now i  have to create the idocs in the parallel . can you please help me in wrirting the code of creating idocs in parallel.
    thanks in advance.
    regards ,
    khushi
    Edited by: Khushboo Tyagi on Jan 19, 2009 4:24 PM

  • Duplicate IR through parallel processing for automated ERS

    Hi,
    We got duplicate IR issue in production when running the parallel processing for automated ERS job. This issue is not happening in every time. Once in a while the issue happeing. That means the issue has happened in June month as twice. What could be the reasons to got this issue. On those days the job took more time comaredt o general. We are unable to replicate the same scenareo. When i am testing the job is creating IRs successfully. Provide me the reasons for this.

    Wow - long post to say "can I use hardware boxes as inserts?" and the answer is yes, and you have been able to for a long time.
    I don't know why you're doing some odd "duplicated track" thing... weird...
    So, for inserts of regular channels, just stick Logic's I/O plug on the channel. Tell it which audio output you want it to send to, and which audio input to receive from. Patch up the appropriate ins and outs on your interface to your hardware box/patchbay/mixer/whatever and bob's your uncle.
    You can also do this on aux channels, so if you want to send a bunch of tracks to a hardware reverb, you'd put the I/O plug on the aux channel you're using in the same way as described above. Now simply use the sends on each channel you want to send to that aux (and therefore hardware reverb).
    Note you'll need to have software monitoring turned on.
    Another way is to just set the output of a channel or aux to the extra audio outputs on your interface, and bring the outputs of your processing hardware back into spare inputs and feed them into the Logic mix using input objects.
    Lots of ways to do it in Logic.
    And no duplicate recordings needed...
    I still don't understand why the Apple-developers didn't think of including such a plug-in, because it could allow amazing routing possibilities, like in this case, you could send the audio track to the main output(1-2 or whatever) BUT also to alternate hardware outputs, so you can use a hardware reverb unit, + a hardware delay unit etc...to which the audio track is being sent , and then you could blend the results back in Logic more easily.
    You can just do this already with mixer routing alone, no plugins necessary.

  • Strange behaviour in parallel processing (aRFC)

    Hi,
    I have programmed a data extraction program in SAP IS-U. Due to the sheer size of the tables (900 million+) if had to use parallel processing to keep the runtime acceptable.
    When running in the QA-environment I see a funny behaviour. There are about 49 dialog processes available, but the program never uses more than around 15. In transaction SARFC the settings are, that the appserver may get a load of 100% processes.
    Furthermore I see that in the first few minutes a lot of jobs are being created. Then for a few minutes almost nothing happens (maybe 2 or 3 are running) and then a few minutes later it's back to normal. This cycle repeats on and on and takes around 20 minutes. The Basis-people say the system load is not very high, neither is the DB-load.
    My questions are:
    1) Why does the job counter never exceed the 15 jobs, even though there are plenty available (65 in total, 49 on my app server)?
    2) Why is the performance so wobbly? I would expect that the slots in SM51 should always be filled with fresh jobs.
    With kind regards,
    Crispian Stones
    P.S.
    The mechanism I use is similar to the following:
    loop at tb_todo into wa_todo.
      call function 'SPBT_GET_CURR_RESOURCE_INFO'
       importing FREE_PBT_WPS = available.
      check available gt 1.
      call function 'Z_MY_EXTRACTOR'
        starting new task my_taskname
        in destination my_destination
        performing my_callback on end of task
        exporting
          i_data = wa_todo.
      if sy-subrc eq 0.
        add 1 to created.
      endif.
    endloop.
    wait until returned ge created.
    form my_callback.
      add 1 to returned.
      receive results from function 'Z_MY_EXTRACTOR'.
    endform.

    Hello,
    I am facing a similar issue in one of my || processing program as well. The program, when executed with a data-set of 10,000 records takes 65 minutes to complete. One would expect it to take 650 minutes (or even lesser) to process a data-set of app. 100,000 records.
    However, when I run the program for a file with app. 100,000 records the program runs OK initially (i.e; I could see multiple dialog processes getting invoked in SM50) but, after a while it starts running on ONLY ONE dialog process. I am not quite sure where, when and why this PARALLEL to SEQUENTIAL switch is happening. Due to this, the program drags on and on and on. I would highly appreciate your suggestions/tips to put this bug to sleep.
    Here is a summary of the logic used...
      w_group = 'BATCH_PARALLEL'.
      w_task  = w_task + 1.
      CALL FUNCTION 'SPBT_INITIALIZE'
       EXPORTING
         group_name                           = w_group
       IMPORTING
         max_pbt_wps                          = w_pr_total   "Total processes
         free_pbt_wps                         = w_pr_avl     "Avail processes
       EXCEPTIONS
         invalid_group_name                   = 1
         internal_error                       = 2
         pbt_env_already_initialized          = 3
         currently_no_resources_avail         = 4
         no_pbt_resources_found               = 5
         cant_init_different_pbt_groups       = 6
         OTHERS                               = 7.
      IF sy-subrc <> 0.
      Raise error mesage and quit
        w_wait = c_x.
    If everything went well, continue processing
      ELSE.
        CLEAR: w_wait.
    The subroutine that receives results from the parallel FMs will reduce
    this counter and set the flag W_WAIT once the value is equal to ZERO
        w_count = LINES( data ).
    Refresh the temporary table that will be populated for every partner
        REFRESH: t_data.
        LOOP AT data.
    Keep appending data to the temporary table
          APPEND data TO t_data.
          AT END OF partner.
            CLEAR: w_subrc.
            CALL FUNCTION 'Z_PARALLEL_FUNCTION'
              STARTING NEW TASK w_task
              DESTINATION IN GROUP w_group
              PERFORMING process_return ON END OF TASK
              TABLES
                data                  = t_data
              EXCEPTIONS
                communication_failure = 1      "Mandatory for || processing
                system_failure        = 2      "Mandatory for || processing
                RESOURCE_FAILURE      = 3      "Mandatory for || processing
                OTHERS                = 4.
            w_subrc = sy-subrc.
    Check if everything went well...
            CLEAR: w_rfcdest.
            CASE w_subrc.
              WHEN 0.
    This variable keeps track of the number of threads initiated. In case
    all the processes are busy, we should compare this with the variable
    w_recd (set later in the subroutine 'PROCESS_RETURN'), and wait till
    w_sent >= w_recd.
                w_sent = w_sent + 1.
    Track all the tasks initiated.
                CLEAR: wa_tasklist.
                wa_tasklist-taskname = w_task.
                APPEND wa_tasklist TO t_tasklist.
              WHEN 1 OR 2.
    Populate the error log table and continue to process the rest.
              WHEN OTHERS.
    There might be a lack of resources. Wait till some processes
    are freed again. Populate the records back to the main table
                CLEAR: wa_data.
                LOOP AT t_data INTO wa_data.
                  APPEND wa_data TO data.
                ENDLOOP.
                WAIT UNTIL w_recd >= w_sent. "IS THIS THE CULPRIT?
            ENDCASE.
    Increment the task number
            w_task = w_task + 1.
    Refresh the temporary table
            REFRESH t_data.
          ENDAT.
        ENDLOOP.
      ENDIF.
    Wait till all the records are returned.
      WAIT UNTIL w_wait = c_x UP TO '120' SECONDS.
    FORM process_return USING p_taskname.                       "#EC CALLED
      REFRESH: t_data_tmp.
      CLEAR  : w_subrc.
    Check the task for which this subroutine is processed!!!
      CLEAR: wa_tasklist.
      READ TABLE t_tasklist INTO wa_tasklist WITH KEY taskname = p_taskname.
    If the task wasn't already processed...
      IF sy-subrc eq 0.
    Delete the task from the table T_TASKLIST
        DELETE TABLE t_tasklist FROM wa_tasklist.
    Receive the results back from the function module
        RECEIVE RESULTS FROM FUNCTION 'Z_PARALLEL_FUNCTION'
          TABLES
            address_data          = t_data_tmp
          EXCEPTIONS
            communication_failure = 1      "Mandatory for || processing
            system_failure        = 2      "Mandatory for || processing
            RESOURCE_FAILURE      = 3      "Mandatory for || processing
            OTHERS                = 4.
    Store sy-subrc in a temporary variable.
        w_subrc = sy-subrc.
    Update the counter (Number of tasks/jobs/threads received)
        w_recd = w_recd + 1.
    Check the returned values
        IF w_subrc EQ 0.
    Do necessary processing!!!
        ENDIF.
    Subtract the number of records that were returned back from the
    total number of records to be processed
        w_count = w_count - LINES( t_data_tmp ).
    If the counter is ZERO, set W_WAIT.
        IF w_count = 0.
          w_wait = c_x.
        ENDIF.
      ENDIF.
    ENDFORM.                    " process_return
    Thanks,
    Muthu

  • Dynamic Parallel Processing using Rule

    Hello,
    I am using a User Decision within a Block (ParForEach type) step to send work-items to multiple Approvers parallelly.
    For this I have created a Multi-line container LI_APPROVERS and bound &LI_APPROVERS[&_WF_PARFOREACH_INDEX&]& to &_LI_APPROVERS_LINE& in the "Parallel Processing" tab of the Block.
    Now in User Decision I am using Agent as Expression = &_LI_APPROVERS_LINE&. This is working perfectly fine if I fetch the values in LI_APPROVERS via a background method before "Block" step is executed.
    I want to know if we can do this using a "Rule" within the User Decision? Meaning approvers are determined by the Rule(through a FM) at the run time instead of fetching them beforehand. I created a custom Rule and tried passing it under Agents but it didn't work. I do not know what bindings need to be done and how each line will be passed to User Decision to create a work-item for each user.
    Or
    I should remove the Block step completely and directly use the User Decision Task with Parallel Processing option under Miscellaneous tab?
    Can someone please explain how to achieve this using a Rule and exactly what bindings are required.
    Thanks.

    Hi Anjan,
    Yes, that's exactly what I want to know. I saw your below response in one of the threads but could not understand exactly how to do it. Can you please explain it.
    You have all  your agents in one multiline container element in workflow.
    Then you take a block step with perforeach.
    Then create a custom rule which will import multiline element of agents , and a line_no. Then in the rule you populate the actor_tab with agents from that multiline contaier elemens of agent. The logic will take the agent from the multiline container[line_no].
    Then you take a activity step . In agent use your custom rule usin prpoer bindin of multiline element of agents and for line_no you pass _***_line from block container. Then workitem will sent to n no of people parrallaly.
    This is my current design:
    Activity returns agents in LI_APPROVERS.
    At Block: I have binding &LI_APPROVERS[&_WF_PARFOREACH_INDEX&]& --> &_LI_APPROVERS_LINE&
    At UD: I have Agents as Expression = &_LI_APPROVERS_LINE&
    I want to remove the Activity step (to get Agents in background) and replace with Rule within UD. What binding do I need from Rule to Workflow? How to get the "Line_no" from rule as you mentioned above.
    Thanks for your response.

  • Parallel processing of GRC AC 5.3 SP13 Batch Risk Analysis

    Hello,
    i have a question regarding the parallel processing of Batch Risk Analysis background jobs.
    We have just implemented GRC AC 5.3 SP13 in one of our test-systems. The test-system currently has 6 Server-Nodes.
    When running the initial Full Sync. Batch Risk Analysis the background job only gets executed by one of the Background Job Worker-Threads in one of the Server-Nodes. All the other ID0 Background Job Worker-Threads in the remaining Server-nodes remain idle.
    Is there any special configuration in RAR needed in order to enable the parallel processing or is this dependent on the configuration of the Java-system itself ? If it's a system-configuration thing what configuration do I need to task the basis team to look into ?
    Regards,
    Benjamin

    >
    S. Pados wrote:
    > In RAR config - optimizaiton you have to set webservice i/o and netweaver lock to NO. These are giving issues when set to yes. It resolved it at our system. don't forget to restart the server after changing these values.
    >
    > Regards,
    > Stefan
    Hello Stefan,
    we are currently on SAP GRC AC 5.3 SP13 (withouth the Patches). The changes we do in the webinterface for the two settings you have mentionened are not written to the database (execute select * from virsa_cc_config in the CC Debugger-Webinterface and look for IDs 250 and 251). This is a known bug.
    For parameter "Store WebService Input/Output parameters objects in database Yes/No?" there seems to be a workaround by inserting the setting into the table directly (SNOTE 1508611). Can you confirm that the entry with CNFGPARAM-ID=251 exists in the table in your system (with value NO)?
    For parameter "Use Net Weaver Logical Lock Yes/No?" there's the same issue. The workaround is described in SNOTE 1528592. Can you please confirm that theres an entry CNFGPARAM-ID=250 with value NO in your table ?
    If you confirm the two settings I will have our IT guys insert those entries into the DB table.
    P.S.: We are not planning to implement any Patches or SPs any time soon because we are doing the Ramp-up for SAP GRC 10.0. We want to check out the functionality in there first and not put too much effort into patching the "old" version right now.
    @Chris Chapman:
    I will have someone check the server logs for the errors that are described in the SNOTE you provided. Thanks for the help.

  • The parallel process for mrp.

    hi exports
    we plan to do the scope of planning for the total planning as a background job.
    while doing that system ask for the parallal processing for mrp
    what is customize step and procedure to do the parallel process for mrp.

    Dear Raj,
    With the help of parallel processing procedures, you can significantly improve the runtime of the total planning run.
    To process in parallel, you can either select various sessions on the application server or various servers.
    Parallel processing runs according to packages using the low-level code logic:
    The work package, with a fixed number of materials that are internally defined in the program, is distributed over the individual servers/sessions. Once a server/session has finished processing a package, it starts processing the next package.
    If a low-level code is being planned, the servers/sessions that have finished must wait until the last server/session has finished its package to avoid inconsistencies. Then the next low-level code is processed per packages.
    The parallel processing procedure is switched on in the initial screen of total planning.
    Activities
    Define the application server with the number of sessions that can be used:
    If you want to define various servers for parallel processing, enter the server with the number of sessions.
    If you only want to use one server, but several sessions, enter the application server and the appropriate number of sessions.
    Further notes
    Parallel processing shortens the time required for calculation, however, it cannot shorten the database time as the system still only operates using one database.
    The Customizing Transaction is   OMIQ
    Regards
    PSV

  • Parallel processing concern.

    Hello SAPients!
    I modified some user exits. I'm modifying the contents of the IDoc WPUBON01. In the "Before Inbound Processing" I am exporting a value to memory, use that value in one of the user exits to populate VBRK-VBRP, and I'm clearing (FREE) that value  in the "After Inbound Processing".
    It works fine so far, but I haven't tested with many IDocs, just with one (I don't have enough data to generate a complete test). My concern is that the standard transaction that executes the IDocs is enabled for parallel processing. Does SAP generate separated memory areas for every process that is triggered? What is going to happen if one of the processes finishes and clears (FREE) the memory? Will this generate inconsistency?
    Thanks in advance for your kind help.

    Well I almost answered a while ago, but we don't run Idocs so I can't test this... however, I have always found "export to memory id 'Z:MY_KEY' style logic very reliable in handling the type of requirement you describe e.g. several online sessions for the same SAPGui user will each get their own ID, multiple batch jobs can run at the same time without collision etc... whereas "set parameter ID 'Z12'" stype code is not reliable.
    Jonathan

Maybe you are looking for