IDocs and Multiple Records

Ignorant newbie here.  In migrating legacy data to an R/3 system, one approach seems to be to massage the data into IDoc format and ship it to R/3 for processing by some BAPI_xxx_CREATEFROMDATA BAPI.
I have a tool that can be changed to write IDoc formated data out to a disk file. 
I am unclear on whether an IDoc can contain the data for only one record or a whole bunch of records.  Or maybe I should be asking whether the disk file I produce can contain multiple IDocs (header, segments, header, segments,...).
Also, once I've produced the file containing the IDoc(s), what do I do with it; does DX Workbench handle such things?

Hi,
1) Each IDoc# contains data to process single transaction. But it contains with mutiple rows with segments data that to process necessary application data that required to create like Sales order creation/change , Material master creation/change.
2) your disk file can have any no# of idocs.
Your DX workbench(data migration tool) will process all the IDocs from file by considering one idoc# at a time.
It is as simple as like how your BDC program works inorder to post your orders that reading from file.
For understading about DX requirements click on given below link:
http://www.sapgenie.com/sapgenie/docs/PROCESSING_LSMW_DXWB.doc
Naga

Similar Messages

  • How to isolate error with a record/segment in IDOC with multiple records

    I have an IDOC with multiple records/segments (typically 1000 records/segments). Sometime XI can not process the IDOC because of some control characters in data.
    1. How can I pre-processed the IDOC to remove those control characters?
    Can I use XPATH expression/Java class to do it? How can I configure the XPATH expression/Java class in XI to pre-process the file?
    2. Until I have answer to 1st question. I would like to find out the error is exactly for which record? What configuration can I do in XI to isolate the error is with which record/segment in IDOC?
    Thanks in advance.

    Split the IDoc.
    with in the UDF, after the validations if every thing fine, pass as successful records to success_MT and pass it to target system using Branching in BPM.
    if errors found in the record, then store the error records in Hash table with in UDF, get the IDoc number, frame as a string and raise alert.
    U have to do this in the context of IDoc.
    If U wanna get the IDoc Number, Segment Name and field name for every failure, U can pass the expected error field name as constant to UDF, frame the sentence in the UDF like -> <b>IDoc 1234321 segment – SEG001 – field – FLD03 has a special character ‘*’</b>.
    If U wanna pass this string to source/target, U can do in error messages branch in BPM.
    U must use BPM for splitting the IDoc, since it is multi-mapping.
    reg.,
    Yallabandi.

  • Mapping from File to IDoc with multiple Idocs and multiple line items?

    Hi All,
    Need some help with mapping, requirement as below: I have a flat file with multiple records, need to create multiple idocs per each separate order in flat file with as many line items.
    Order_1 field-1 field-2 field-3 field-4
    Order_1 field-1 field-2 field-3 field-4
    Order_2 field-1 field-2 field-3 field-4
    Order_2 field-1 field-2 field-3 field-4
    Order_3 field-1 field-2 field-3 field-4
    Order_3 field-1 field-2 field-3 field-4
    I have imported IDoc changed to 1:Unbounded, able to create multiple Idocs based on separate order from flat file.
    Order_No - removeContexts - splitByValue(ValueChanged) - collapseContexts - exists - creatIf - IDOC
    Now I am having hard time creating a line item segment E1EDP01. I want to have Idoc created below way:
    IDoc-1 (Order_1)
    E1EDP01
    E1EDP01
    IDoc-2 (Order_2)
    E1EDP01
    E1EDP01
    IDoc-3 (Order_3)
    E1EDP01
    E1EDP01
    I am getting multiple IDocs created. Please help me to create mutlieple line items under each Idoc. Please be speficic about the node funtions to be used, because I tried many times with different combinations, didn't work.
    Regards,
    N@v!n

    Hi Navin,
    Create your source structure like below
    <Order>1 to unbounded
        <Order_No>
        <field1>
        <field2>
        <field3>
        <field4>
    </oder>
    to create mutiple IDocs based on order number,use below logic
    Order_No-->removecontexts--->sort--->splitbyvalue(Valuechange)--->collapsecontext-->Idoc
    use below logic for E1EDPO1,
    Order----->removecontexts------>
                                                                                    formatByexample------>E1EDP01
    Order_No-->removecontexts--->sort--->splitbyvalue(Valuechange)-------->
    try above logic and let me know if you any issues.
    Regards,
    Raj

  • File to IDOC for multiple records

    hi friends
       my requirement is to design a scenario for FILE to IDOC (for customers) say i have 120 customers. i have changed the XSD file for IDOC and strucked at Integration Process. can anyone guide me in BPM.
    thanks and regards
    suman.

    hi,
    you can search sdn for it.
    /people/anish.abraham2/blog/2005/12/22/file-to-multiple-idocs-xslt-mapping
    Single File to multiple IDoc
    regards,
    ujjwal kumar

  • SOAP to IDOC and Control record

    Hi I am doing SOAP to IDOC scenario and we are using XSLT mapping in our scenario. In the mapping we dont want to hard code any IDOC control record values..can some one explain how to proceed with this. We tried the following scenarios.
    1) We hard coded the control record values and we didnt set the "Apply control record values from check box"  in the receiver
        IDOC adapter, but still the IDOC gets posted with out any isses.
      we tried to get the values dynamically so we set the Logicical system names in the sender and receiver business systems and i  disabled EDI_DC40  node, after i did this there is no EDI_DC40 segment in the IDOC message and i get error in SXMB_MONI that "Error: Copy Sender from Payload: Sender Is Missing in Payload" . We havent set any check box in the receiver communication channel, and i was assuming that this segment should automatically be populated by the adapter, but that is not happening.
    Can some one guide as to how we can fill the control record with out hard cording the values in the mapping.

    HI Amit,
       Is header mapping mandatory if we dont want to get the details from payload. As per SDN if we dont check populate control record from payload check bod . The sender and receiver details will be populated automatically ..is that not true. Please refer to the link below. Please help me understand this.
    [reg:HEADER MAPPING|reg:HEADER MAPPING]

  • Single and  Multiple Records On Same Data Block?

    Hi all,
    Im using forms 6i with db 9i.
    Im having a nested table which contains a column of datatype TYPE(table of varchar2(100)).
    Now i want to create a data block based on the nested table.
    So, I want only one column should be multirecord in the block.
    When i set the block level NO OF RECORDS PROPERTY to multiple, then all the items in the block getting changed as
    multi records.
    Is that possible to have multirecord for a particular field OR how to fix this issue?
    Regards
    Sankar MN
    Edited by: SankarMCA on Oct 17, 2010 9:55 PM

    Hi Baiq,
    Thanks for your responses. I moved the multirecord item into a separate block(control block) and it worked.
    But still im having a doubt regarding this.
    How can we map a db column which has datatype of TYPE(Collection) to a particular item in forms?
    Because when i try to create a new datablock based on that table im not able to move that collection column from
    the available columns to database items in the datablock wizard. It seems like disabled and tree node structure and
    im not able to select the same.
    Next thing, Even though we assigned those column manually, How the commit_form save that multirecord column
    with multiple values?
    So kindly let me know how to solve this case if possible.
    Regards
    Sankar MN
    Edited by: SankarMCA on Oct 18, 2010 7:14 AM

  • Problem for Struts action to insert multiple records

    I am writting a code for Struts action which inserting a single record to table A and multiple records to table B .The architecture that I applied is Struts+Spring+iBatis.The multiple records are come from a 10-rows table in the design.The name of each column element is same.The field name other than these are just single-row field.
    <tr>
    <td><input name="date" type="text" size="12" /></td>
    <td><input name="billno" type="text" size="8" /></td>
    <td><input name="desc" type="text" size="11" /></td>
    <td><input name="purpose" type="text" size="20" /></td>
    <td><input name="proName" type="text" size="6" /></td>
    <td><input name="trainingCost" type="text" size="5" /></td>
    <td><input name="travelCost" type="text" size="7" /></td>
    <td><input name="entCost"  type="text" size="5" /></td>
    <td><input name="miscCost" type="text" size="5" /></td>
    </tr> I am using three DTO objects to hold the data.claimArray is the ClaimDTO array that hold the multiple record insert to table B.claimdto is the object that hold the single field record to table A.claim_dtldto is the object that hold the single field record to table B.
    PK of table A and table B are claimNo and claimDtlNo respectively.claimNo is also FK of table B. HTMLUtil is just an API that I used it for type conversion.There will have two insert statements in iBatis xml, insertClaim & insertClaimDtl to insert data into table A and table B respectively.I not sure what went wrong in the code,the data is not inserted into db.Thank advanced for you guys help..
    This is the codes in Action file:
    public class InsertClaimAction extends SpringAction {
       public ActionForward execute(ActionMapping mapping,
                                     ActionForm form,
                                     HttpServletRequest request,
                                     HttpServletResponse response) throws Exception {
        // string arrays that store multiple values
        String [] date = new String[10];
        String [] billno = new String[10];
        String [] description = new String[10];
        String [] purpose = new String[10];
        String [] proName = new String[10];
        String [] trainingCost = new String[10];
        String [] travelCost = new String[10];
        String [] entCost = new String[10];
        String [] miscCost = new String[10];
        String staffName = request.getParameter("name");
        String claimMy = request.getParameter("monthyear");
        String department = request.getParameter("department");
        String designation = request.getParameter("designation");
        Double excrate =  HTMLUtil.str2double(request.getParameter("excrate"),0.0);
        Double grandTotal = HTMLUtil.str2double(request.getParameter("grandTotal"),0.0);
        Double totalRM = HTMLUtil.str2double(request.getParameter("totalRM"),0.0);
        Double totalFC =    HTMLUtil.str2double(request.getParameter("totalFC"),0.0);
        String fcName = request.getParameter("fcAbbr");
        if(request.getParameter("date") != null)
            date = request.getParameterValues("date");
        if(request.getParameter("billno") != null)
            billno = request.getParameterValues("billno");
        if(request.getParameter("description") != null)
            description = request.getParameterValues("description");
        if(request.getParameter("purpose") != null)
            purpose = request.getParameterValues("purpose");
        if(request.getParameter("proName") != null)
            proName = request.getParameterValues("proName");
        if(request.getParameter("trainingCost") != null)
            trainingCost = request.getParameterValues("trainingCost");
        if(request.getParameter("travelCost") != null)
            travelCost = request.getParameterValues("travelCost");
        if(request.getParameter("entCost") != null)
            entCost = request.getParameterValues("entCost");
        if(request.getParameter("miscCost") != null)
            miscCost = request.getParameterValues("miscCost");
          //initialize dto
        ClaimDTO claimdto = new ClaimDTO();
        ClaimDTO claim_dtldto = new ClaimDTO();
        ClaimDTO[] claimArray = new ClaimDTO[10];
        claimdto.setClaimNo(claimNo);
        claimdto.setStaffName(staffName);
        claimdto.setClaimMy(claimMy);
        claimdto.setDepartment(department);
        claimdto.setDesignation(designation);
        claimdto.setExcrate(excrate);
        claimdto.setGrandTotal(grandTotal);
        claim_dtldto.setClaimDtlNo(claimDtlNo);
        claim_dtldto.setClaimNo(claimNo);
        claim_dtldto.setTotalRM(totalRM);
        claim_dtldto.setTotalFC(totalFC);
        claim_dtldto.setFcName(fcName);
        for(int i = 0;i < claimArray.length;i++) {
            if(claimArray[i] != null) {
                claimArray.setDate(date[i]);
    claimArray[i].setBillno(billno[i]);
    claimArray[i].setDescription(description[i]);
    claimArray[i].setPurpose(purpose[i]);
    claimArray[i].setProName(proName[i]);
    claimArray[i].setTrainingCost(Double.parseDouble(trainingCost[i]));
    claimArray[i].setTravelCost(Double.parseDouble(travelCost[i]));
    claimArray[i].setEntCost(Double.parseDouble(entCost[i]));
    claimArray[i].setMiscCost(Double.parseDouble(miscCost[i]));
    //service
    ClaimService springservice = (ClaimService)getBean("ClaimService");
    springservice.insertClaim(claimdto);
    springservice.insertClaimDtl(claim_dtldto,claimArray);
    return mapping.findForward("success");

    Two things; you need to pass #number# as a form field and you
    need to pull the correct record out.
    Use this:
    <cfloop list="#form.fieldnames#" index="fieldName">
    <CFSET record = Evaluate("form.record_#number#")>
    </cfloop>
    Here's some example code:

  • Indesign Cs4 Multiple record data merge

    I am trying to create a response card.
    The sizing is such that they lie three on a letter sized page, and fit into Number 9 envelopes.  I've
    data merged onto the one page (so three target/data boxes in each of the response cards) but when i select expo
    rt and multiple records it doesnt work right.  It generates three on a page of all the same
    record, and then a page of three for each record.  i need each record only once and i'd like to print them three to a page and then cut them.
    advice?  i am not very advanced with indesign, so specific steps would be much appreciated.
    is there a way to print if i make just one card?  it seems you can only do 2 or 4 to a page, not three

    You set your fields three times on the page right?, delete instances 2 & 3.
    Repeat - Set the first instance of all your design, eliminate everything else.
    From the Create Merged Document panel, select "Multiple Fields" in Records per Document and adjust spacing on the Multiple Record Layout tab. (Hint, turn on preview)

  • Display multiple records with CSS

    PHP MySQL
    I have a MySQL table with several columns and multiple
    records... it is easy
    to display these records in a <table> using the repeat
    record server
    behavior applied to the <tr> that displays the records.
    I would like to do this with CSS and eleminate
    <table>'s
    My question is can this be done displaying the records in a
    <div> using the
    repeat record server behavior?
    Or is this just one of those things that a <table> is
    required?
    Jeff

    Displaying rows of data is actually the reason tables were
    originally
    invented. :)
    You need a table with the number of columns for your data and
    two rows. The
    first row is for the column headers. The second row is for
    the PHP
    placeholder that will be replaced with data. Apply the repeat
    region to
    this second row either for all rows or the number of rows you
    desire to
    display on one page .. in which case you would also use
    recordset paging.
    (previous, next)
    Nancy Gill
    Adobe Community Expert
    Author: Dreamweaver 8 e-book for the DMX Zone
    Co-Author: Dreamweaver MX: Instant Troubleshooter (August,
    2003)
    Technical Editor: DMX 2004: The Complete Reference, DMX 2004:
    A Beginner''s
    Guide, Mastering Macromedia Contribute
    Technical Reviewer: Dynamic Dreamweaver MX/DMX: Advanced PHP
    Web Development
    "Jeff" <[email protected]> wrote in message
    news:erindt$i70$[email protected]..
    > PHP MySQL
    > I have a MySQL table with several columns and multiple
    records... it is
    > easy to display these records in a <table> using
    the repeat record server
    > behavior applied to the <tr> that displays the
    records.
    >
    > I would like to do this with CSS and eleminate
    <table>'s
    > My question is can this be done displaying the records
    in a <div> using
    > the repeat record server behavior?
    > Or is this just one of those things that a <table>
    is required?
    >
    > Jeff
    >

  • Creation of multiple Records in the file as per multiple segments in IDOC

    Hi SapAll.
    i have got a requirement to create a multiple records in a file based on multiple segments at sending Idoc in a File To Idoc Interface.
    the Scenario  is the reciever message type is mapped with fields of 3 segments in sending IDOC.
    SEG01   1.....1(PARENT SEGMENT)
      SEG02  0...999999(CHILD SEGMENT)
      SEG03 0...9999999(CHILD SEGMENT)
    in an instance where if the SEG01 exists for one time and SEG02 exists for 2 times and Seg03 Exists for 2 times PI is creating the file with 2 records in it but
    when if the SEG01 exists for one time and SEG02 exists for 2 times and Seg03 Exists for 1 time it is raising the error in message mapping where it is supposed to create 2 records in a file with empty values in the fields (mapping with seg03) segment.
    can anybody help me in this.
    regards.
    Varma

    you can create a UDF after you validate if the count match. if match you create the message if not, call de UDF.
    this UDF should receive two parameters -->Queue SEG2 and queue of SEG3.
    then you should loop by the count of SEG2. if you find a Supress Value in the queue of SEG3 add a "" to result. for example.
    for(i=0;i<=SEG2.count;i++){
    If SEG3<i>.equals(ResultList.SUPPRESS) {
           result.addValue(" ");
    }else{result.addValue(SEG3<i>);
    the result of UDF is a queue which should map to target field directly coz it has context changes
    I think that is what you are needing. if no let me know.
    RP
    Edited by: Rodrigo Alejandro Pertierra on Jun 17, 2010 11:56 AM

  • Multiple records from IDOC should be processed one by one Thru Web service

    Hi Experts,
    I have a requirement where in the idoc (custom one) will collect data from R/3 system at the frequency of One hour and send them to XI and from XI i need to call the Web serice which would post only one record at a time. In this case how should i manage by mapping. Its something like records from a Table needs to be posted sequentially thry Web service at the receiving end..
    Thanks for your replies in advance.
    Regards,
    Rajesh

    Hi,
    Please see the below links
    /people/pooja.pandey/blog/2005/07/27/idocs-multiple-types-collection-in-bpm - Collection of IDoc to Single File
    /people/stefan.grube/blog/2006/09/18/collecting-idocs-without-using-bpm - collecting IDocs without BPM
    /people/michal.krawczyk2/blog/2005/12/04/xi-idoc-bundling--the-trick-with-the-occurance-change - IDOC bundling
    idocs - /people/sravya.talanki2/blog/2005/08/24/do-you-like-to-understand-147correlation148-in-xi
    Idoc - Multiple - interfaces - Idoc to multiple interfaces in XI
    Multiple mappings into one Im - Multiple message mappings in one integration scenario
    Multiple Idocs
    How to send Multiple Idocs?
    Regards
    Chilla..

  • IDOC to FIle multiple records

    HI Experts,
    My scenario is IDOC-FILE and i need to collect idocs and send it to XI. So i am using XML PORT.
    The vendor master file is reaching the directory that i specified in receiver communication channel.but only one record is existing in that even i send multiple idocs.
    i had configured the messege mapping  with the external message  that i imported as XSD(changed the idoc occurence max= unbounded) and i used the same for interface mapping.
    what can be the problem .
    Thanks in Advance,

    HI,
    This problem due to occurance mapping, check sender and receiver structure occurance fields mapping.
    In sender partner profile outbound configuration select collection idoc option
    source                 target
    segment (0..un)-----> row(0..un)
                 field1................field1
                 filed2................field2
    this mapping will sort out your problem

  • Split the IDOC into multiple IDOC if the IDOC has more than 500 records

    Hi All,
    I developed an outbound IDOC in which we are facing an issue.
    There is some limitation on the maximum idoc size it can handle.
    If number of records is more than 500, split the idoc into multiple iDoc's, e.g. if it would have 1300 records , the result would be 2 iDoc's with 500 records, and the last one would have 300 records
    How can i acheive this.
    Regards
    Jai

    Hi,
    1) first you need to know which message type/Idoc type you are triggering.
    2) Get the Corresponding processcode from Partner profiles(WE20/ WE41).
    3) Then the look for prper user-exit in the related processing FM.
    4) write logic to split the IDoc accordingly.
    if no proper user exit available then copy the standard processing FM and need to all ALE related configurations.
    Catch hold any ABAP expert in your team to do all these.
    Suresh

  • Posting  multiple records from file to idoc

    Hi Exerts,
       i have done scenario to post one record from file to IDOC, to post multiple records from file to idoc what are the options to be modified in the scenario.
    thanks,
    dhanush

    Hi Dhanush,
      You need to change the occurance of idoc to 0 to unbounded ie need to opt idoc packaging.
      Just download the xsd of you idoc to the desktop and change the occurance tag as "<xsd:element name="IDOC" type="COND_A.COND_A02" maxOccurs="unbounded" />" and then reimport it into External definition and use it in your message mapping and then map it with you source structure.
    Regards,
    Prasanthi.

  • Forms pulling Multiple Records from an XML Schema and XML data files - Adobe LiveCycle Designer

    I built a form in Adobe LiveCycle with an xml schema and data file.  The problem is with how the form renders the xml data file.
    I have a statement element that consists of about 6 fields (statementID, statementName, statementAddress, statementCountry, statementZip, statementDate, etc) of data in the schema that allows for multiple iterations - so one xml data file can contain multiple statements. These fields allow for null values.
    But here's the problem:  When any of the statements - say statement 2 of 6 - has a null value in one of the fields, if the xml data file doesn't have a placeholder
    (example of placeholder:  <statementName type="String"/>   )in the xml for that field, my form pulls the field value from the NEXT statement.
    This corrupts all the rest of the statement records, as this field is shifted up for all the rest.
    I know that in the past I haven't needed a placeholder when a field was null. But I'm wondering if when the data allows for multiple records the xml data file needs to generate the placeholder.  And where is the problem? In the Schema? The xml data file? My form?  And the 64-thousand-dollar question:  How to fix it?

    If your <statement> element is the one that repeats, it should be bound to a subform with the binding string of something like $.statement[*]. Then in that subform should be your fields and they should have bindings of $.statementID, $.statementName, $.statementAddress, etc.
    Kyle

Maybe you are looking for

  • Sap Payroll error log report

    Hi All, We are developing Report on SAP Payroll log with the error message . Is any table exist in SAP where we can get the standard error message repositery and then convert it in the User freindly error message ? Thanks H

  • How to link to an image from database result.

    Hey all, So i have created a search form for a user to search a vehicle in a scrap yard. The vehicles are stored in database with no images( i have no idea how to do this. So i want to be able to allow the user to click on a link to view the vehicle

  • Intel Xserves Crash only on weekends

    We have 10 Intel XServes that we received in early December. For some reason anywhere between 2-6 of the 10 crash and become unresponsive, only on the weekends, usually Saturdays. Very odd. I've been checking them every weekend since we've purchased

  • I can't change the ringtone on my iPhone 4

    I recently changed my wife's incoming ringtone on my phone to one I recorded from a CD.  The default ringtone on my own phone is one I bought from Apple*. Doing this changed the default for ALL incoming calls to the one I set for my wife even though

  • Naming of Assignements

    My editor is making separate incopy files for each chapter. When I placed them into my indesign layout, they have the same name in the assignment window, even though there have different distinct names, chapter 1.icml, chapter2.icml..... Why do they