Split of a Large Volume Outbound Idoc

Hi,
anyone who can tell me how split of a large volume outbound idoc works?
/Elvez

Hi Elvez,
One way to split your idoc is to group your idoc into different segments
You can create segments and group your data logically.
Go through the following link. It will give you good tips on IDOCs
     http://www.netweaverguru.com/EDI/HTML/IDocBook.htm
  other helpful links are...
     ALE/ IDOC/ XML
     http://www.sapgenie.com/sapgenie/docs/ale_scenario_development_procedure.doc
     http://www.thespot4sap.com/Articles/SAP_XML_Business_Integration.asp
     http://help.sap.com/saphelp_srm30/helpdata/en/72/0fe1385bed2815e10000000a114084/content.htm
Good luck ..Reward me for the same
Thanks
Ashok

Similar Messages

  • Processing large volume of idocs using BPM Processing

    Hi,
    I have a scenario in which SAP R/3 sends large volume say 30,000 DEBMAS Idocs to XI. XI then sends data to 3 legacy systems using jdbc adapter.
    I created a BPM Process which waits for 4 hrs to collect all the idocs. This is what my BPM does:
    1. Wait for 4 hrs Collect the idocs
    2. For every idoc do a IDOC->JDBC Message transformation.
    3. Append to a Big List
    4. Loop at the Big list from step 4 and in the loop for
    5. Start counter from 0 and increment. Append to a Small List.
    6. if counter reaches 100 then send a Batch JDBC Message in send step.
    7. Reset counter after every send.
    8. Process remaining list i.e if there was an odd count of say 5300 idoc then the remaining 53 idocs will be sent in anther block.
    After sending 5000 idocs to above BPM following problems are there:
    1. I cannot read the workflow log as system does not respond.
    2. In the For Each loop which loops through the big list of say 5000 idocs only first pass of 100 was processed after that the workflow item is not moving ahead. It remains in the status as "STARTED" but I do not see further processing.
    Please tell me why certain Work Items are stuck is it becuase I have reached upper limit and is this the right approach? The Main BPM Process is also hanging from last 2 days.
    I have concerns about using BPM for processing such high volume of idocs in production. Please advice and thanks in advance.
    Regards
    Ashish

    Hi Ashish,
    Please read SAPs Checklist for proper usage of BPMs: http://help.sap.com/saphelp_nw04/helpdata/en/43/d92e428819da2ce10000000a1550b0/content.htm
    One point i'm wondering about is why do you send the IDocs out of R/3 one by one and don't use packaging there? From a performance stand point this is much better than a bpm.
    The SAP Checklist states the following:
    <i>"No Replacement for Mass Interfaces
    Check whether it would not be better to execute particular processing steps, for example, collecting messages, on the sender or receiver system.
    If you only want to collect the messages from one business system to forward them together to a second business system, you should do so by using a mass interface and not an integration process.
    If you want to split a message up into lots of individual messages, also use a mass interface instead of an integration process. A mass interface requires only a fraction of the back-end system and Integration-Server resources that an integration process would require to carry out the same task. "</i>
    Also you might want to have a look at the IDoc packaging capabilities within XI (available since SP14 i believe): http://help.sap.com/saphelp_nw04/helpdata/en/7a/00143f011f4b2ee10000000a114084/content.htm
    And here is Sravyas good blog about this topic: /people/sravya.talanki2/blog/2005/12/09/xiidoc-message-packages
    If for whatever reason you can't or don't want to use the IDoc packets from R/3 or XI there are other points on which you can focus for optimizing your process:
    In the section "Using the Integration Server Efficiently" there is an overview on which steps are costly and which steps are not so costly in their resource consumption. Mappings are one of the steps that tend to consume a lot of resources and unless it is a multi mapping that can not be executed outside a BPM there is always the option to do the mapping in the interface determination either before or after the BPM. So i would sugges if your step 2 is not a multi mapping you should try to execute it before entering the BPM and just handle the JDBC Messages in the BPM.
    Wait steps are also costly steps, so reducing the time in your wait step could potentially lead to better performance. Or if possible you could omitt the wait step and just create a process that waits for 100 messages and then processes them.
    Regards
    Christine

  • How to Split Single Outbound Idoc into Multiples

    Hi guys
    Hope you all are doing good.
    Can you please let me know , How to Split Single Outbound IDOC into multiples.
    I am looking for some sought of configuration in IDOC/from SHIPMENT Configuration level.  Because this needs to be implemented for Shipment IDOCS.  Please let me know if this can be done through configurations apart from implementing  User exit or copying the outbound shipment function module.
    Awaiting for your valuable replies.
    Best Regards
    Shiva

    Hello,
    1. Routes
    2. Packaging used
    3. Shipment Type
    Regards
    Waza

  • There is large time differnce in Outbound IDoc's for Interest Run posting

    Hi Experts,
    When i posting Interest Run (T.code : FINT) i am executing for a range of Customers(For 4500 Customers)
    using Background Job it took nearly 3 days to execute the job in Production and i found that there is
    no Partner Profile in WE20,IDoc's went in Error.Until this its fine.
    The major problem is there are group of 100 idoc's created in no time span and it took 4 hrs time gap to create
    another idoc 100 more idoc's.
    In between these 2 bunch of idoc's another 700 idoc's created for different message types.
    Can you please let me know why there is that much time gap for the same message type for Interest Run.
    Thanks in Advance.
    Regards,
    Sudhakar Reddy Allam.

    Bhishma,
    Just clarrification for you...when you said..
    "R/3 sends an IDOC with IDOC number 100. XI (by default) submits this IDOC to the 3'rd party system with IDOC number 200 (it's own internally generated number)."
    Here Idoc number 100 is outbound idoc from R/2 where as Idoc number 200 is inbound idoc...n they are totally different idocs..not same
    I think there is work around...while mapping data from XI --> 3rd party assign / store outbound idoc in one of the unused field of inbound idoc...and while mapping back use this field to map it back...I think this will work.
    Let us know the result.
    Nilesh

  • Ways to handle large volume data (file size = 60MB) in PI 7.0 file to file

    Hi,
    In a file to file scenario (flat file to xml file), the flat file is getting picked up by FCC and then send to XI. In xi its performing message mapping and then XSL transformation in a sequence.
    The scenario is working fine for small files (size upto 5MB) but when the input flat file size is more then 60 MB, then XI is showing lots of problem like (1) JCo call error or (2) some times even XI is stoped and we have to strat it manually again to function properly.
    Please suggest some way to handle large volume (file size upto 60MB) in PI 7.0 file to file scenario.
    Best Regards,
    Madan Agrawal.

    Hi Madan,
    If every record of your source file was processed in a target system, maybe you could split your source file into several messages by setting up this in Recordset Per Messages parameter.
    However, you just want to convert you .txt file into a .xml file. So, try firstly to setting up
    EO_MSG_SIZE_LIMIT parameter in SXMB_ADM.
    However this could solve the problem in Inegration Engine, but the problem will persit in Adapter Engine, I mean,  JCo call error ...
    Take into account that file is first proccessed in Adapter Engine, File Content Conversion and so on...
    and then it is sent to the pipeline in Integration Engine.
    Carlos

  • Impact of High Volume of Idocs

    What are the Impacts of High volume of Idocs on the application and what could be the solutions to overcome those impacts.

    Hi,
    IF the high volume is on the inbound side then use the baground posting. If it is on the outbound then use the packet. Also it depends on what is the IDOC that is being sent or received and the business process. If you can send the data in a single IDOC or in a multiple IDOC. This is possible in case like HRMS.

  • Processing large volumes of data in PL/SQL

    I'm working on a project which requires us to process large volumes of data on a weekly/monthly/quarterly basis, and I'm not sure we are doing it right, so any tips would be greatly appreciated.
    Requirement
    Source data is in a flat file in "short-fat" format i.e. each data record (a "case") has a key and up to 2000 variable values.
    A typical weekly file would have maybe 10,000 such cases i.e. around 20 million variable values.
    But we don't know which variables are used each week until we get the file, or where they are in the file records (this is determined via a set of meta-data definitions that the user selects at runtime). This makes identifying and validating each variable value a little more interesting.
    Target is a "long-thin" table i.e. one record for each variable value (with numeric IDs as FKs to identify the parent variable and case.
    We only want to load variable values for cases which are entirely valid. This may be a merge i.e. variable values may already exist in the target table.
    There are various rules for validating the data against pre-existing data etc. These rules are specific to each variable, and have to be applied before we put the data in the target table. The users want to see the validation results - and may choose to bail out - before the data is written to the target table.
    Restrictions
    We have very limited permission to perform DDL e.g. to create new tables/indexes etc.
    We have no permission to use e.g. Oracle external tables, Oracle directories etc.
    We are working with standard Oracle tools i.e. PL/SQL and no DWH tools.
    DBAs are extremely resistant to giving us more disk space.
    We are on Oracle 9iR2, with no immediate prospect of moving to 10g.
    Current approach
    Source data is uploaded via SQL*Loader into static "short fat" tables.
    Some initial key validation is performed on these records.
    Dynamic SQL (plus BULK COLLECT etc) is used to pivot the short-fat data into an intermediate long-thin table, performing the validation on the fly via a combination of including reference values in the dynamic SQL and calling PL/SQL functions inside the dynamic SQL. This means we can pivot+validate the data in one step, and don't have to update the data with its validation status after we've pivoted it.
    This upload+pivot+validate step takes about 1 hour 15 minutes for around 15 million variable values.
    The subsequent "load to target table" step also has to apply substitution rules for certain "special values" or NULLs.
    We do this by BULK collecting the variable values from the intermediate long-thin table, for each valid case in turn, applying the substitution rules within the SQL, and inserting into/updating the target table as appropriate.
    Initially we did this via a SQL MERGE, but this was actually slower than doing an explicit check for existence and switching between INSERT and UPDATE accordingly (yes, that sounds fishy to me too).
    This "load" process takes around 90 minutes for the same 15 million variable values.
    Questions
    Why is it so slow? Our DBAs assure us we have lots of table-space etc, and that the server is plenty powerful enough.
    Any suggestions as to a better approach, given the restrictions we are working under?
    We've looked at Tom Kyte's stuff about creating temporary tables via CTAS, but we have had serious problems with dynamic SQL on this project, so we are very reluctant to introduce more of it unless it's absolutely necessary. In any case, we have serious problems getting permissions to create DB objects - tables, indexes etc - dynamically.
    So any advice would be gratefully received!
    Thanks,
    Chris

    We have 8 "short-fat" tables to hold the source data uploaded from the source file via SQL*Loader (the SQL*Loader step is fast). The data consists simply of strings of characters, which we treat simply as VARCHAR2 for the most part.
    These tables consist essentially of a case key (composite key initially) plus up to 250 data columns. 8*250 = 2000, so we can handle up to 2000 of these variable values. The source data may have 100 any number of variable values in each record, but each record in a given file has the same structure. Each file-load event may have a different set of variables in different locations, so we have to map the short-fat columns COL001 etc to the corresponding variable definition (for validation etc) at runtime.
    CASE_ID VARCHAR2(13)
    COL001 VARCHAR2(10)
    COL250     VARCHAR2(10)
    We do a bit of initial validation in the short-fat tables, setting a surrogate key for each case etc (this is fast), then we pivot+validate this short-fat data column-by-column into a "long-thin" intermediate table, as this is the target format and we need to store the validation results anyway.
    The intermediate table looks similar to this:
    CASE_NUM_ID NUMBER(10) -- surrogate key to identify the parent case more easily
    VARIABLE_ID NUMBER(10) -- PK of variable definition used for validation and in target table
    VARIABLE_VALUE VARCHAR2(10) -- from COL001 etc
    STATUS VARCHAR2(10) -- set during the pivot+validate process above
    The target table looks very similar, but holds cumulative data for many weeks etc:
    CASE_NUM_ID NUMBER(10) -- surrogate key to identify the parent case more easily
    VARIABLE_ID NUMBER(10) -- PK of variable definition used for validation and in target table
    VARIABLE_VALUE VARCHAR2(10)
    We only ever load valid data into the target table.
    Chris

  • Outbound IDOC process - Using standard  or Custom Program

    Hi all,
    i'm having some doubts regarding IDOC's outbound processing.
    I'm trying to understand 2 scenarios:
    1- Trigger Standard Outbound IDOC without writting any Z program ou IDOC FM.
    It's possible to trigger a outbound idoc for exemple, whenever a sales order is created. To do this is, i suposed i don't need to write any code at all, correct?
    What i need to do is create a logical system (SALE), define Transmission protocol (WE20, in here i associate the partner, and the outbound message type? After this point is the idoc automatic triggered?
    If not, what is the correct procedure?
    2 Trigger Ountbound IDOC using Z program.
    Whats is diferent from the point 1 to this situation?
    Best regards,
    Pedro

    Kali,
    1. You can search in SE37 using IDOC_OUTPUT* for finding out corresponding function modules. It is based on message types.
    2. You can search user exit in above mentioned function module. So first get the correct populating FM & then you can search for Call Customer Function inside the code for user exit.
    3.Again ans is same as in point 1.

  • Is it possible to generate outbound idocs for FI invoices? How?

    Is it possible to generate Outbound idocs for FI invoices? How? or else i have to write program to get data in file and pass it to translator. Please help.

    Dear Gabriel
    Before letting you know the possibility, can you please let me know why you want such a requirement, since standard has not provided such copy control, to my knowledge.
    As you would know order type KB is for consignment fillup where you are just transferring the goods from FG unrestricted to your own warehouse and that is why in standard you can see the copy control KB --> F8 which means you can raise proforma against delivery and not against fillup order.
    So think of whether really you wanted to raise proforma against fillup order which is NOT recommended by SAP.  However, still if you feel that the requirement is so to have, you can make the settings in VTFA.
    thanks
    G. Lakshmipathi

  • Function Module to Generate Outbound IDOC for Sales Documents

    Hello Experts,
    Can someone please help me, I need to know which function module to use in order to generate the outbound IDOC for sales documents.  Some of the fm's I have come across are the following:
    IDOC_OUTPUT_ORDERS, but actually for Purchase Orders
    IDOC_OUTPUT_ORDRSP, but did not generate any IDocs for my sample Sales Order.
    Points will be given for any help provided.
    Thanks in advance.

    Hi Nagaraj,
    I tried using the IDOC_OUTPUT_ORDERS but I keep getting an error that the Purchase Order <xxx> does not exist, even though the document I tried is a sales order.  For everyone's reference here is the code:
    form process_data.
      DATA v_idoc       TYPE edidc-docnum.
      DATA i_edidd      TYPE TABLE OF edidd.
      DATA wa_idoc_ctrl TYPE edidc.
      LOOP AT i_nast INTO wa_nast.
        CLEAR i_msgs[].
        CALL FUNCTION 'WFMC_PROTOCOL_GET'
          EXPORTING
            cps_nast        = wa_nast
          tables
            messages        = i_msgs
         EXCEPTIONS
           NOT_FOUND       = 1
           OTHERS          = 2.
        LOOP AT i_msgs INTO wa_msgs WHERE arbgb EQ 'E0'.
    *--- Check first if there is an IDOC
          IF wa_msgs-msgv1 IS INITIAL.
            CONTINUE.
          ENDIF.
          v_idoc = wa_msgs-msgv1.
          CLEAR i_edidd[].
          CLEAR wa_idoc_ctrl.
          CALL FUNCTION 'IDOC_READ_COMPLETELY'
            EXPORTING
              document_number                = v_idoc
            IMPORTING
              IDOC_CONTROL                   = wa_idoc_ctrl
    *         NUMBER_OF_DATA_RECORDS         =
    *         NUMBER_OF_STATUS_RECORDS       =
            TABLES
    *         INT_EDIDS                      =
              INT_EDIDD                      = i_edidd
            EXCEPTIONS
    *         DOCUMENT_NOT_EXIST             = 1
    *         DOCUMENT_NUMBER_INVALID        = 2
              OTHERS                         = 3.
          CALL FUNCTION 'IDOC_OUTPUT_ORDERS'
            EXPORTING
              object                              = wa_nast
              control_record_in                   = wa_idoc_ctrl
    *       IMPORTING
    *         OBJECT_TYPE                         =
    *         CONTROL_RECORD_OUT                  =
            tables
              int_edidd                           = i_edidd
    *       EXCEPTIONS
    *         ERROR_MESSAGE_RECEIVED              = 1
    *         DATA_NOT_RELEVANT_FOR_SENDING       = 2
    *         OTHERS                              = 3
          IF sy-subrc <> 0.
    * MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
    *         WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
          ENDIF.
          COMMIT WORK.
        ENDLOOP.
      ENDLOOP.

  • Automated error email notification when outbound IDOC fails

    Hi,
    The requirement is that whenever the outbound IDOC of message type PAYEXT, basic type PEXR2002, fails, then email has to be trigerred to a group id.
    I had suggested to write a report program that runs as a job. If the IDOC goes to error status then mail will be sent from this report. Client prefers it to be done through workflow.
    There is a standard process code for outbound IDOC failure handling EDIO (we40). standard task 7989 has been assigned to this process code. I dont want to modify this standard task as I am not sure of impact.
    Terminating event for this task is 'ERRORPROCESSCOMPLETD'.
    I have developed the workflow that has trigerring event 'ERRORPROCESSCOMPLETD' and bound with the IDOC number. This will send mail to the group id with the IDOC details
    Now issue is that, I am not sure if standard process EDIO will be trigerred automatically, or should we configure anywhere. Since this is standard outbound IDOC, I am not able to add the process code in partner profile.
    Please give your inputs or any other alternate solution to send mail through workflow when  outbound IDOC fails.
    Thanks in advance.

    Hi,
    I guess in your outbound partner profile for PAYEXT. you need to add process code  EDIO in message control TAb. WHich will cause to trigger the workflow which will send the notification.

  • Outbound IDOC WPDTAX  not getting generated

    Hi
    I am not  able to generate outbound IDOC WPDTAX through WPMA transaction.
    We are using TAXUSJ as the tax procedure.
    Tax Condition type UTXJ and JR1 has been maintained in the system.
    On looking at the code against WPMA ,
    POS_TAX_GET is called to calculate taxes.
    It does not have a fetch against all the condtion tables for tax.
    The above condition has been maintained in table A053.While the above program fetches data against only A003.
    Can somebody help?
    Regards,
    Amit.

    Hi  Amit,
    For TAXUSJ, the conditions maintained are time dependent conditions.
    However , IDoc type WPDTAX01 does not support time dependent conditions.
    Only time independent conditions will be transferred with the help of Idoc type WPDTAX01.
    http://help.sap.com/erp2005_ehp_03/helpdata/EN/3f/81e33bfa5d11d38d1f080009d10d9a/frameset.htm
    Regards,
    Lisa

  • Message type for Scheduling Agreement - Outbound IDoc

    Hi All,
    I have to create an Idoc for Scheduling Agreement through a Z program based on some conditions. I have bit confusion, whether i can use Idoc type for Orders(e.g ORDERS01..05) & Message type ORDERS / ORDCHG to generate Outbound Idoc.
    Already there is process code for for ORDCHG mappig IDOC_OUTPUT_ORDCHG & ORDERS mappig IDOC_OUTPUT_ORDERS.  Whether there will be any impact on this.
    Appreciate your help.
    Regards,
    Anbalagan.

    Hi Anji,
    Thanks for the Reply. But i think ORDRSP is for Order Confirmations.
    But I have to send Outbound Idoc for a Schedule Agreement.
    Whether the same  Idoc type & Messge type used for SO/PO(e.g ORDERS05, ORDERS/ORDCHG) can be used for Scheduling Agreement.
    Please Advice.
    Regards,
    Anbalagan

  • Error while creating an outbound idoc using idoc type delvry02

    hi,
         i getting the following error while creating an outbound idoc(outbound shipping notification) using message type " DESADV" and IDOC TYPE " DELVRY02"
    ERROR:
                " SPECIFY EITHER ADDRESS NO OR ADDRESS HANDLE"
    MESSAGE NO: AM053
    Help would be appreciated.
    regards
    leo

    The message is kind of self-explanatory. It seems that some address (delivery address ?) is required but is missing from the IDoc. If it's a syntax error, then the segment with error will appear in red in WE05 transaction.
    It is also possible that you have filled some field that you should have left blank and now SAP is trying to find an address based on that field.
    Check your IDoc contents. It's really hard to tell from the distance since the requirements and configuration could be very different in different systems. Sometimes the OSS note search by message ID and number is also helpful.

  • Consuming an outbound iDoc from a Java Web Dynpro application on EP front

    Hi,
    I am trying to consume an outbound iDoc from a SAP system into a Java Web Dynpro application. The result would be displayed on the Enterprise Portal. Could anyone help me with the process to be followed for the same.
    Regards,
    Chandrima.

    Hi,
    I am trying to consume an outbound iDoc from a SAP system into a Java Web Dynpro application. The result would be displayed on the Enterprise Portal. Could anyone help me with the process to be followed for the same.
    Regards,
    Chandrima.

Maybe you are looking for

  • How does a record type and table type works

    Hi, How a record type and table type work for the ref cursor, below i m giving an example but its giving me errors can any one help me for this? declare type empcurtyp is ref cursor; type rectype is record (veid t.emp_id%type, vename t.ename%type); T

  • Call transaction ME33K

    Dear Abapers, I have a problem when calling transaction ME33K from a custom program I develop. I know that we can pass agreement number using SAP memory with parameter ID = 'VRT'. This is the code to call transaction       SET PARAMETER ID 'VRT' FIEL

  • *FOR Variable

    Hi, Is it possible to use the *FOR Variable in a subsequent MDX or SELECT statement? E.g. *MEMBERSET(%Acc1%,"Descendants(Account.[A_1000],,LEAVES)") *FOR %CurrAcc%=%Acc1% *SELECT(%CurrAcc1%,"ID","Account","ID=%CurrAcc%") *NEXT The above sample does n

  • Can all Acrobat Readers open files with mixed orientation pages (portrait and landscape)?

    Can all Acrobat Readers open files with mixed orientation pages (portrait and landscape)? If not, which versions can? Thanks!

  • Cloud files star-rating

    I just want to stick some photos up in the cloud for clients to look at.  I currently use onedrive for this as its got a fairly nice photo interface.  It does not display star rating though. I've not used it yet because its not very intuitive or obvi