SapErrorMessage=Inconsistent IDocs passed: Data records or control records

Dear Friends
I am not a basis guy but am doing that work, since we don't have any basis admin in our company. One of our clients using our server in the lab is doing some testing of sending IDOCs from one server to another and are getting the following error message
SapErrorMessage=Inconsistent IDocs passed: Data records or control records missing..
AdapterErrorMessage=Error occurred while calling function module "INBOUND_IDOC_PROCESS" in R/3
Is there any log files or some thing that I can see to get more info on this problem. I don't know where the log files related to this kind of problems get stored. Any feedback will be highly appreciated.

thanks all for your help, great progress has been made!
There was no idoc record in sap as the document had not made it that far
A large part of the problem was my lack of understanding of sap versioning. My previous understanding was that you had a major version of the document: ORDERS01, ..., ORDERS05 and each of these have a version that relates to the software version, e.g. 47, 62, 64 etc.. which appears in the control record.
So I apparently have:
ORDERS05   64    V2
ORDERS05   64    V3
Can anyone explain this versioning model?
I would assume that V3 is the newer version but ...
thanks and regards

Similar Messages

  • Error: IDoc XML data record

    Hi all,
       We have file->XI->idoc scenario and the problem we are facing is like, when the idoc structure is prepared using XSLT mapping, when the idoc is ready to get in thru the idoc adapter we are getting the following error.
    <i><b>Error: IDoc XML data record: In segment
    Z1UKGAS_HEADR attribute  occurred instead of SEGMENT                                </b></i>
    Anyone faced the same issue....if so pls do throw some light into this issue....
      We r in XI 3.0 SP13...
    Thanks & regards,

    In an IDOC structure segment attribute is requried. From the error you posted, it looks like seqment attribute is missing.
       <IDOC BEGIN="">
          <ED SEGMENT="">

  • Error : IDoc XML data record: In segment attribute occurred instead of SEGM

    hi friends
    i am doing the file to idoc scenario. in message mapping i had done the static test. but what ever the fields i mapped in the idoc it was not populated in the idoc. and i am getting the error as
    error :IDoc XML data record: In segment attribute occurred instead of SEGMENT
    can any one solve the problem please
    thanks in advance

    Hi Vasudeva,
    Pls do check the nodes which you have mapped to. Also make sure that your SEGMENT field in the target structure is mapped properly.

  • Error : idoc xml data record : in segment attribute instead of SEGMENT

    hi all
    i am doing the file to idoc scenario. in that i am getting the error
    error : IDOC XML Data record : In segment attribute instead of SEGMENT
    i am doing this scenario since 4 days.
    can anyone help me
    thanks a lot

    in ref. to my post in your earlier thread.
    in your mapping check, in your IDOC if Begin , segment etc are mapped to a constant say '1'.
    Also ref: In segment IDOC attribute I occurred instead of SEGMENT

  • IDOC:Master Data Records are not going to be updated after posting the IDOC

    I need to create employee Master data records in R/3 .I am using the IDOC HRMD_A07, though the IDOC posting is successful no tables, corresponding to employee master Data are getting  updated,
    Can anybody plz Let me know the possible reasons and solutions for this?
    Thanks in Advance,

    hi i hecked the job log entries in SM37 in source system, the idocs were returned with '0' records. i took the Idoc number and checked in BD87 it displays some logs in that one node shows the red status with the detail as follow  IDoc entries in tRFC queue      3383
    the next one is green                Data passed to port OK                    1
    i selected the red staus node and clicked 'process'  button but it displays as
    The operation cannot be carried out with this node type
    wht should i do now, wht may be the reason for the datasource not pulling the data from R/3 to BI?

  • Idoc without Data records

    Hi All,
    Recently, an Idoc got created in my system  without data records.This Idoc got created by an output type.Now this is creating problems while we try to process the same output type again.The error we are getting is "IDoc 0000000143123223 does not exists".I debugged and figured this is because there is no data segments.
    I tried to delete the Idoc and change the status of the Idoc.But its giving same error as Idoc does not exist.Please let me know how to delete or change the status of the idoc.

    Hi Karthik,
    Just check on the field date, this request delivery date in CRM.
    Does it come from date profile? If it does, then try to remove the
    date rule or any default value for this date.
    Alternatively, I am afraid you have to separately save the date
    after first IDOC document creation is done. Seems that the default
    value taken place (and replaced) after the document has created.
    Hope this helps.

  • Passing data to table control in screen exit - IW33 (IWO000018)

    Hi Experts,
    I am stuck in middle of a screen exit. Request your kind help on this.
    Requirement scenario: -
    To add an additional tab named "Estimated Costs" in transaction IW31, IW32, IW33. This tab will include a table control with 4 columns: - Operation, operation short text, Estimated cost and Currency. Columns Operation and Operation short text should show all the operations from tab 'Operations' (that can be fetched from table AFVC based on Routing number of operation as fetched from view CAUFV).
    Issue: -
    Table control has 4 columns, 2 are non-editable,2 are editable. Data in the non-editable fields is passed correctly, whereas in I/O editable fields, entered data is not retained everytime PBO is called. I have modified the internal table in the PAI event.
    Pointers in this direction are highly appreciated.
    Best Regards,
    Edited by: shreya tagra on Apr 29, 2010 5:48 AM

    I suppose it has to do with the code you have written. Please post a relavant snippet of your flow logic.

  • Pass data between Tab Control Pages

    I’d like to initiate a serial VISA session in the first page of a Tab Control to use the VISA Serial Configure.VI outputs (Visa resource name and Error cluster) in other pages or outside the tab control.
    So, how can I pass those references outside the page? I used local variables, but it doesn't seem the best way to do this because I need to create several variables to capture the reference in each page of the tab control...
    I created a sub-VI to initialize the VISA session, but in this case it always starts a new session every time I use the sub-VI….
    Thanks in advance!
    Block Diagrams (LabVIEW 8)
    Message Edited by Klein on 04-03-2007 12:56 PM
    Attachments: ‏37 KB
    TabControl - Page1.jpg ‏94 KB
    TabControl - Page2-3.jpg ‏165 KB

    There's no reason at all to wire the tab control to a case statement. Since you have the read and write Booleans and they can't be clicked until the user changes tab pages, no code for the tab is necessary.With the Booleans for write and read, you should just have an event structure for those. You could initialize the serial port outside the main while loop and just pass the resource name in. Of course, if you wanted a tab for the init funciton, you could do that to but put a Boolean on that page to execute it. The only time you need to wire the tab control to a case statement is if you want to run some code immediately when the page is clicked.
    Attachments: ‏45 KB

  • How to Pass Multiple data records into SDATA for a segment

    Hi Friends,
    I need to Pass data records to Function Module
    MASTER_IDOC_DISTRIBUTE for Creating Outbound IDOCs
    I am Collecting all the Data Records and Passing into the Structure EDIDC.
    Here my problem is
    For one Route there are Multiple Customer records.
    so my First Parent Segment is ZROUTE
    i am passing the Datarecord for this Segment.
    and for the Customer Segment , I have 5 Customers,
    so i am passing the 5 Data records to SDATA .
    Loop at gt_route into gw_route.
    Pass the Route data into the Data record SDATA
      gw_idocdata-sdata    = gw_route_header.
      gw_idocdata-segnam = lc_route_header.
      gw_idocdata-hlevel = lc_4.
      APPEND gw_idocdata TO gt_idocdata.
      CLEAR : gw_route_header, gw_idocdata.
    Loop at gt_customer into gw_customer
                                   where anlage  = gw_route-anlage.
    Pass the Customer data into the Data record SDATA
      gw_idocdata-sdata  = gw_customer.
      gw_idocdata-segnam = lc_customer.
      gw_idocdata-hlevel = lc_5.
      APPEND gw_idocdata TO gt_idocdata.
      CLEAR : gw_customer, gw_idocdata.
    So this customer segment is comming 5 times in my IDOC
    Can any one suggest me whether i am going in correct way or not.
    I am Getting the IDOC status 26.
    Error during syntax check of IDoc (outbound)
    I think it is because the IDOC is not yet SET RELEASE.
    But i am having the Dought in Passing the data to SDATA fied
    of the EDIDC Structure.
    Can any one Suggest me.
    Thanks in Advance,

    First of all EDIDC is the control record, EDID4 is the data record. When collecting customer record into idoc_data you need to insert customer's parent segment number.
    route1, segnum 1.
       child 1, segnum 2 and parent segnum = 1
       child 2, segnum 3 and parent segnum = 1
       child 3, segnum 4 and parent segnum = 1
    route 2, segnum 5
       child 1, segnum 6 and parent segnum = 5
       child 2, segnum 7 and parent segnum = 5
       child 3, segnum 8 and parent segnum = 5
    ...Reward if useful.

  • Cannot display archived idoc data records in SARA

    In our ERP system, we regularly archive idocs older than 6 months. To view these archived idocs I use transaction SARA (with archive object IDOC and infostructure SAP_IDOC_001) to search for the relevant idoc that has been archived. Once the idoc is displayed, I drill down further by clicking the magnify glass button which then displays the idoc levels:
    EDIDC               Control record (IDoc)
    EDIDD               Data record (IDoc)
    EDIDS               Status Record (IDoc)
    SRL_ARLNK      SREL: Archive Structure for Links
    When I try to view the Data Records, I get a message saying "You are not authorized to display table EDIDD". According to our Authorizations department, this is not an Auth issue but rather config setup or program issue.
    Why can't I view the archived idoc data records? Is there another way to view archived idoc data?

    Hi Jurgen,
    Thanks for moving my post to the correct space.
    Our Auth team is very confident that this is not a user auth issue. This could possibly be true because the idoc data resides on the following tables when in the database (before archive) - EDIDC, EDID4 & EDIDS. The idoc could then be viewed via transaction WE02 or the Data Browser (SE16). There is no EDIDD table in our ERP system so obviously no authorization object to assign to.
    Once the idoc is archived, the data is removed from the ERP tables and moved to our archive database/server for storage. So when trying to view the archived record, the system does not access the ERP tables but rather the archive directory (that it's mapped to in settings). I assume the SARA transaction merely displays the data in the same segments/grouping with these table names (mentioned above in my first post) but instead of EDID4 it displays EDIDD.
    According to the error longtext, "The check performed when data is read from the archive is the same as that of the Data Browser (transaction SE16)". So I was not involved with setting up our archiving procedure but could it be that table EDID4 was incorrectly mapped to table EDIDD in archives?

  • Comparing two data records of same IDOC

    In PI, we need to compare two data records of same IDOC to figure out if what type change occurred.  For example, BENFIT3 IDOC contains data records tilted "E1BEN04".  When there are multiple "E1BEN04" data records, then we need to compare the data inside them to see whether name, or data of birth or SSN is changed. 
    Has anybody came across this before. Your help is much appreciated.

    If it is very few fields then you could use graphical mapping to determine the changes.

  • How to delete data in table control

    I am doing module pool programming. After the user enters the data in table control after saving the data. if the user wants to  remove the line item the line item shd be removed from the screen and data base.
    Please Give me vaulable Suggestions

    Screen 8002 (with table control) --> select records --> press delete button --> delete selected records
    Now you wan to delete those records selected by the user at runtime when DELETE button is clicked.
    Take another internal table and work area same as the initial internal table and work area used in screen 8002 which is to be used to delete the selected data.
    Take the names of the input/output fields as work_area-field_name and select column in table control as work_area-flag.
    Also take a flag field of size 1 datatype character as the last field in the internal table and work area while declaration.
    You must have passed a code in PBO of the screen for reading internal table into the table control.
    So it reads the internal table into the table control whenever you perform any action on use command.
    All you need to do is to write a code to modify the internal table form the table control while performing any user action.
    Remember to change the LINE SEL option in attributes of table control as MULTIPLE.
    At screen logic,
      MODULE status_8002. "for pf-status
      LOOP WITH CONTROL po_tab. "po_tab is table control
        MODULE pass_data. "to pass data into table control from internal table
      MODULE user_command_8002. "for user command(back and exit)
      LOOP WITH CONTROL po_tab.
        MODULE modify_data. "to modify data from table control into table control
      MODULE delete. "to delete the selected records
    In PBO,
    *&      Module  STATUS_8002 OUTPUT
    MODULE status_8002 OUTPUT.
      SET pf-status 'ZAB_PFSTA'. " pf-status
      DATA : line_count TYPE i.
      DESCIRBE TABLE it_ekpo
      LINES line_count.
      po_tab-lines = line_count + 10.
      " to make table control scrollable
    ENDMODULE.                 " STATUS_8002  OUTPUT
    *&      Module  PASS_DATA  OUTPUT
    MODULE pass_data OUTPUT.
      READ TABLE it_ekpo into wa_ekpo INDEX po_tab-current_line.
    ENDMODULE.                 " PASS_DATA  OUTPUT
    "it_ekpo is internal table and wa_ekpo is the work area
    In PAI,
    *&      Module  MODIFY_DATA  INPUT
      "modify records from table control into the internal table
    ENDMODULE.                 " MODIFY_DATA  INPUT
    *&      Module  DELETE  INPUT
        WHEN 'DELETE'. "when delete button is clicked
          SORT IT_EKPO BY FLAG DESCENDING. "sort by flag(selection column value)
          CLEAR WA_EKPO1.
          CLEAR WA_EKPO.
          REFRESH IT_EKPO1.
            DATA : J TYPE I.
            CLEAR J.
            J = SY-TABIX. "assign index value if a record is selected
            MOVE-CORRESPONDING WA_EKPO TO WA_EKPO1. "append selected records to another
            "work area and append to another internal table to delete
            APPEND WA_EKPO1 TO IT_EKPO1.
            DELETE IT_EKPO. "delete the selected records from initial internal table
            " to reflect the changes on the table control
          IF J = 0.
            MESSAGE I006. "if no record selected
          ELSE. "if some records are selected
            DELETE ZEKPO FROM TABLE IT_EKPO1. "delete from database table
            COMMIT WORK.
            IF SY-SUBRC = 0.
              MESSAGE S007. "success message (records deleted)
    ENDMODULE.                 " DELETE  INPUT
    Now at PAI, you have delete records and these changes are reflected back to the internal table.
    Now when PBO is executed it will again read the initial internal table and will not show the deleted records.
    Hope this solves your problem.
    Thanks & Regards,
    Tarun Gambhir

  • Some question on IDOC (Control Record/Data Record/Status Record)

    Dear all,
    I am new in this area, and would like to enquire some question on this topic.
    When I view a IDOC via WE02, each of the IDOC record will consist of Control Record/Data Record/Status Record).
    I notice that the data records consists of many segment (i.e. E1EDK01, etc) which are use to store application data.
    1 - My question is do I have to manually create all these segment and do a mapping to my application field one by one (i.e. that is when I want to create a brand new message type from scratch)?
    2 - If question no. 1 is Yes, how to do it, what are the transaction code to create it? can you show me the step by step.
    3 - I don't have to create the Control record and the status record for my new message type right ? because those field value will automatically pull out from partner profile and system status message, am I correct?

    Hi Tuff,
    As everything in SAP, with IDOCs too there are
    1) Standard IDOCs
    2) Standard IDOCs(Extending - Enhancement to an IDOC, to accomodate for custom values)
    3) Custom IDOCs
    And every IDOC has,
    Control record - EDIDC Structure - This mostly reflects the partner profile information, along with few more details which are used for IDOC extension, Sequencing etc
    Data Records - EDID4 Structure - These records contain the actual business data of the document in concern. So for ORDERS05 it would contain order details, INVOIC02 - Invoice details so on...
    Status Records - These records capture the status of an IDOC from the time it is received/sent from your system and a corresponding business document is created/changed. So this will have messages like "IDOC sent to the port OK" etc which are status from the communication layer(ALE) to application specific messages like "Sales Order XXX created" or "Invalid Material" etc.
    You would have noticed something called as Process code in the partner profile, this is associated with a FM(or work flow task etc) which has the business logic coded in.
    So in case of an Inbound IDOC, the sending system updates the IDOC - Control and Data records, and sends it to the receiving system. On the receiving system the IDOC's control record is validated against the partner profiles set, if an entry is found then using the process code it finds the associated FM which will decode the data from the IDOC data records as per the IDOC type and then use it to post data into SAP (VIA BDC, Batch Input, BAPI etc).
    And all this while the Status records are being updated accordingly.
    So with the above context will try to answer your questions,
    1 - My question is do I have to manually create all these segment and do a mapping to my application field one by one (i.e. that is when I want to create a brand new message type from scratch)?
    In case of a custom IDOC, yes you will have  to.
    In case of a standard IDOC, you wouldn't have you just have set up the necessary configuration (Partner Profile, Process code etc)
    In case of a standard IDOC extended to accommodate for some custom values(for which there are no fields in standard IDOC - Let us say you have added some new fields on VA01) - In this case you can still use the standard Process code and Standard FM associated with it, SAP provides several Function exits in these FM's which you can leverage to add your custom logic.
    2 - If question no. 1 is Yes, how to do it, what are the transaction code to create it? can you show me the step by step.
    There are several documents available on the net and on SDN detailing step by step approach for all the above three cases,
    just search for step by step guide for IDOCS - sap.
    3 - I don't have to create the Control record and the status record for my new message type right ? because those field value will automatically pull out from partner profile and system status message, am I correct?
    Again it depends, in case of using a standard IDOC you wouldn't have to. But in case you have some customizations/enhancements then you might have to.
    For Ex: updating the control record accordingly for indicating that you have extended the standard IDOC. Or append custom messages to the status record as per the business logic.
    Try out the examples you find on the net and post any specific questions you might have.

  • IDOC - Data record

    Would some one explain me in what situation we will be having more than one Data Records in an IDOC? I am looking for a specific example if possible.
    Also, when we send PO to our Suppliers, if there are more than One PO for that supplier, whether I can send all of them in one IDOC?
    Please help me.

    Hi Mohan,
    There can be more then one DATA record if you send multiple line items or multiple objects.
    For example if you send multiple delivery items or sales order items then few data segments will be multiple.
    It basically depends on what you are sending.
    The control records will always be 1. WHich indicates who is the sender, the reciever, the idoc number and control related information.
    Data records will be one or more then one depending on what you are sending if you r sending multiple PO's for a single vendor or if u r sending multiple Deliveries for one acknowledgemtn then you will have multiple data records.
    There will also be more then one Status records. The IDOC passes through different stages or different milestone and each milestone will have a specific status indicator. So the status records can be more then one.
    Hope this helps

  • How to see data records of idoc?

    Can anybody tell me how can i see the data records of idoc..
    i think its stored in EDID4 table..but i am not able to see the sdata field

    hi Gaurav,
    Just follow the steps:-
    1.Go To Transaction WE05.
    2.Click on execute.
    3.This will open Inbound/Outbound list of IDoc
    4.Just select any Idoc and double click on it.
    5.This will open Idocs three segement namely status,data and Control
    6.Double click on Data Segment and u will see the data in it.
    Ashwin M
    [Reward for the Helpful answers].

Maybe you are looking for