Inbound idoc posting directly even with 'Trigger by background' option

We have inbound idocs coming into ECC from Siebel via PI. The partner profile is setup for "Trigger by background program' .So that we can run the job RBDAPP01 to sweep these status 64 idocs. But we don't get a chance as the idocs are getting posted directly(its already in status 51 or 53) as if we used the 'Trigger Immediately' option. Where could the problem lie ? Is there a possibility of some RFC call from PI overriding the Partner Profile config ? Any advice or useful tip is welcome!
thanks,
S

Hi,
I guess you can still check in the control record for EDIDC-EXPRSS - Overriding in inbound processing, the documentation of the Data Element EDI_EXPRSS is as below
Short Text
Overriding in inbound processing
General
This field determines for ALE whether a time schedule is to be deactivated for inbound processing and replaced by immediate processing.
Regards,
Chen

Similar Messages

  • Delay in the Inbound Idoc Posting Process

    Dear Friends,
    We have an scenario in the Inbound Idoc Posting Process, when we process the Idocs through the standard Inbound Program - RBDAPP01, we face the delay of 3hrs to 12 hrs, approx.
    When we try to re-process the same through the manual process, we could successfully post the Idocs, immediately.
    When the same happens, through the background job - the delay is happening.
    As we see, there is no problem with the program - RBDAPP01, but can't able to trace the delay in the process.
    Any suggestions / advises are welcome.
    Thanks in advance.

    Hi Prasanna,
    The update will happen only if a value already exists with the same unit of measure in the system. If the quantity is left blank in the system and if you are trying to update, the update might not happen. Even if the value is Zero in the system, provide the same unit of measure as the data used in the BAPI.
    Regards,
    Yogesh

  • Processes in Inbound IDoc posting

    Hi guys,
    I'm new with IDocs, and I have an object which requires Inbound IDoc posting..
    Can you give me the possible steps/processes including the tcodes on how can I solve this object?
    Please also include FMs that I might possibly used during my development.
    I highly appreciate all your swift responses. Thanks!

    Hi Mel,
    You can use FM IDOC_INBOUND_WRITE_TO_DB to create an inbound IDoc.
    CALL FUNCTION 'IDOC_INBOUND_WRITE_TO_DB'
        EXPORTING
          PI_STATUS_MESSAGE       = I_EDIDS
        IMPORTING
          PE_IDOC_NUMBER          = DOCNUM
          PE_STATE_OF_PROCESSING  = STPROC
          PE_INBOUND_PROCESS_DATA = I_TEDE2
        TABLES
          T_DATA_RECORDS          = I_EDIDD
        CHANGING
          PC_CONTROL_RECORD       = I_EDIDC
        EXCEPTIONS
          IDOC_NOT_SAVED          = 1
          OTHERS                  = 2.
    Regards,
    Chandra Sekhar

  • Inbound IDoc Posting Function Module

    Give me an example of   how to write "Inbound IDoc Posting Function Module".
    In my IDOC i have 10 segments each containing 1 field.
    How do i create the Inbound IDoc Posting Function Module ??
    Is the following code correct ??
    FUNCTION ZIDOC_INBOUND.
    ""Local interface:
    *"  IMPORTING
    *"     VALUE(INPUT_METHOD) LIKE  BDWFAP_PAR-INPUTMETHD
    *"     VALUE(MASS_PROCESSING) LIKE  BDWFAP_PAR-MASS_PROC
    *"  EXPORTING
    *"     VALUE(WORKFLOW_RESULT) LIKE  BDWFAP_PAR-RESULT
    *"     VALUE(APPLICATION_VARIABLE) LIKE  BDWFAP_PAR-APPL_VAR
    *"     VALUE(IN_UPDATE_TASK) LIKE  BDWFAP_PAR-UPDATETASK
    *"     VALUE(CALL_TRANSACTION_DONE) LIKE  BDWFAP_PAR-CALLTRANS
    *"  TABLES
    *"      IDOC_CONTRL STRUCTURE  EDIDC
    *"      IDOC_DATA STRUCTURE  EDIDD
    *"      IDOC_STATUS STRUCTURE  BDIDOCSTAT
    *"      RETURN_VARIABLES STRUCTURE  BDWFRETVAR
    *"      SERIALIZATION_INFO STRUCTURE  BDI_SER
    *"  EXCEPTIONS
    *"      WRONG_FUNCTION_CALLED
    *DATABASE TABLES
    TABLES:LIKPUK.
    *DATA DECLARATIONS
        DATA: SALES_ORDER_NUM             LIKE Z1VBELN.
        DATA: DEL_TYPE                    LIKE Z1LFART.
        DATA: ACTUAL_GOODS_MOVEMENT_DATE  LIKE Z1WADAT_IST.
        DATA: SHIPPING_POINT              LIKE Z1VSTEL.
        DATA: LOADING_POINT               LIKE Z1LSTEL.
        DATA: ROUTE_PGI                   LIKE Z1ROUTE.
        DATA: PICK_DATA                   LIKE Z1KODAT.
        DATA: CUST_NO                     LIKE Z1KUNNR.
        DATA: LOCAL_DATE                  LIKE Z1STDAT.
        DATA: TOTAL_GOOD_MOV              LIKE Z1WBSTK.
    *INTERNAL TABLE DECLARATION
    DATA:
    IT_LIKP LIKE LIKPUK OCCURS 0 WITH HEADER LINE.
    INITIALIZE WORK FLOW
        WORK_RESULT = C_WF_RESULT_OK.
         LOOP AT IDOC_CONTRL.
    MAKE SURE WE HAVE CORRECT MESSAGE TYPE PASSED.
         IF IDOC_CONTRL-MESTYP NE 'Z_IDOC_PGI'.
         RAISE WRONG_FUNCTION_CALLED.
         ENDIF.
    CLEAR APPLICATION BUFFERS BEFORE READING NEW ENTRY
        CLEAR :IT_LIKP.
      REFRESH IT_LIKP.
    *PROCESS ALL THE DATA RECORDS IN AN IDOC AND TRANSFER THEM TO
    *APPLICATION BUFFERS
    INCLUDE MBDCONWF.
    LOOP AT IDOC_DATA WHERE DOCNUM EQ idoc_contrl-docnum.
    CASE IDOC_DATA-SEGNAM.
    WHEN'Z1VBELN'.
       SALES_ORDER_NUM  =    IDOC_DATA-SDATA.
       MOVE-CORRESPONDING SALES_ORDER_NUM TO IT_LIKP.
    WHEN 'Z1LFART'.
       DEL_TYPE    = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING DEL_TYPE TO IT_LIKP.
    WHEN 'Z1WADAT_IST'.
       ACTUAL_GOODS_MOVEMENT_DATE    = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING ACTUAL_GOODS_MOVEMENT_DATE TO IT_LIKP.
    WHEN 'Z1VSTEL'.
       SHIPPING_POINT    = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING SHIPPING_POINT TO IT_LIKP.
    WHEN 'Z1LSTEL'.
       LOADING_POINT   = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING LOADING_POINT TO IT_LIKP.
    WHEN 'Z1ROUTE'.
       ROUTE_PGI    = IDOC_DATA-SDATA.
       MOVE-CORRESPONDING ROUTE_PGI TO IT_LIKP.
    WHEN 'Z1KODAT'.
       PICK_DATA =   IDOC_DATA-SDATA.
       MOVE-CORRESPONDING PICK_DATA TO IT_LIKP.
    WHEN'Z1KUNNR'.
       CUST_NO  =   IDOC_DATA-SDATA.
       MOVE-CORRESPONDING CUST_NO TO IT_LIKP.
    WHEN'Z1STDAT'.
       LOCAL_DATE  =   IDOC_DATA-SDATA.
       MOVE-CORRESPONDING LOCAL_DATE TO IT_LIKP.
    WHEN'Z1WBSTK'.
       TOTAL_GOOD_MOV  =   IDOC_DATA-SDATA.
       MOVE-CORRESPONDING TOTAL_GOOD_MOV TO IT_LIKP.
    ENDCASE.
    ENDLOOP.
    selecting data from the database
    select * from likp into corresponding fields of table it_likp.
    add status record
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = it_likp-VBELN.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = it_likp-VBELN.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
    IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-LFART.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-LFART.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
    IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-WADAT_IST.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-WADAT_IST.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-VSTEL.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-VSTEL.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-LSTEL.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-LSTEL.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-ROUTE.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-ROUTE.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-KODAT.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-KODAT.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-KUNNR.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-KUNNR.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = SY-DATLO.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = SY-DATLO.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
        IF SY-SUBRC EQ 0.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '53'.
          IDOC_STATUS-MSGTY = 'I'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '004'.
          IDOC_STATUS-MSGV1 = IT_LIKP-WBSTK.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
        ELSE.
          IDOC_STATUS-DOCNUM = IDOC_CONTRL-DOCNUM.
          IDOC_STATUS-STATUS = '51'.
          IDOC_STATUS-MSGTY = 'E'.
          IDOC_STATUS-MSGID = 'YM'.
          IDOC_STATUS-MSGNO = '005'.
          IDOC_STATUS-MSGV1 = IT_LIKP-WBSTK.
          APPEND IDOC_STATUS.
          CLEAR IDOC_STATUS.
          WORKFLOW_RESULT = C_WF_RESULT_ERROR.
          RETURN_VARIABLES-WF_PARAM = 'Error_Idocs'.
          RETURN_VARIABLES-DOC_NUMBER = IDOC_CONTRL-DOCNUM.
          APPEND RETURN_VARIABLES.
          CLEAR RETURN_VARIABLES.
        ENDIF.
    endloop.
    endfunction.

    Hi,
    First goto WE20-> click on the logical system , now select the receiver LS which you are using as your partner. Now in the inbound parameters cehck what is the process code is attached.
    once you get the process code then go to WE42 tcode.. there you give the process code and then double click you will get the function module IDOC_INPUT_FIDCMT.
    Hopw you got my point.
    Regards,
    Nagaraj

  • Inbound IDOC error :51 Passed with out Message Type to ALE Layer

    Hi,
    I am struct wtih the inbound IDOC scenario ..XI able to send IDOC but at ECC side it is in 51 red status and the error message is
    "IDOC passed without Message type to ALE Layer"
    Do I need to pass these segment values in Message Mapping? I didnt mapped any MESTYP,SNDPOR,SNDPRT and so on.. disabled these fields...
    Could any one light on this issue?
    Thanks
    Rajeev

    >
    rajeev raj wrote:
    > Hi,
    >
    > I am passing values in MM as below:
    >
    > <?xml version="1.0" encoding="UTF-8"?>
    > <ZPORDCR01>
    > <IDOC BEGIN="Constant">
    > <EDI_DC40 SEMENT="Constant">
    > <TABNAM>Constant</TABNAM>
    > <DIRECT>Constant</DIRECT>
    > <IDOCTYP>ZOrders</IDOCTYP>
    > <CIMTYP>Constant</CIMTYP>
    > <MESTYP>Z_Orders</MESTYP>
    > <SNDPOR>B0009</SNDPOR>
    > <SNDPRT>LS</SNDPRT>
    > <SNDPFC>LS</SNDPFC>
    > <SNDPRN>PD_100</SNDPRN>
    > <RCVPOR>DEV</RCVPOR>
    > <RCVPRT>LS</RCVPRT>
    > <RCVPRN>Dev10</RCVPRN>
    > <REFINT>GB</REFINT>
    > <REFGRP>MTI</REFGRP>
    > <REFMES></REFMES>
    > <ARCKEY>20090909</ARCKEY>
    > </EDI_DC40>
    > <E1PORDCR SEGMENT="Constant">
    >
    > I am forwarding these values in MM... IDOC is successfully reaching in ECC but with 51 error in red... Logical system, post and message types are avaliable in Control record of the IDOC which received wiht errors in ECC.
    >
    > Thnaks
    > Rajeev
    Fill the TABNAME as EDI_DC40 and Direct as 2 (represents the inbound direction) and resend the idoc and check
    Rajesh

  • Inbound IDOC Posting

    I am developing a function module in ECC that will be used to post inbound IDOC for customer creation DEBMAS07
    The logic is as follows -
    The function receives an IDOC structure
    It then invokes function module 'IDOC_INPUT_DEBITOR'
    IDOC_INPUT_DEBITOR takes care of creating a new customer in table KNA1. But I was expecting IDOC_INPUT_DEBITOR to also handle the IDOC posting. This way I can go to WE02 and see a new IDOC record. What am I missing? Is there some more code I need to write after the function module call?
    Thank you.
    * IDOC structures for using ALE
         data       lc_no_display         type bdwfap_par-inputmethd value ' '.
         data       lt_idoc_control       type standard table of edidc.
         data       ls_idoc_control       type edidc.
         data       lt_idoc_data          type standard table of edidd.
         data       lt_idoc_data_knvi     type standard table of edidd.
         data       lt_idoc_status        type standard table of bdidocstat.
         data       ls_idoc_status        type bdidocstat.
         data       lt_return_variables   type standard table of bdwfretvar.
         data       lt_serialization_info type standard table of bdi_ser.
         data       lv_workflow_result    type bdwf_param-result.
         data       pi_idoctyp            type edi_iapi00-idoctyp.
         data       pt_segments           type standard table of edi_iapi11.
         data       lw_segments           type edi_iapi11.
         data       ls_idoc_data          type edidd.
         data       ls_e1kna1m            type  zdebmas07_e1kna1m.
         data       e1kna1m               type e1kna1m.
    *** CONTROL DATA
         ls_idoc_control-mandt  = input-idoc-edi_dc40-mandt.
         ls_idoc_control-status = input-idoc-edi_dc40-status.
         ls_idoc_control-doctyp = input-idoc-edi_dc40-idoctyp.
         ls_idoc_control-direct = input-idoc-edi_dc40-outmod.
         ls_idoc_control-rcvprt = input-idoc-edi_dc40-rcvprt.
         ls_idoc_control-rcvprn = input-idoc-edi_dc40-rcvprn.
         ls_idoc_control-stdmes = input-idoc-edi_dc40-stdmes.
         ls_idoc_control-outmod = input-idoc-edi_dc40-outmod.
         ls_idoc_control-sndpor = input-idoc-edi_dc40-sndpor.
         ls_idoc_control-sndprt = input-idoc-edi_dc40-sndprt.
         ls_idoc_control-sndprn = input-idoc-edi_dc40-sndprn.
         ls_idoc_control-mestyp = input-idoc-edi_dc40-mestyp.
         ls_idoc_control-idoctp = input-idoc-edi_dc40-idoctyp.
         append ls_idoc_control to lt_idoc_control.
    *** READ SEGMENTS
         pi_idoctyp = ls_idoc_control-idoctp.
         call function 'IDOCTYPE_READ_COMPLETE'
           exporting
             pi_idoctyp         = pi_idoctyp
           tables
             pt_segments        = pt_segments
           exceptions
             object_unknown     = 1
             segment_unknown    = 2
             relation_not_found = 3
             others             = 4.
         loop at pt_segments into lw_segments.
           case lw_segments-segmenttyp.
             when 'E1KNA1M'.
               ls_idoc_data-segnam = 'E1KNA1M'.
               ls_idoc_data-mandt  = sy-mandt.
               ls_idoc_data-segnum = lw_segments-nr.
               ls_idoc_data-psgnum = lw_segments-parpno.
               ls_e1kna1m          = input-idoc-e1kna1m.
               move-corresponding ls_e1kna1m to e1kna1m.
               move e1kna1m to ls_idoc_data-sdata.
               append ls_idoc_data to lt_idoc_data.
               exit.
           endcase.
         endloop.
    *** IDOC INPUT CALL FUNCTION
         data: response type zsi_create_customer_is_res_tab.
         data: response_lwa type zsi_create_customer_is_respons.
         data: lwa_error_message type string.
         call function 'IDOC_INPUT_DEBITOR'
           exporting
             input_method          = lc_no_display
             mass_processing       = space
           importing
             workflow_result       = lv_workflow_result
           tables
             idoc_contrl           = lt_idoc_control
             idoc_data             = lt_idoc_data
             idoc_status           = lt_idoc_status
             return_variables      = lt_return_variables
             serialization_info    = lt_serialization_info
           exceptions
             wrong_function_called = 1
    others                = 2.

    Hello Megan,
    Check with the function modules
    EDI_DATA_INCOMING
    IDOC_WRITE_AND_START_INBOUND
    Program:
    RBDAPP01
    I guess this would answer your query.
    Regards,
    TP

  • Enhancement for inbound idoc posting(idoc_input_ordrsp)

    hi,
    please find solution for the below.
    business senario: when the vendor send purchase order confirmation through idoc a automated acknowledgement has to be send.
    technical: when vendor send idoc (orders05) it updates with FM (idoc_input_ordrsp) our system.
    but in the idoc a segment E1EDP19 will have the field IDNLF which has to be filled to send a  acknowledgement .
    in my case:
    the user  some times will fill the segment so to get automated acknowledgement we have to write an enhacement to populate the segment in inbound  FM.
    i have written code in EXIT_SAPLEINM_007. and populated the data in internal table. but the changed data in internal table  is not reflecting in processed idoc(in we02 direction 2).

    idoc_data is the intenal table which hold all the segment data in run time.
    now i fetched matnr from ekpo table populated E1EDP19
    and modified the internal table by adding idoc_data-sdata when idoc_data-segnam is E1EDP19 .
    ultimately the sdata is reflecting in the idoc_data-sdata for the segment.
    but when we check in  we02  for the processed idoc the changes are reflecting.
    give me a solution for the data to reflect in processed idoc.

  • Help in inbound idoc posting using bdc

    Hi,
    We are facing a problem during integration testing to post inbound idocs.
    The scenario is :
    A custom FM is written to process the inbound idocs, which does the following processes in sequence.
    1. BAPI used to create Goods Receipt
    2. BDC used to create Delivery using VL01N
    3. BDC used to create Handling Unit using VL02N
    4. BDC used to create Post Goods Issue using VL02N
    The VL01N creates a deivery, and using that delivery BDC calls VL02N to create HU.
    In unit testing the idocs are success, but when multiple idocs are used in integration testing, all fails either during delivery creation or HU creation.
    The error message we often get when HU is failed is  : "Runtime error RAISE_EXCEPTION has occured ".
    We have also incorporated a commit work and wait of 5 seconds after each BDC to avoid locking problem if any.
    The partner profile is set to ' trigger by background program'.
    Standard program RBDAPP01 is scheduled to collect the IDocs in status 64 and then to be processed.
    The package size used is 1,  inorder to process idocs one by one to avoid locking.
    Should any object type be given in RBDAPP01 ?
    If so, is it required to maintain any record for that object type in table TBD55 to process idocs serially in RBDAPP01 ?
    Any help in this regard is appreciated.
    Thanks in advance
    Regards
    Meena George

    Refer these links and see if they are useful:
    http://help.sap.com/saphelp_nw04/helpdata/en/0b/2a66c9507d11d18ee90000e8366fc2/content.htm
    Regards,
    Ravi

  • How to change field values AFTER Inbound IDOC Posted successfully

    Hi SAP Experts,
    In my project I receive the inbound IDOC PORDCR05 from PI and posted as an Purchase Order in ECC.
    I create the Z process code and Z function module (which is a copy version of IDOC_INPUT_PORDCR) and complete all the necessary configuration steps. It works perfectly.
    My problem is: I have to  collect some inbound idocs (that satisfied some criteria) and change the value of field EKPO-TXJCD and EKKN-KOSTL of the PO AFTER  it posted successfully (means the purchase order is created and save in database).
    How can I do this? I've try to put the logic code in Z function module, but it does not work, since at that time, the Inbound IDOC is not updated to the database yet.
    Aprreciate your advise.
    Regards,
    Elaine.

    Hi Elaine ,
    as per your cretiria pick the idocs and take created PO# from status 53 & use the BAPI (BAPI_PO_CHANGE) to change the neccessary values in the PO. We can't reprocess those idocs again.
    Reddy

  • How to process inbound idoc in R/3 with status 75 - idoc received via qRFC?

    Hi gurus,
    we are using EOIO for source to R/3, and all the idocs a received in r/3 with this status. But they can't be processed from BD87. How to process these?
    Thanks,
    Olian
    Edited by: Olian Saludew on Sep 11, 2008 11:44 AM

    Hi,
    Idocs Works on tRFC Queues.
    Check this Report to Process Inbound Idocs with Specified Status.
    RBDAPP01
    Regards
    Seshagiri

  • Collecting or time based inbound idoc posting

    Dear All,
      We have need of posting idoc's in a specific time interval in SAP ECC system. Please help us.
      requirement is We are pushing idocs to ECC , but the idoc should get process only between 3 Pm to 6 PM.
    Kindly help us.
    Regards
    Pradeep P N

    hello pradeep,
    Schedule a Background job whenever you get the IDOC in to SAP .Run the Job at specific time.
    We had a similar scenario where we had to post it after 24 hours.
    sample code ......
    start_time = "when ever you want".
      WRITE docnum TO name.
      SHIFT name LEFT DELETING LEADING '0'.
      CONCATENATE 'POST_IDOC_' name INTO name.
      CONDENSE name.
      CALL FUNCTION 'JOB_OPEN'
        EXPORTING
          jobname          = name
        IMPORTING
          jobcount         = number
        EXCEPTIONS
          cant_create_job  = 1
          invalid_job_data = 2
          jobname_missing  = 3
          OTHERS           = 4.
      IF sy-subrc = 0.
    Fill idoc number
        r_docnum-low = docnum.
        r_docnum-sign = 'I'.
        r_docnum-option = 'EQ'.
        APPEND r_docnum.
    Fille message type
        r_mestyp-low = mestyp.
        r_mestyp-sign = 'I'.
        r_mestyp-option = 'EQ'.
        APPEND r_mestyp.
    Manual processing of IDOCS
        SUBMIT rbdmani2  WITH so_docnu IN r_docnum
                         WITH so_mesty IN r_mestyp
                         WITH p_output = ''
                         WITH p_wodial = 'X'
                          VIA JOB name NUMBER number
                          AND RETURN.
        IF sy-subrc = 0.
          CALL FUNCTION 'JOB_CLOSE'
            EXPORTING
              jobcount             = number
              jobname              = name
              sdlstrtdt            = start_date
              sdlstrttm            = start_time
            EXCEPTIONS
              cant_start_immediate = 1
              invalid_startdate    = 2
              jobname_missing      = 3
              job_close_failed     = 4
              job_nosteps          = 5
              job_notex            = 6
              lock_failed          = 7
              OTHERS               = 8.
          IF sy-subrc <> 0.
          ENDIF.
        ENDIF.
      ENDIF.
    ENDFORM.                    " POST_IDOC_DAYS_LATER
    Thanks,
    Pradeep.

  • Idoc are posting to ECC with Status 64

    Hi All,
    We are receiving IDOC with status 64 from PI.
    We used tried by changing the options in partner profiles
    --> Trigger by Background program
    The inbound IDoc is processed in the background. In this case, make sure, that the report RBDAPP01 is scheduled in the transaction SM37 as a regular job with the correct variant to process all IDoc´s, which have this processing option maintained.
    --> Trigger immediately
    When using this setting, it is important to have sufficient resources for the immediate processing of the inbound IDoc´s. One dialog work process must be available for every single IDoc.
    If this dialog work process is not available, the IDoc cannot be processed and stays in status 64.
    I reffered the notes
    555229 ‘IDocs hang in status 64 for tRFC with immediate processing’
    734576   ‘IDocs retain status 64, but should be processed immediately’
    1055679 ‘IDoc-tRFC inbound with immediate processing may not work’
    Still the idocs are in 64 status, every time im re-processing them manually. even after re-processing some of them are going to 51 or 54.
    Please help me.
    Regards
    Bhargava Krishna

    Hello,
    Can you please explain your issue is with "Trigger by Background program" or "Trigger immediately"?
    For Trigger immediately, if there is no free dialog work process available than IDocs are posted with status 64.
    For Trigger by Background program, Background job RBDAPP01 will process IDocs depending on variant you define to select & process IDocs(i.e., IDoc Status = 64).
    It is always recommended to use "Trigger by Background program" for high volume interface which has large number of IDocs.
    Help on RBDAPP01
    Regards,
    Sameer

  • Inbound delivery Idoc to create Batch with Characteristics

    Hi Experts,
    Need your help...
    We have the scenario where the inbound delivery in ECC is created by an external Idoc (DESADV). However the batch field is blank.
    Requirement is to create a batch per line item (as per the number range in ECC) during inbound idoc posting and assign the batch to the inbound delivery line item. This batch will also need to be populated with characteristics. (DESADV Idoc segments will carry these characteristics)
    Is there a way to achieve this..?
    Thanks,
    Krishna

    Thanks for the reply..
    Do you mean to say that its a standard functionality..? We are already using DESADV with DELS. However, we have modified our inbound idoc with Z Segments. These segments carry the characteristic values. No where in the idoc we have the batch number, as we want the batch number to be created automatically based on the number range in ECC.
    In such kind of cases, how to achieve this..?
    Thanks,
    Krishna

  • How to Test, Inbound idoc ,with out the Sender System, using a Text File

    Hi Guru's .
    we wanted to test BLAORD03 inbound idoc (Message Type BLAORD).with out the SENDER SYSTEM.
    on the same client.
    we wanted to test this idoc with text file from our local machine.
    Can anyone give us detail steps.like how to create  File layout
    with Segment name,and values for the fields.how to pass this file to the system.
    Thanks in advance.

    Hi Aparna.
    My requirement is to test the idoc with Inbound File.
    Generate a file with the data entered through segments through we19 ,and use the same file for processing through we16.
    when i am trying to do this syst complaing about
    Partner Profile not available, and some times
    port not available. and some  times with
    'No further processing defined'.
    but i maintained part profiles and port perfectly.
    Can you help me in testing with test 'File' port.

  • Inbound Idoc function module  for Cycle count with msg type WVINVE

    Can any one tell me which is the standard function Module which processes Cycle count for message type WVINVE.
    My requirement is to setup Inbound Idoc for cycle processing with message type WVINVE.

    Hi Mukesh,
             Inbound FM is IDOC_INPUT_STORE_INVENTORY , and Process code is WVIN.
             Yoou can check this in Tcode WE42 for process code WVIN.
    Regards
    Srikanth M

Maybe you are looking for