Skip to Content
avatar image
Former Member

Multiple idocs processing

Hi all,

We have a idoc xml file to Idoc interface in our project.Third party system is sending an idoc xml file to SAPP I 7.1 1. This file contain multiple idocs. PI is processing this file and it posts multiple idocs to SAP ECC system.Some of these IDOCS try to process the same PO at the same time and fails because of locking concept.

Can anyone please suggest if there is any way to introduce a time gap of 5-10 sec in PI before posting each idoc.

Regards

Jagruthi

Add comment
10|10000 characters needed characters exceeded

  • Follow
  • Get RSS Feed

4 Answers

  • avatar image
    Former Member
    Nov 29, 2010 at 07:07 AM

    Hi Jagruthi,

    Check the below link for Serializing IDOCS. This would help you..

    http://help.sap.com/saphelp_nwpi711/helpdata/en/bd/277264c3ddd44ea429af5e7d2c6e69/content.htm

    Thanks,

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Nov 29, 2010 at 07:14 AM

    Hi,

    I would suggest you to place wait of 5-10 secs in the function module which processes the Idocs.

    -Rahul

    Add comment
    10|10000 characters needed characters exceeded

  • avatar image
    Former Member
    Nov 29, 2010 at 02:53 PM

    Hi Jagruthi,

    You can try introducing a simple BPM step with receive, wait and send step to ECC. You can put the 5-10 mins time gap in the wait step.

    Although, introducing BPM might not be a appropriate one, you can keep this as last option if you find anything else suitable.

    You can also enhance by adding more features like tracking, raising alerts for failed idocs etc.,

    Regards

    Krish

    Add comment
    10|10000 characters needed characters exceeded

  • Nov 29, 2010 at 06:16 PM

    Hi,

    Write a small UDF to increase wait time.

    ============================================================

    if(var1 != null && !var1.equals(""))

    {

    try {

    int i=Integer.parseInt(var1);

    Thread.sleep(i);

    }

    catch(Exception e){

    trace.addWarning("Error when it is in sleep time");

    }

    }

    return("");

    ===============================================================

    Take the input "var1" from a constant which can take value either from Configuration Parameter like <$TimeSleep$> where "TimeSleep" is a Configuration parameter passed from ID or you can hard code any number of milliseconds in the <Constant>.

    Thanks,

    Nabendu.

    Add comment
    10|10000 characters needed characters exceeded