Parallel processing of condition records in SAP

Hi,
I have a particular scenario, wherein XI sends 30000 idocs for pricing condition records of message type COND_A to SAP, and SAP has to process all the idocs within 15 minutes. Is it possible, and what kind of parallel processing techniques can be used to achieve this?
Regards,
Vijay
Edited by: Vijay Iyengar on Feb 21, 2008 2:05 PM

Hi
We had a similar performance issue to load conditions of sales deal.
We did not use IDOC.
Initially we did the BDC and it was loading 19 records per second and than later we developed a direct input program, which loaded close to 900 records per second.
What we did was, we wrote a direct input pogram and called the function module
CALL FUNCTION 'RV_KONDITION_SICHERN_V13A' IN UPDATE TASK
But Pls note - We took approval from SAP before using it.
Regards
Madhan
Edited by: Madhan Doraikannan on Oct 20, 2008 11:40 AM

Similar Messages

  • Parallel processing end condition problem

    Hi,
    i use a block with parallel processing for each row (parforeach). In every branch i create a workitem where a user has to input something. This is stored in my field status.
    Now i want that if the status is 'X' all branches will be closed like it would be in a fork.
    I entered the end condition &status& = X
    But the end condition of parallel processing doesn't work. I tested it and it works but into the workflow the branches won't be ended.
    Does someone has a solution or can explain me the problem?
    Thx

    Hi,
    The dynamic parallelism using 'parforeach' is not the same as fork with multiple branches with number of required branches to end the fork !! Its like this, when you use dynamic parallelism , for each index of your multiline container element used for parallelism, the sub-workflow ( or the associated Task having dynamic parallelism) will be called parallely and each branch ( parallely called sub workflow or task ) is independent now having no relation ( by default ) and workflow will not continue to next step until unless all these branches are completed.
    However, to solve your probelm i suggest the following
    1. How are you handling the process in each branch, is it through a sub workflow? if yes, in your sub workflow you can create a fork parallel to your normal process. In that fork, create a 'Wait for Event' step and wait for a new custom event ( for this you have to define a new custom event on your BO) . Put the necessary branches required as 1 and Join this branch to end of this sub-workflow. and
    2. Whenever your requirement to end all the branches is fulfilled ( say in your case status=X) raise this new custom event using Create Event and this will be captured by 'Wait Event' step in the fork of your sub-workflow and it will end that sub workflow ( meaning, your branch is ended now) .Make sure that you pass the BO Object Instance to your sub-workflow through binding from your main workflow. !!
    Hope this helps you !!
    Regards
    Krishna Mohan

  • 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

  • Mass maintainance of condition records?

    Hi
    I want to know the concept of mass maintainance of condition records in SAP-SD-Pricing.
    Thanks

    Hi Subhash,
    For Mass Maitenance  or Loading of  Pricing Condition records,  you can  use  LSMW.   Here you can choose either a  Standard Batch Input  or  Recording,  or  BAPI
    The easiest what I felt is  Recording.   here  if you opted to  change condition records  (you can choose  VK12 as the T code)  else  if you wished to mass load the condition records  you can choose  VK11 or VK15.
    once the recording is complete,  you need to give a name to your recording, and then assign a Data structure name to it.  after which you can assign the source fields.   for this first you will create a list of source fields which  you can get by checking what you have recorded, and pick the fields. (as there is an option to see the object list of your recording  thus you can identify the recorded fields).
    once the source fields are created,  you need to map the  source field with the source Structure.  you can select each field and click the assign button which will pop up a list of the recorded fileds,  you can then assign each of them to the respective  source fileds.   (this is what we call source field mapping)
    The Next task is to specify and assign an input file,  for  LSMW script to read and convert.   This input file should have all the records that you wish to add or change  as per the source field record structure.   You can create the input file as an  XL file with all the data,  and then save it as a  .CSV file.  and then specify during the assign file as  it is a comma seperated delimiter.
    then Choose the convert  option to do a data conversion,  and then finally process the Batch session,  to  check your results.
    LSMW will successfully change or create  Mass data  (whether master records for pricing codition  or  whether mass sales  /purchase Transaction data )
    Hope this may be what you are expecting.
    cheers
    Prasad
    Singapore.

  • Parallel Processing : How to Handle Resource failure?

    Hi,
    I have implemented the parallel processing/ asynchronous rfc call in my system because we have to process millions of records and processing is important. My Program does work fine in Development and quality for small number of records but during SVT I am encountering RESOURCE_FAILURE exception. As of now I have tried to wait for more time and then process it again and also on failure I have tried to process sequential but nothing worked with second approach that is on resource_failure execute normal FM call it is resulting in terminating Parallel processing.
    Any Pointer on how to handle it is appreciated.
    Regards,
    Deepak Bhalla

    <b>Handling the RESOURCE_FAILURE exception:</b> As each parallel processing task is dispatched, the SAP system counts down the number of resources (dialog work processes) available for processing additional tasks. This count goes up again as each parallel processing task is completed and returns to your program.
    Should your parallel processing tasks take a long time to complete, then the parallel processing resources may temporarily run out. In this case, CALL FUNCTION returns the exception RESOURCE_FAILURE. This means simply that all dialog work processes in the RFC group that your program is using are in use.
    Your program must now wait until resources become available and then re-issue the CALL FUNCTION that failed. In the sample program, we use a simple, reasonably failsafe wait mechanism. The program waits for parallel processing tasks to return, freeing up resources. The WAIT also specifies a initial timeout of 1 second. If the CALL FUNCTION again fails, the WAIT is repeated with a longer time-out. You can increase the time-outs if you expect that your parallel tasks will take longer to complete. You should also add code to exit from the retry loop after a suitable number of iterations.
    Use WAIT statement.
    Hope this resolves u r issue.
    - Raj

  • PO  Condition record

    Dear friends,
    In import PO  I have conditons  types like,
    JCV1-CVD
    JECV-Ecess
    J1CV-HEcess
    JADC-Additional customs duty
    JCDB- IN basic custom duty..... etc,
    I have maintain condition records  in MEK1,  when  i create  PO, The conditon  values  are not picking up from the condition records  to PO,   please suggest me  is it necessary  to  assign access sequence to above condition, and why the values are not picking up ,
    Thanks

    Hi
    In Standard Import Process, the condition record is not mainatained at MEK1
    No need to mainatain the access sequence also.
    The condition is to be maintained manually while creating PO, as agreed with the vendor. The rate may also differ based on material.
    regards
    prasanna

  • Bapi or FM for uploading the condition records

    HI,
    i wanted know that is there any way to uplaod the condition records to sap by using any BAPI or FM or any standard program.
    this is urgent.
    thankx in advance
    regards,
    hpp

    Hi,
    Use the BAPI BAPI_PRICES_CONDITIONS to load the pricing conditions..
    Check this link for a sample code..
    Re: Sample code for  BAPI_PRICES_CONDITIONS
    Thanks,
    Naren

  • Attachment in Pricing condition records ?

    Hi experts,
    Do we have ability to attach documents to pricing condition records in SAP 4.7 ? Or any easy way to achieve this ?
    Thanks !
    Pricing, Condition, VV11, VV12

    Ron
    You can't attach documents but  can't you  use' Internal comment'  in the Details screen of a condition record,  where you can load the text from a file and you can also export it to a local file.

  • Process Status & Release Status for Condition Record

    Hi Gurus,
    Pls help me out in the the following scenario.
    I want to activate Authorization level check for Condition records.
    For example, Product price PR00 is being entered by first level.
    After verification done by second level only, that condition record to be used for sales order processing.
    I have gone through Process status & Release Status. But not getting full clarity on this.
    Rgds,
    Senni.B

    Hi,
    Please go through the following information.
    [Relase Procedure for Condition Record|http://help.sap.com/saphelp_47x200/helpdata/en/a4/af9e78e69611d2ace10000e8a5bd28/frameset.htm]
    [Release Procedure for PR|http://www.sap123.com/showthread.php?t=59]
    Reward if helpful.
    Thanks and Regards,
    Naveen Dasari

  • In which table the condition records get stored in sap crm

    hi everybody any one can help me in this,
    In which table the condition records get stored in sap crm.
    Regards,
    Babu

    Hi Babu,
    The table name depends on the condition table you have chosen while adding a condition record. Like if it is SAP001, the database table will be CNCCRMPRSAP001.
    Regards,
    Shalini Chauhan
    Edited by: Shalini Chauhan on Jun 23, 2008 10:18 AM

  • Processing status in vk11 condition record creation

    Dear All
    i have a scenario where condition record is created in vk11 the processing status should be blocked by default,
    super user will remove the block or release it in vk12
    How to configure this
    Regards
    J

    Hi,
    1. First Go to SPRO --> Sales & DIstribution ---> Basic Functions --> Pricing --> Define Processing Status
       Click on new Entries Create
                      1 Not released A - Blocked
                      2 Released - Released
    2. Create Condition Record Using T-Code VK11 , after entering the Details with your combination  then click on "Shift+F8 " or Click on "Key" you will get one more screen in that we have to select the "Processing Status "  ( In your case Give 1 ) and save the condition Record  (or)
    In VK11 , after material Description we can find out the "Processing status " Column  , there you have to mentioned "1" and save
    3. Ask your Basis Consultant to whom you want to give the Release Approval , he/ she can give the approval in VK12
    Regards,
    Prasanna
    Edited by: prasanna_sap on Jul 3, 2011 8:25 AM

  • SAP standard FM or BAPI for getting customer details from condition record

    Can someone suggest some SAP standard BAPI or FM with the help of which we can get the customer details of all it's pricing conditions maintained in condition tables provided we have the condition record number with us.

    Hi,
    look at the below BAPI's
    BAPI_CUSTOMER_DISPLAY
    BAPI_CUSTOMER_GETDETAIL2
    Regards
    Sudheer

  • Condition Records For Tax Condition types for SAP 4.7

    Dear Experts,
    What is the procedure to maintain condition records for tax condition types like CST , VAT and Service Tax. We are not using CIN. In MM01 and XD02 tax classifications i have maintained UTXJ condition Type and also maintained the above mention tax condition types.. But when i create condition records for UTXJ in VK11 the sysytem is asking for Tax code. In FTXP when i defined Tax code A1 for Tax ProcedureTAXIN1 where i maintained all the Tax condition types there.But i am unable to save the Tax % in FTXP.When i try to save the tax code it is not saving.
    Is there any other procedure to maintain Tax condition types for SAP4.7.
    My Pricing procedure that i maintained in V/08 is Z00001.
    Regards
    Jyoti

    Hi Jyoti
    Since you are not using CIN, you can do the follwing for tax conditions
    Check the assignment of the TAx procedure to country
    once u do this , you will be able to maintin the vendor and customer records for MWST  type for taxes
    then create condition records for MWSt with access sequence MWST in condiution type or design one suited to your needs
    alternatevely in the current procedure you can change access sequence for condition type UTXJ form the current one to MWST and then maintain condition records
    hope this helps
    thanks
    Akasha

  • Query on Condition Records(Pricing) in SAP CRM

    Hai experts,
    It would be garteful if you can clarify my doubt. In ECC we maintain pricing condition records in VK11, do we down load them to CRM? if so what is the Load object name(per say for PR00), and the path where can we see the records in CRM after down loading. is it possible to maintain the condition records directly in CRM, if so Kindly let me know the T.Code or path.
    Thanks and Regrds,
    Teja

    To download all pricing related things from ECC do the following
          1. You can use adapter object DNL_CUST_CNDALL to execute the Customizing download of the  condition technique for the pricing. Use Tx: R3AS to execute this adapter object.
          2. Later you can check status using Tx: R3AM1
    To create new condition tables in CRM user the transaction CTCT_CRM_PR
    Thanks and regards
    shanto aloor

  • SAP job not using all dialog processes that are available for parallel processing

    He Experts,
    The customer is running a job which is not using all the dialog processes that are available for parallel processing. It appears to use up the parallel processes (60) for the first 4-5 minutes of the job and then maxes out about 3-5 processes for the remainder of the job.
    How do I analyze the job to find out the issue from a Basis perspective?
    Thanks,
    Zahra

    Hi Daniel,
    Thanks for replying!
    I don't believe its a standard job.
    I was thinking of starting a trace using ST05 before the job. What do you think?
    Thanks,
    Zahra

Maybe you are looking for

  • It is Posible that I run 2 or more user account at the same time from one PC???

    I have core i7 2600 8GB ram based PC, and I want to add another display, keyboard & mouse to run another account on my same pc any way to run both account at same time??? or any other way???

  • Mail adapter problemas

    Hi. I want to send and email from XI to an address that comes in the payload. This payload has also information that has to be sent as an attachment in the email. If i use Michal's solution os 'mail package', i can't add the attachment of the info be

  • Trying to load jar file dynamically

    I'm trying to load the jar file dynamically and making the new instance of an objet present in it. mu source code - import java.net.*; import java.util.*; import java.io.*; import java.lang.reflect.Method; class A /** The class loader to use for load

  • Is apple working of a fix for this update error.  8.0.1 needs 610mb of space.

    Is apple working of a fix for this update error?  8.0.1 needs 610mb of space. Every time I try to install the latest update, I get this error:  "Updating to iOS 8.0.2 requires at least 610 MB of free space on your iPhone. Please change your media syn

  • How to Make Mass Adjustments w/ Details

    My Finance customers are looking for a method to apply many adjustments in a bulk fashion. For example, the analyst will need to push forecasted expenses for 30 different cost centers from September to October. In our Hyp. Planning (System 9) applica