Access IDOC Number

Hi,
I am using the .NET connector's SubmitIdoc method to post an IDOC to SAP server.  I see the following in the RFC_Trace after posting the IDOC.
FUNCTION IDOC_INBOUND_ASYNCHRONOUS
        handle = 2
        tables[0].name    = IDOC_CONTROL_REC_40
        tables[0].nlen    = 19
        tables[0].leng    = 524
        tables[0].type    = 00000021
        tables[0].newitab = 0
        tables[0].itmode  = RFC_ITMODE_BYREFERENCE
        ItFill(tables[0].ithandle)  = 24
        ItLeng(tables[0].ithandle)  = 524
        tables[1].name    = IDOC_DATA_REC_40
        tables[1].nlen    = 16
        tables[1].leng    = 1063
        tables[1].type    = 00000022
        tables[1].newitab = 0
        tables[1].itmode  = RFC_ITMODE_BYREFERENCE
        ItFill(tables[1].ithandle)  = 48
        ItLeng(tables[1].ithandle)  = 1063
I would like to access the IDOC number that was assigned to this posting.  How do I get that?  I do not see a method within the .NET connector to get this.
Thanks and appreciate your help
Guru

Hi,
Take a look at IDOC_INBOUND_SYNCHRONOUS and the replies to Performance BAPI vs. IDoc for further details.
Hope it helps.
Regards

Similar Messages

  • IDOC number is not in the list

    Hi,
    I am creating an inbound delivery using IDOC. The message type is DESADV and basic type is DELVRY01. After I have populated the control and data tables, I processed them using IDOC_WRITE_AND_START_INBOUND. I have generated the IDOC number after executing the program. The problem is, when I go to WE02, the idoc number is not the list. I am not sure if the IDOC I generated is successful or not. Does it have something to do with the FM that I used. I set a custom process code that will call the FM IDOC_INPUT_DESADV1. Please advise. Thanks in advance.
    Lalyn

    Hi Arun,
    Thanks for the reply. But the IDOC number is not in the list and I can't access it WE19. Do you have any other Function module that I can use to process the IDOC in ABAP? The Function module should be the one to call the FM IDOC_INPUT_DESADV1 to create an inbound delivery. That's what I think causes the error. Thanks.
    Lalyn

  • IDoc to File - IDoc number : Variable substitution in File Adapter

    Hi,
    I have an IDoc to File scenario. I want to use the IDoc Number as part of the target filename (using variable substitution) in the File Adapter. However, the target flat file does not have a field where I can store the IDOC number. I know the IDoc number is also stored in the message header ( under the IdocInbound tab), but is there any way I can access this in the variable substitution?
    Failing this, if I have the Idoc number in the target XML, is there any way I can skip it in the flat file generated?
    example...
    XML looks like this...
    <Root>
    <Record>
       <IdocNum>99999</IdocNum>
       <HeaderRecord>
       </HeaderRecord>
       <LineRecord>
       </LineRecord>
       <LineRecord>
       </LineRecord>
    </Record>
    </Root>
    But the flat file should be..
    HeaderRecord...
    LineRecord...
    LineRecord...
    Cheers
    Manish

    Hi Chandra,
    Thanks for this
    But this is standard stuff that is detailed in SAP help files (http://help.sap.com/saphelp_nw04/helpdata/en/bc/bb79d6061007419a081e58cbeaaf28/frameset.htm)
    What I was looking for was in Sravya's blog (refer the earlier entry).
    Thanks anyway
    Cheers
    Manish

  • Get IDoc-number from flat IDoc using dynamic configuration

    Dear experts
    In an IDoc2File scenario I have added the IDoc-number to dynamic configuration using the folling code in an UDF:
    DynamicConfiguration conf = (DynamicConfiguration)
    container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
    DynamicConfigurationKey FileName = DynamicConfigurationKey.create("http:/"+"/sap.com/xi/XI/System/File","DOCNUM");
    conf.put(FileName, a);
    The information is stored in the SOAP message
    <SAP:DynamicConfiguration SOAP:mustUnderstand="1">
      <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="DOCNUM">0000000000012345</SAP:Record>
    </SAP:DynamicConfiguration>
    Can anybody tell me how I can access this information in the "variable substitution" section of the CC? Perhaps something like "message:docnum"?
    Additional information:
    Taking the IDoc-number from the payload using e.g. "payload:ORDERS05,1,IDOC,1,EDI_DC40,1,DOCNUM,1" does not work, since the XML-IDoc has been converted to an flat-IDoc.
    Thanks in advance for any good ideas
    Markus

    Dear Rodrigo and Sarvesh
    Thanks for your help so far! I applied your hints and now it is working fine.
    But now I have the following additional questions
    1.) My message mapping only maps the input IDoc to an output IDoc of the same type and structure. The MM is only required to process the UDF. Is there another, better solution to achieve my requirement that the IDoc-number shall be part of the filename?
    2.) In the CC you have the possibility to use temporary files (section "Processing", Option "Put File" = "Use Temporary File". I think this will not work with the given solution, will it?
    To possibly help somebody else or clarify the mechanism once again, I wrote down how my solution now looks like.
    My UDF in the message-mapping looks like this
    - Input = DOCNUM of IDoc, e.g. ORDERS05/IDOC/EDIDC/DOCNUM
    - Outpt = DOCNUM of IDoc, e.g. ORDERS05/IDOC/EDIDC/DOCNUM
    - UDF:
    public String putDynamicConfiguration(String docnum, Container container) throws StreamTransformationException{
    try
         DynamicConfiguration conf = (DynamicConfiguration) container.getTransformationParameters().get(StreamTransformationConstants.DYNAMIC_CONFIGURATION);
         DynamicConfigurationKey key = DynamicConfigurationKey.create("http://sap.com/xi/XI/System/File","FileName");
         String filename = "Prefix_" + docnum + ".txt";
         conf.put(key, filename);
         return docnum;
    catch (Exception e)
         return docnum;
    In the CC the settings are now as follows
    File Name Scheme = . -> only a dot or something else, because this field is obligatory, even if it is not used in this case.
    Variable substitution (...)
        Enable -> unchecked
    Adapter-Specific Message Attributes
        Use Adapter-Specific Message Attributes -> checked
        Fail If Adapter-Specific Message Attributes Missing -> checked
        File Name -> checked
        Directory, File Type, Temporary Name Scheme for Target File Name -> unchecked
    When I send an IDoc to PI and view the Adapte-Engine Version of the message (the SOAP-document, not the payload) I can find the Filename:
    <SAP:DynamicConfiguration SOAP:mustUnderstand="1">
    <SAP:Record namespace="http://sap.com/xi/XI/System/File" name="FileName">Prefix_0000000000012345.txt</SAP:Record>
    </SAP:DynamicConfiguration>

  • Display archived IDOCs in transaction WE10 - click on IDOC number

    Hi experts,
    If you run transaction WE10 and display IDOCs not archived (from the database), from the list of IDOCs you can click on the IDOC number and then go to the screen that displays the IDOC information (Control, Data and Status records).
    However, if you run WE10 with archived IDOCs (Data Source is archive), you get to see the list of IDOCs but when you click on the IDOC number it doesn't go to another screen showing you the IDOC information but it stays on the same screen.
    Is this expected behaviour? I have had a looked at the OSS and Internet Search and there is no reference to this behaviour.
    Many thanks for your help in advanced.

    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?
    Regards,
    Fawaaz

  • GR IDOC Number

    Hi All,
    How to get IDOC number for particular GR in SRM. I mean any table in SRM Maintained GR number and IDOC number.
    Thanks
    Raghu

    Hi Raghu,
    By GR you mean Goods Receipt.There is no Idoc for this process.SRM uses XML format for Confirmation which is equivalent to Goods confirmation process in ERP system.
    If you are in position to tell what is your exact requirement with table in SRM system,i should be in position to help.
    There is a transaction called BBP_PD using which you can get the required table.
    Just go to this transaction in SRM EASY Access Menu.
    Select Object Type as (Take F4 Help here)
    for confirmation ,object type = BUS2203.
    You will get an interactive list and you can browse the list and in the last node ,you will get some table names which may be helpful.
    regards,nishant
    please give points if this helps

  • How to obtain the IDOC number after creation

    Hello everyone,
    for our master data distribution via report RHALEINI (triggered via a custom report), we have some additional code in BAdI HRALE00OUTBOUND_IDOC, method IDOC_DATA_FOR_RECEIVER_MODIFY.
    Everything is working fine so far. Now I need to know the Idoc number after it was created to store it in a customer table together with some additional data. Since the Idoc was not yet created when we're in the method mentioned above, I have to put my coding somewhere else.
    Any that's exactly my question: Were could I put my coding? It needs to be executed after MASTER_DATA_DISTRIBUTE since this function creates the idoc in the database.
    I though about the following:
    - Since RHALEINI is called by a custom report, I might be able to read the idoc number from memory id COMM_HRMD_A (see RHALEINI, line 418).
    - Maybe BAdI IDOC_DATA_INSERT could be used for this purpose?
    What would be your approach for this?
    Thank you in advance.

    Hello Markus,
    EXPORT comm_control TO MEMORY ID 'COMM_HRMD_A'.
    This is a nice observation!
    Since RHALEINI is called by a custom report, I might be able to read the idoc number from memory id COMM_HRMD_A
    Are you SUBMIT'ting the report RHALEINI in the custom program? If yes, you can access the memory COMM_HRMD_A in your program. To verify this you can check in debug mode if the memory id is populated.
    I've checked the report RHALEINI & the internal table comm_control should contain the idoc number!
    Maybe BAdI IDOC_DATA_INSERT could be used for this purpose
    Only if the previous approach doesn't work out. Remember [K.I.S.S|http://en.wikipedia.org/wiki/KISS_principle]
    BR,
    Suhas

  • Message with IDOC number, created by LSMW, missing in job log in SM37

    Hi gurus,
    We have a temporary interface which uses LSMW to create IDOCs and update in SAP. It's used for materials, BOMs and document info records. In LSMW we have defined standard message types MATMAS_BAPI, BOMMAT and DOCUMENT_LOAD for the IDOCs. All these have the same problem.
    A background job runs and starts LSMW. In the job log in SM37 I want to see which IDOCs were created. For some reason this is different in my development system and my test system, and as far as I know all settings should be the same. In the test system LSMW creates more message lines in the job log, than it does in the dev system. Message number E0-097 is "IDOC XXXX added", and this is missing in the dev system.
    This is what it looks like in the dev system:
    Data transfer started for object 'MATMAS' (project 'X', subobject 'Y')             /SAPDMC/LSMW   501    I
    Import program executed successfully                                                             /SAPDMC/LSMW   509    I
    File 'XXX.lsmw.read' exists                                                                               /SAPDMC/LSMW   502    I
    Conversion program executed successfully                                                    /SAPDMC/LSMW   513    I
    Data transfer terminated for object 'MATMAS' (project 'X', subproject 'Y')       /SAPDMC/LSMW  516    I
    And this is what it looks like in the test system. More information, which is exactly what I want in dev system too:
    Data transfer started for object 'MATMAS' (project 'X', subobject 'Y')             /SAPDMC/LSMW   501    I
    Import program executed successfully                                                             /SAPDMC/LSMW  509    I
    File 'XXX.lsmw.read' exists                                                                               /SAPDMC/LSMW  502    I
    Conversion program executed successfully                                                    /SAPDMC/LSMW  513    I
    File 'XXX.lsmw.conv' exists                                                                              /SAPDMC/LSMW   502   I
    IDoc '0000000002489289' added                                                                      E0                         097   S
    File 'XXX.lsmw.conv' transferred for IDoc generation                                      /SAPDMC/LSMW   812   I
    Data transfer terminated for object 'MATMAS' (project 'X', subproject 'Y')      /SAPDMC/LSMW   516   I
    In both cases the IDOC is created and update works fine.
    My only issue is that I can't see the IDOC number in the dev system. I know I can get the IDOC number in WE02, but in this case we have program logic which reads the job log to be able to check IDOC status before sending OK message back to the other side of the interface.
    I hope any of you can have an idea how I can update somewhere to get message E0-097 with IDOC number into the log.
    Regards,
    Lisbeth

    Hi Arun,
    If you want to show your messages in the job log you have to use the MESSAGE statement. In case you use WRITE statements an output list be created which can be found in the spool (there is an icon to go to the spool directly).
    Regards,
    John.

  • Finding out Idoc number of the Invoice List

    Hi!
    how to find out Idoc numberr if I have number of Invoice List?
    For example, I have number of Invoice List for checking it in tcode VF22, but how to get Idoc number of the Invoice List in order to check it in WE02?
    Will reward,
    Mindaugas

    Hi,
         Use NAST with the invoice to get the latest record for that output type..
    use the table CMFP to get the IDOC number..The combination is
    NAST-CMFPNR = CMFP-NR..
    Then in the column CMFP-MSGV1 you can find the idoc number
    <b>Reward points</b>
    Regards

  • Standard Report with IDOC Number and PR number

    Hi
    My client need the Standard report with the combination fields of "  Purchasing Number , Requirements tracking number in PR,
    IDOC number , IDOC Processing status. "
    (Our PR will generates through IDOC from other system via XI interface)

    Hi Nagendra,
    for   Purchasing Number , Requirements tracking number in PR you can use -ME5A
    Purchasing Number-EBAN-BANFN
    Tracking number goto- MELB.
    table name-EKPO
    for  IDOC number , IDOC Processing status -we09
    For IDOC number -EDID4-DOCNUM
    IDOC Processing status-EDIDC-STATUS
    Regards,
    Krishna.
    Edited by: kris_hna on Sep 8, 2011 1:14 PM
    Edited by: kris_hna on Sep 8, 2011 1:19 PM

  • How can we find the Idoc number which posts the material document in SAP

    Hi All,
    How can we find the Idoc number which posts the material document in SAP. We could not able to find the IDOC number from the material document which was posted by Idoc.
    Thanks
    Chandru

    Hi,
    In MIGO you can go to service of object(Just above show overview) and check 5th option workflow you will find the idoc number.
    regards
    suresh

  • Error - ATTRIBUTE_IDOC_METADATA - EDI: Error while assigning IDoc number

    Hi,
    I'm attempting to create a simple interface which converts cutomer data from a flat file and loads it into a SAP enterprise system as an DEBMAS06 IDoc type. I am getting the error message Error - ATTRIBUTE_IDOC_METADATA - EDI: Error while assigning IDoc number in the XI message monitor.
    Has anyone come accross this error before and if so, what is the resolution???
    Thanks, in advance,
    Pete

    Hi Peter,
    did you fixed it?
    How did you?
    got the same problem
    Kind regards,
    Michael

  • Error: EDI: Error while assigning IDoc number

    Hi Everybody,
    using XI 3.0 on Linux 64 bit SLES9 with Oracle I got some probleme sending messages from mq series to sap:
    <?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
    - <!-- Call Adapter
    -->
    - <SAP:Error xmlns:SAP="http://sap.com/xi/XI/Message/30"
    xmlns:SOAP="http://schemas.xmlsoap.org/soap/envelope/"
    SOAP:mustUnderstand="">
    <SAP:Category>XIAdapter</SAP:Category>
    <SAP:Code area="IDOC_ADAPTER">ATTRIBUTE_IDOC_METADATA</SAP:Code>
    <SAP:P1>EDI: Error while assigning IDoc number</SAP:P1>
    <SAP:P2 />
    <SAP:P3 />
    <SAP:P4 />
    <SAP:AdditionalText />
    <SAP:ApplicationFaultMessage namespace="" />
    <SAP:Stack>Error: EDI: Error while assigning IDoc number</SAP:Stack>
    <SAP:Retry>M</SAP:Retry>
    </SAP:Error>
    What is missing here?
    Kind regards,
    Michael

    Hi Jayakrishnan,
    thanks a lot for your answer.
    SM59 is working finde. In IDX1 I got the the correct RFC destination entered and a double click works fine also.
    The other way around R3 -> XI -> mq series is working fine. Here we are trying mq -> XI -> R3 and it stops sending from XI to R/3.
    How to check the IDOC type?
    Regards,
    Michael

  • Finding message in SAP Business Connector with IDoc number

    Hi Experts,
    Since there is no separate forum for Business Connector, posing my question here.
    Does anyone have idea how we can find a message in SAP Business Connector if we know the source IDoc number, the same way we use IDX5 in PI.
    Thanks,
    Dhawal

    AFAIK there is no simple way.  What I usually do is compare timestamps. The Idoc is usually processed on the B.C. within the same minute.
    We only have up to 10 Idocs within one minute and I do not have to search every day. So it works for me.

  • Retrieve idoc number from r/3

    Hi Experts.
    I have an interesting issue..i am sending an idoc to r/3..asynchronously from bpm..Is it possible to get the idoc number of the idoc from the r/3 system for the same idoc that i had sent.....no the docnum is not what i am looking for, dont want to create another scenario where i retrieve it using rfc..etc...
    just want the idoc number back so i can append it to the soap response..and hence wash my hands off the situation...
    Venkat

    Venkat,
    Just check this doc,if it helps https://www.sdn.sap.com/irj/servlet/prt/portal/prtroot/docs/library/uuid/f6d2d790-0201-0010-9382-b50b499b3fbe

Maybe you are looking for