Updating IDoc Status through PI

Hello Experts,
We are sending an IDoc to a third party system through PI 7.1. From there we are planning that they will send a acknowledgement. It will contain the Idoc number and its status (whether it got processed at their end or not).
The requirement is that according to the status we have to update the IDoc status in R/3 system through PI 7.1.
Kindly elaborate on how to do this? Are there some scenarios done like this?
Thanks in advance,
Suraj Sawarkar

Hi Suraj,
Check this: call the RFC 'WDLD_EDI_STATUS_SET'. Pass it the Idoc number(s) and status.
Another alternative is given here
http://sap.ittoolbox.com/groups/technical-functional/sap-dev/post-idoc-status-record-using-an-rfc-2539010
Regards
Suraj

Similar Messages

  • How to check idoc status through code

    Hi All,
    Can we check idoc status from within the code? My requirement is that once the idoc is transmitted correctly(status 12) to the system (outbound),I need to update a few fields in my custom table.
    Please share some information if available on this.
    Thanks and Regards,
    Ameya Kulkarni

    Hi
    The table EDIDC will contain the necessary information.  Please check.

  • Hii Inbound idoc status

    Hii
    i have a requirement where when an Zidoc is being process if a certain condition is met we should insert in a custom table and not process the IDOC
    What status should i put the IDOC in a sort of stand by process so that the user can process it later on with either BD87 or a FM IDOC_INPUT??
    I have try putting in a sort of warning message but neither BD87 or the FM can process idoc with status 52
    i have put it status 64 but client won't accept it since he recognise idoc comming from external system as 64.

    Hi,
    use my form for finishing IDOC processing from the time I did not uses OO...
    *&      Form  append_idoc_status
    *       Create IDOC status record from system message fields
    *       This is always the last action for processing one single
    *       IDOC
    FORM append_idoc_status
      USING    ps_edidc        TYPE edidc
      CHANGING pt_idoc_status  TYPE ty_t_bdidocstat.
      DATA:
        ls_bdidocstat TYPE bdidocstat.
    * this Routine must be called only once per IDOC
      MOVE-CORRESPONDING ps_edidc TO ls_bdidocstat.
    * transfer message data
      ls_bdidocstat-msgty    = sy-msgty.
      ls_bdidocstat-msgid    = sy-msgid.
      ls_bdidocstat-msgno    = sy-msgno.
      ls_bdidocstat-msgv1    = sy-msgv1.
      ls_bdidocstat-msgv2    = sy-msgv2.
      ls_bdidocstat-msgv3    = sy-msgv3.
      ls_bdidocstat-msgv4    = sy-msgv4.
      ls_bdidocstat-repid    = sy-repid.
    * update IDOC status
      CASE ls_bdidocstat-msgty.
        WHEN 'S' OR 'I'.
          ls_bdidocstat-status = c_idoc_posted_ok.
        WHEN 'W'.
          ls_bdidocstat-status = c_idoc_not_fully_posted.
        WHEN 'E' OR 'A'.
          ls_bdidocstat-status = c_idoc_not_posted .
      ENDCASE." ls_bdidocstat-msgty.
      APPEND ls_bdidocstat TO pt_idoc_status.
    ENDFORM.                    " append_idoc_status
    A precondition is that your processing issues a MESSAGE ... INTO lv_dummy with lv_dummy of TYPE STRING.
    Regards,
    Clemens

  • Error while updating the status record of IDOC in SAP

    Hi All,
    I am facing this problem. I have done outbound processing and IDOC was sent successfully from SAP to EDI system and it was processed in EDI and now EDI system wants to send the status back to SAP with a status message and the status number that we are using is '24' and we have mapped all the fields in the status table EDIDS and made sure that EDI system sends all those and I think Counter field can not be determined by EDI system so EDI system used the counter '1' since it can not determine how many counters are already there in SAP and unless we pass the value to this counter field we were getting the error. After passing all the values the status of the IDOC is updated with the status '00' instead of '24' and we do not know why it is happened and I would like to know how SAP converts the status record that is received from the EDI system.
    Please let me know how the status record will be translated into SAP from EDI system and I ahve followed basically EDIDS structure and the IDOC status is updating in SAP but with wrong status number and the alignemnt also missing in SAP fields like if I give some text in the EDI it is splitting and storing in 2 fields.
    Please help me in this and I think I have explained the problem in a detail manner.
    Thanks,
    Ramesh.

    Hi Naresh,
    Thanks for the reply and my question is since EDI system is able to send the status back to SAP from EDI system and only problem is it is updatinf the status wrong and I have checked the EDIDS table also and the entry is creating with another counter and please confirm me that it is because of EDI does not support the status record update so that I can confirm to the client that there is nothing wrong in the way SAP functions and EDI system can not update the status code in the SAP.
    Thanks,
    Ramesh.

  • How to update the Sent Idoc Status based on the Response From Webservice

    Hi All,
    I have to develop Idoc--SOAP Sync Process Scenario Using BPM .
    I have configured every thing using BPM and mapped
    MATMAS----SOAP Request
    SOAP Resp----STATUS.SYSTAT01
    In R/3  the Main Idoc Number(MATMAS) Status needs to be update , but it is creating the new Idoc with STATUS.SYSTAT01.
    I have used STATUS.SYSTAT01 Idoc to Update the status of the Original idoc based on the Response that is coming from webservice .
    I was posted the same thread a days ago and there Bhavesh suggested me some sugessions.
    How can we make the status of the Idoc based on some response Text
    iam unable to follow OR not able to clear my self on this.
    Please suggest me or give some over view kind of thing on this
    Regards

    Hi Suman,
    It is clearly mentioned in SAP help that "SAP Intermediate Documents (IDOCS) are EDI like documents that are asynchronous in nature."
    So Your Scenario is Asynch(receive) - Synch(WS call) -Transformation (Multimapping)- Asynch(Send to R/3).
    now go in this way:
    you can develop all the message Interfaces  of  Abstract catagory (not manditory )
    MI_AA_MATMAS   -> Abstract Asynchronous message    interface for your Matmas IDOC
    MI_AS_SOAP_ReqandResp  -> Abstarct Syncronous MI for SOAP request and response.
    MI_AA_STATUS ->Abstract Asyncronous MI for Status Idoc
    MI_AA_SOAP_Req ->  Abstarct Asyncronous MI for SOAP request .
    MI_AA_SOAP_Res ->  Abstarct Asyncronous MI for SOAP response .
    Thats all in Message interface.
    your first reciever :
    (This will receive the message asynchronously from R/3)
    create a conatainer varaiable (say preceive) and assign it message interface MI_AA_MATMAS
    Now in thw Propert TAB of this step: give this message name.
    Step2: Synchronous call :
    create container Variable psoaprequest and psoapresponse  give abstract message interface MI_AA_SOAP_Req and MI_AA_SOAP_Req  resp.
    Now in thw Propert TAB of this step:
    Synchronous Interface : MI_AS_SOAP_ReqandResp
    Request Message : psoaprequest
    Response Message: psoapresponse
    Transformation Step :
    Here you will specify Interface Mapping that will conatain Multimapping between Synch Response - MATMAs and STATUS
    Let's name it as IM_ResandMatmasToStatus
    create a container variable as pstatus and assign it abstract interface MI_AA_STATUS.
    In Property pan of this step :
    Interface mapping :IM_ResandMatmasToStatus
    Source Message :psoapresponse
                                preceive
    (IT will ask you for two source messages as IM selected in this transformation has 2 source messages)
    Target Message :pstatus
    Send step:
    Select a message as pstatus.
    thats all in IR.
    If have doubt in ID just let me know.
    Thanks
    Sunil Singh

  • Any FM/methods to update idoc segments without changing idoc status

    Hi All,
    My requirement is a reprocessor program which fills up some fields in the idoc segment before posting. So, after updating the segments, the idoc status should remain as before.
    Is there any function modules or methods to update idoc fields in segments without changing the idoc status?
    I have tried the FMs EDI_DOCUMENT_OPEN_FOR_EDIT, EDI_CHANGE_DATA_SEGMENT and EDI_DOCUMENT_CLOSE_EDIT, but it changes the idoc status.
    Thanks,
    Arun Mohan

    As for FM to do this, i don't know if there are any, but i think you can go directly to the tables with the IDOC data and change them without triggering the changes in status like FM do. Still, i am not sure this is completely true, but you could give it a try. Also, i don't know if this is the best way to do it, because of those legal/audit questions mentioned by Thomas.
    Here is a sample code of a program we have to change a field in a segment of WPUUMS.
    *& Report  YRE00021INTPG
    REPORT  yre00021reppg.
    TABLES: edid4 ,
            edidc ,
            mean .
    * Variaveis Auxiliares
    DATA: t_edidc TYPE edidc OCCURS 0 WITH HEADER LINE.
    DATA: t_edid4 LIKE edid4 OCCURS 0 WITH HEADER LINE .
    DATA: BEGIN OF t_docs OCCURS 0,
            docnum LIKE edidc-docnum ,
          END OF t_docs.
    DATA: wa_e1wpu02 LIKE e1wpu02 .
    DATA: wa_e1wpu03 LIKE e1wpu03 .
    DATA: t_itedidd LIKE edi_dd40 OCCURS 0 WITH HEADER LINE ,
          t_itedidc LIKE edi_dc40 OCCURS 0 WITH HEADER LINE ,
          fw_itedidc LIKE edi_dc40 ,
          fw_itedidd LIKE edi_dc40 .
    DATA: l_matnr TYPE mara-matnr,
          l_tam TYPE i.
    DATA: l_idoc_number TYPE edidc-docnum.
    * Ecran de selecção
    SELECTION-SCREEN : BEGIN OF BLOCK b1 WITH FRAME TITLE text-001.
    SELECT-OPTIONS: s_docnum FOR  edid4-docnum ,
                    s_credat FOR  edidc-credat DEFAULT sy-datum ,
                    s_cretim FOR  edidc-cretim .
    PARAMETER:      p_mestyp LIKE edidc-mestyp DEFAULT 'WPUUMS' ,
                    p_status LIKE edidc-status DEFAULT '51' .
    *SELECTION-SCREEN SKIP.
    *PARAMETER:      p_ean11 TYPE mean-ean11.
    SELECTION-SCREEN : END OF BLOCK b1.
    AT SELECTION-SCREEN.
      IF p_status <> '51'.
        MESSAGE e001(yre) WITH 'Apenas pode modificar IDOCS com erro'.
      ENDIF.
      IF p_mestyp <> 'WPUUMS'.
        MESSAGE e001(yre) WITH 'Apenas pode lançar WPUUMS'.
      ENDIF.
    *AT SELECTION-SCREEN ON p_ean11.
    *  SELECT SINGLE * FROM mean WHERE
    *    ean11 = p_ean11.
    *  IF sy-subrc <> 0.
    *    MESSAGE e001(yre) WITH 'Ean não existente'.
    *  ENDIF.
    START-OF-SELECTION.
      SELECT docnum INTO TABLE t_docs FROM edidc
                         WHERE status =  p_status
                         AND   mestyp =  p_mestyp
                         AND   docnum IN s_docnum
                         AND   credat IN s_credat
                         AND   cretim IN s_cretim .
      CHECK sy-subrc = 0 .
      LOOP AT t_docs.
        CLEAR : wa_e1wpu02.
        SELECT * FROM edidc INTO TABLE t_edidc
          WHERE docnum = t_docs-docnum.
        CHECK sy-subrc = 0.
        SELECT * FROM edid4 INTO TABLE t_edid4
                      WHERE docnum = t_docs-docnum AND
                            segnam = 'E1WPU02'.
        CHECK sy-subrc = 0.
        SORT t_edid4 BY segnum.
        LOOP AT t_edid4 .
          wa_e1wpu02 = t_edid4-sdata.
          WRITE wa_e1wpu02-artnr TO l_matnr NO-ZERO.
          CONDENSE l_matnr.
    *      l_tam = STRLEN( l_matnr ).
    *      IF l_tam <= 6.
            SELECT SINGLE ean11 INTO wa_e1wpu02-artnr FROM ytre00004 WHERE
              codcurto = l_matnr.
            IF sy-subrc = 0.
              WRITE : /1 'Código ', l_matnr, ' alterado para ', wa_e1wpu02-artnr.
            ELSE.
              WRITE : /1 'Código ', l_matnr, ' não encontrado na tabela de conversão'.
              CONTINUE.
            ENDIF.
    *        CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT'
    *          EXPORTING
    *            input  = p_ean11
    *          IMPORTING
    *            output = wa_e1wpu02-artnr.
    *      ENDIF.
          UPDATE edid4 SET   sdata   = wa_e1wpu02
                       WHERE docnum  = t_edid4-docnum
                       AND   counter = t_edid4-counter
                       AND   segnum  = t_edid4-segnum .
          IF sy-subrc <> 0 .
            ROLLBACK WORK .
            WRITE: / t_edid4-docnum .
          ELSE.
            COMMIT WORK.
          ENDIF.
        ENDLOOP.
      ENDLOOP.
    END-OF-SELECTION.

  • IDoc Status update configuration

    I need to utilize the status update process for inbound/outbound IDocs.  My EDI translator sends a status IDoc (EDIDS) that has the IDoc number and the status (nothing more).  Out EDI services are managed externaly so their only role is to place IDocs onto my SAP server.  In other words they do not use call startrfc.
    How can I implement the process of updating the status of an IDoc to indicate if there is a failure in subsytem translation, or positive acknowledgement, and so on???

    Hi Amtnbiker,
    I think your question is more BC related.
    Could you please send new thread in Basis middleware forum?
    Thanks and best regards,
    Smile

  • How to update the status of Outbound IDOC in case of error

    I want to know about how to update the status of Outbound IDOC in case of error.
    I am using message control functionality here.

    HI,
    If u r using the standard message and basic type
    u can do it in the FM attached to the basic and message type.There u need to write ur own message instead of standard SAP message..chek if there r any userexits available in the FM..where u can overwrite ur own message ..
    If u r using the Zmessage and Zbasic type
    then u need to declare an internal table of EDIDS structure and then append ur message to the internal table..
    idoc_status-docnum   = idoc_contrl-docnum.
      idoc_status-msgty    = <message type>
      idoc_status-msgid    = message-id.
      idoc_status-msgno    = message-number.
      idoc_status-msgv1    = message-message_v1.
      idoc_status-repid    = sy-repid.
      idoc_status-status   = <give the error status>.
      APPEND idoc_status.
    Reward if u find useful
    Regards,
    Nagaraj

  • Idoc to update picking status messages

    We have an interface from wms to sap which updates the picking status messages. Can anyone let me know what would be the idoc type to update picking status messages or do the status messages get updated automatically as soon as the actual picking quantity is updated?

    Picking status is updated when the picking quantity is updated.

  • Incoming IDOC - Status Update

    Hi All,
    We are creating Sales Order(Va01) based on Inbound IDOC for Scheduling Agreeemnt(VA31) using BAPI 'BAPI_SALESORDER_CREATEFROMDAT2'
    As per logic sales order is getting created in system with updation in database table but the IDOC status is showing '51' instead of '53'.
    Please suggest solution.
    Regards,
    Ulhas

    Easy - debug the process code and determine the condition that is setting the control record status value to '51'.

  • Steps For Updating the IDOC Status using ALEAUD

    Hi all,
    My Scenario  is : R/3(IDOC)--> Legacy System(File).After the IDOC is received successfully on the Receiver System.I should Update the Status of IDOC on the Sender System.
    Can anyone help me out :
    What all the Steps & Configurations involved for Sending an Acknowledgement & Updating the IDOC status  from the Legacy System.
    Thanks in Advance,
    Dattatreya.

    Hi,
      You may need to set up another flow (a reverse one), where the Legacy sends a msg to XI with the Idoc number of the initial idoc you sent (onward flow).
      now, you can map the idoc number in E1ADHDR/E1STATE/DOCNUM and other statuses as required (in various tags) and also other information as per your environment. Pls see the below links
    Re: Acknowledgements ever switch to Status 39
    Re: Asyncronous acknowledge from file adapter
    Re: R3<->XI<->Auto-ID:How to check result of Idocs sending out from R3 in aii ?
    Regards
    Vishnu

  • IDoc status 53 in employee replication from SAP HR

    Hi experts,
    We are having some problems in CRM BP creation with role employee.
    We are using CRM 5.0 and SAP ECC 6.0 and we are trying to replicate employee’s information to CRM from HR.
    After read the notes 934372, 615896, 550055, 363187, 312090 we made the next configuration steps in our systems:
    R/3:
    - Creation of connection port (trans. WE21)
    - Creation of logical system (trans. WE20) and assignment of outbound message HRMD_ABA
    - Creation of distribution model (trans. BD64) with all filters indicated in note 312090
    CRM
    - Creation of logical system (trans. WE20) and assignment of inbound message HRMD_ABA
    - Creation of conversion between basic types HRMD_A05 and HRMD_ABA01 (trans. WE70) as described in note 312090
    - Creation of conversion between message types HRMD_A and HRMD_ABA (trans. WE73) as described in note 312090
    - Creation of external number range “ZE” from HR01200001 to HR01299999 (using PA04 in R3 we found the number range between 01200001 and 01299999)
    - Creation of BP Grouping with the same name of number range (“ZE”) checked to be external too
    - Update of table T77S0 (using SM30):
    HRALX HRAC X
    HRALX PBPON OFF
    HRALX PBPHR ON
    HRALX PBPON ON
    HRALX PNUMB 3
    HRALX PPROL BUP003
    HRALX PSUBG ZE
    PLOGI PLOGI MV
    We know we should have the same value in R3 and CRM for PLOGI/PLOGI, so we created in CRM MV because that is the plan version used in R3. To create it, we just manually add a new row in table T778P and then selected it in table T77S0. Is this the correct way to create a plan version?
    After these steps, in R3 we execute program RHALEINI with parameters:
    - Plan version = MV
    - Object type = P
    - Object ID = an active employee
    - Reporting period = all
    - Transfer mode = Insert
    - Receiving system:
    Receiving partner No = DCRCLNT300 (logical system created in WE20)
    Message type = HRMD_ABA
    And everything looks fine in R3.
    In CRM, using trans. WE05, we can see that the iDoc is created, apparently without problems with status 53 - "Applicaton document posted" but the business partner is never created.
    Did we miss some configuration steps?
    Should we do something more after see the iDoc in CRM to create BP?
    Thanks in advance.
    Alda

    hi pratk bhai,
    ya i have done the same setting what Ada has mentioned eariler,
    and as of your suggestion to maintatin the mandatory infotype, i have even done tht,
    after running RHALEINI in R3, the status is all green here.
    when i run the tcode BD87  to check the Idoc status its showing fine (Error free).
    now, through tcode se38 the report CRMHRALE_CENTRAL_PERSON shows all the employees as status green,,
    but the partner number is not getting generated. ( i have used HRALX-PNUMB= 3 (Prefeexing the number range coming from R3)).
    kindly advice me what should be done in order to generate a BP number for the replicated HR Employee.
    best regards,
    Madhup

  • Non-updated Idocs found in Source System

    Hi Experts,
    I am getting an error Non-updated Idocs found in Source System
    Plz help me to resolve this issue.

    Hi
    BD87 Update Idocs manually.
    1. When you look in the Monitor screen for the first time on a day you mostly will see some Loads that have yellow traffic lights. When you click on the lowest line of the Load (with the time of Load start) you will get the next popup screen:
    2. Here you can click on the "Yes" button. The Load specification window (right side of the screen) will now be filled with data.
    3. You can now start the manual processing of the IDocs. You go to the "Details" tabpage of the right window. You right click on the line with the red traffic light stating "Request IDoc : IDoc ready to be transferred to application" on the "Details" tab page of the Load. In the option menu that appears choose the option "Update manually in OLTP" (click it).
    4. You will get to the next screen (which is in fact a transaction in the source system (SAP R/3) where you can update the IDoc that is send by the source system)
    5. Now click the "Excecute" button on the left of the screen (or press the F8 button on your keyboard). You will get to the next screen:
    6. This states that the IDoc has been passed through to BW. You return to BW by clicking the "Back" button (or pressing the F3 button on your keyboard) twice. After the first time you will see the previous screen and after that the Monitor screen again.
    7. You will now see that the Status of the Load has turned to yellow or green. When it is yellow you will have to wait a little time (the execution of the Load in BW is still running) and by clicking "Refresh Details" button on the left upper side of the screen (or pressing the F8 button on your keyboard) you will see the Load turn green.
    Hope it helps

  • Why is it when i update my status on facebook from iohone it splits the updates into two differents boxes with some funky symbol. I have uninstall facebook and installed it over and it still does it. only the facebook IPHONE app.

    why is it when i update my status on facebook from iphone it splits the updates into two differents boxes with some funky symbols at the beginning.. I have uninstall facebook and installed it over and it still does it. only the facebook IPHONE app where it says to update staus text to FBOOK  i have already update my phone too.
    if i go on the facebook site and update there through a brower on iphone it will work fine just cant us IPHONE mobile upload,  . But its a pain of not using my IPHONE APP for facebook cause it does that.

    The warranty entitles you to complimentary phone support for the first 90 days of ownership.

  • Is it possible to create a custom IDOC status?

    Is it possible to create a custom idoc status on table TEDS1?
    I have looked through customising and cannot seem to find a way to create a new idoc status.
    Has anybody done this?

    Hello Chester..
    hope this link will be helpful,
    Re: IDOC status
    *********Please reward points ,if found useful

Maybe you are looking for