Dxvbak

hi all,
        in enhancement of idoc 850 in the function module EXIT_SAPLVEDA_009 in the tables parameters we have DXVBAK,DXVBAP etc.
      what are these structures and what for they r used??

Hi Keerthivasan:
The standard SAP program did not have the Unicode checks active flag selected.
So, DXVBAK can be used like the following:
DXVBAK LIKE VBAK.
DXVBAK+107(4) = EDSDC-VKORG.
DXVBAK+111(2) = EDSDC-VTWEG.
DXVBAK+113(2) = MARA-SPART.
This worked in 4.5b, but gave a Unicode runtime error in 5.0.
It's because DXVBAK is a complex structure with numeric values in between.
If DXVBAK was all character, then this would have worked in ECC 5.0 also.

Similar Messages

  • IDoc programming for Requested Delivery Date - Inbound ORDERS

    Hi Folks,
    I want to manipulate Requested Delivery Date on the Sales Order.
    The Field for Req Del Date is RV45A-KETDAT.
    But this value is stored in VBAK-VDATU.
    When i am trying to modify this value using dxvbak structure, this value is getting populated correctly, but not updating in the table.
    Look at the code snippet below.
    if zedidc-sndprn = '0000902000'.
            IF ze1edk03-iddat = '002'.
              MOVE ze1edk03-datum TO zvbak-vdatu.             " Requested Delivery Date
               zvbak-vdatu = sy-datum + 7.
               BREAK-POINT.
               dxvbak = zvbak.
            ENDIF.
            endif.
    What's wrong here??
    Thanks,
    Matt

    Done

  • No batch input data for screen SAPMSSY3 0131 in Sales order IDOC

    I am processing Sales order IDOCS in status 64 using RBDAPP01 .Some of them error out to status 51 with the message -
    No batch input data for screen SAPMSSY3 0131 .
    I know the standard IDOC inbound process tries to simulate the posting in a BDC like process.
    Now, I went to we19 and the screen hangs up in a pop up in the partners tab with partner type 'WE' and my shipto (which is actually filled in the IDOC), missing..upon repeatedly hitting enter, it goes thru and an idoc is posted in status 53. But still unable to get through the root of this issue.
    Any, insight will help.

    Hi,
    I think the pop-up is generated through and user-exit for which recording is missing. This is why your idoc stays in status 64...
    Handle the screen recording in the user exit IDOC_INPUT_ORDERS
    user exit routine
    PERFORM customer_function_dynpro.
    FORM CUSTOMER_FUNCTION_DYNPRO.
      CALL CUSTOMER-FUNCTION '002'
        EXPORTING DXVBAK   = XVBAK
                  DVTCOMAG = VTCOMAG
                  DLAST_DYNPRO = LAST_DYNPRO
                  DXMESCOD = IDOC_CONTRL-MESCOD
        TABLES    DXBDCDATA = BDCDATA
                  DXVBAP    = XVBAP
                  DXVBEP    = XVBEP
                  DYVBEP    = YVBEP
                  DXVBADR   = XVBADR
                  DYVBADR   = YVBADR
                  DXVBPA    = XVBPA
                  DXVBUV    = XVBUV
                  DIDOC_DATA = IDOC_DATA
                  DXKOMV    = XKOMV
                  DXVEKP    = XVEKP
                  DYVEKP    = YVEKP
        EXCEPTIONS
                  USER_ERROR = 01.
    Regards,
    Krishnakumar

  • Creating sales order using IDOC - Delivery hour

    Hi,
    i've a problem to solve. when creating a sales order i need that when the segment is E1EDK03 and the IDDAT is 002 i need to extract the delivery hour and insert it in the table vbak-vzeit, now what i'm doing in the exit EXIT_SAPLVEDA_001 is:
    DATA: hour LIKE vbak-vzeit.
    CHECK segment-segnam = 'E1EDK03'.
    IF segment-sdata(3) = '002'.
      hour = segment-sdata+11(6).
    ENDIF.
    and now i want to acess the value in hour in the exit EXIT_SAPLVEDA_002 to put it in the dxvbak struct tha i think that is the table correct to then internaly fill the vbak. the problem is that the variable hour is not available in the exit EXIT_SAPLVEDA_002. i do i do to pass the value that i want from the exit EXIT_SAPLVEDA_001  to be available in exit EXIT_SAPLVEDA_002  and then insert that value in the right place to fill vbak.

    Can u tell me the steps to create a sales order using idoc, i've created a bapi but thats a temprory use. I wanted to created a sales order automatically when a purchase order is saved.
    Please let me know if u can help me, i wanted to do it using idoc
    Regards
    Sanju

  • IDOC_INPUT_ORDERS segment E1EDKA1 is inheriting values from default

    I'm trying to use a user exit in IDOC_INPUT_ORDERS ... function group VEDA.
    What I want to do is clear the WE (ship to) DXVBADR segment and fill it with a diferent destination.
    My problem is that some of the fields are overwritten by the customer address settings when it was created with transaction XD01.I can't seem to get any control over many of them. When I examine the code in IDOC_INPUT_ORDERS, I can see why. Many fields, example HAUSN aren't checked. They just get over-written by the default customer settings from XD01.
    EXIT_SAPLVEDA_001 and EXIT_SAPLVEDA_002 don't seem to work.
    If I could get control over EXIT_SAPLVEDA_002, I could modify the bdc lines for the ship to party. But, that seems very error prone to me.
    Has anyone else encountered this problem?

    I couldn't find any "official" way to do it. So, I used EXIT_SAPLVEDA_002 to blow away all of the fields on the ship to address screen and rebuild it. This probably isn't the most elegant way to do it. But, it works for me and has been stable in my production system.
    P.S.
    I can't get my code pasting to format correctly.
    I'm surrounding it by
    but it isn't working today.
    You may need to claw your way through this mess.
    * FUNCTION EXIT_SAPLVEDA_002.
    *&  Include           ZXVEDU04
    *{   INSERT         ES1K900037                                 
    *"*"Lokale Schnittstelle:
    *"       IMPORTING
    *"             VALUE(DXVBAK) OPTIONAL
    *"             VALUE(DVTCOMAG) OPTIONAL
    *"             VALUE(DLAST_DYNPRO) OPTIONAL
    *"             VALUE(DXMESCOD) LIKE  EDIDC-MESCOD OPTIONAL
    *"       TABLES
    *"              DXBDCDATA STRUCTURE  BDCDATA OPTIONAL
    *"              DXVBAP OPTIONAL
    *"              DXVBEP OPTIONAL
    *"              DYVBEP OPTIONAL
    *"              DXVBADR OPTIONAL
    *"              DYVBADR OPTIONAL
    *"              DXVBPA STRUCTURE  VBPAVB OPTIONAL
    *"              DXVBUV OPTIONAL
    *"              DIDOC_DATA STRUCTURE  EDIDD OPTIONAL
    *"              DXKOMV OPTIONAL
    *"              DXVEKP OPTIONAL
    *"              DYVEKP OPTIONAL
    *"       EXCEPTIONS
    *"              USER_ERROR
    *&==============================================================
    *&                         MODIFICATION LOG
    *&==============================================================
    *& Developer    : Ed Baker (ebaker)
    *& Date         : 5 November 2009
    *& Change Marker: ejb091105
    *& CTS request  : 800899
    *& Transport    : DE1K980565
    *& Description
    *& Added:
    *&  [1] Protection for NAME4 segments to preserve previous
    *&      user exit functionality
    *&  [2] Added insert of NAME3 segment
    " EXIT_SAPLVEDA_002
    data: ta_bdcdata            like bdcdata occurs 0.
    data: ts_bdcdata            like bdcdata.
    *>>>>>>>>>> Save NAME4 segment ejb091105 <<<<<<<<<<<START<
    *"05.11.2009 06:57:13
    * Holding table for NAME4 segments
    * these need to be preserved for compatability with
    * previous user ext.
    data: ta_bdcdata_name4      like bdcdata occurs 0.
    data: ts_bdcdata_name4      like bdcdata .
    *>>>>>>>>>> Save NAME4 segments ejb091105 <<<<<<<<<<<END<
    data: ta_idoc_data          like edidd occurs 0 .
    data: ts_idoc_data          like edidd.
    data: tmp_data              like bdcdata.
    data: v_we_index            like sy-tabix.
    data: v_v09c_index          like sy-tabix.
    data: v_addr1_begin         like sy-tabix.
    data: v_addr1_end           like sy-tabix.
    data: v_index               like sy-tabix.
    data: v_lines               type i.
    data: v_string              type string.
    data: v_sich_found          type c.
    data: st_e1edka1            like e1edka1.
    data: st_vbak               like vbak.
    data: ra_vkorg like RANGE OF tvko-vkorg.
    data: rs_vkorg like LINE OF ra_vkorg.
    *& Build range table of allowed sales orgs
    refresh ra_vkorg[].
    rs_vkorg-sign = 'I'.
    rs_vkorg-option = 'EQ'.
    rs_vkorg-low = '0010'.
    rs_vkorg-high = space.
    APPEND rs_vkorg to ra_vkorg.
    rs_vkorg-sign = 'I'.
    rs_vkorg-option = 'EQ'.
    rs_vkorg-low = '0020'.
    rs_vkorg-high = space.
    APPEND rs_vkorg to ra_vkorg.
    rs_vkorg-sign = 'I'.
    rs_vkorg-option = 'EQ'.
    rs_vkorg-low = '0070'.
    rs_vkorg-high = space.
    APPEND rs_vkorg to ra_vkorg.
    st_vbak = dxvbak.
    *>>>>>>>>>> Wrapper for NAME4 check ejb091105 <<<<<<<<<<<START<
    *"05.11.2009 08:25:40
    "check st_vbak-vkorg in ra_vkorg .
    if st_vbak-vkorg in ra_vkorg.
    *>>>>>>>>>> Wrapper for NAME4 check ejb091105 <<<<<<<<<<<END<
      " VKORG check passed. Go ahead and convert the inputs
      " to internal tables with structures.
      ta_bdcdata[] = DXBDCDATA[].
      ta_idoc_data[] = DIDOC_DATA[].
      " Get the ship to address information
      READ TABLE ta_idoc_data into ts_idoc_data
        with key segnam = 'E1EDKA1'
                 sdata+0(2) = 'WE'.
      IF sy-subrc = 0.
        st_e1edka1 = ts_idoc_data-sdata.
      ENDIF.
      " If the NAME1 field is blank, the default ship to address
      " is the same as the customer. Don't do anything. Just leave.
      check st_e1edka1-name1 ne space.
      " Wait until the SICH (SAVE) code is reached before doing
      " anything with the TA_BDCDATA table
      LOOP AT  ta_bdcdata into ts_bdcdata .
        if ts_bdcdata-fnam = 'BDC_OKCODE'
          and ts_bdcdata-FVAL = 'SICH'.
          v_sich_found = 'X'.
        endif.
      ENDLOOP .
      " the ta_bdcdata itab is stable once the SICH ok_code is found
      " you can go ahead and
      " process it and not have to worry about looping through it
      " multiple times
      IF v_sich_found = 'X'.
    *  >>>>>>>>>> Preserve NAME4 segment ejb091105 <<<<<<<<<<<START<
    *  "05.11.2009 07:01:15
      " Preserve any NAME4 segment for compatability
      " with previous user exit.
          LOOP AT ta_bdcdata into ts_bdcdata
            where fnam = 'NAME4'.
            ts_bdcdata_name4 = ts_bdcdata.
          ENDLOOP.
    *  >>>>>>>>>> Preserve NAME4 segment ejb091105 <<<<<<<<<<<END<
      " First: find the line that says WE ship-to information is nex
          LOOP AT ta_bdcdata into ts_bdcdata .
            IF ts_bdcdata-program = 'SAPLV09C'.
              v_index = sy-tabix + 1 .
              read table ta_bdcdata INTO tmp_data
                index v_index .
              IF sy-subrc = 0.
                v_we_index = v_index .
                exit.
              ENDIF.
            ENDIF.
          ENDLOOP.
      " Second: find the line where the addr1_data segments start
      LOOP AT ta_bdcdata into ts_bdcdata .
        if sy-tabix > v_we_index.
          IF ts_bdcdata-program = 'SAPLV09C'.
            v_addr1_begin = sy-tabix + 1.
            exit.
          ENDIF.
        ENDIF.
      ENDLOOP.
      " Third: find the BDC_OKCODE for the last addr1_data
      LOOP AT ta_bdcdata into ts_bdcdata .
        IF sy-tabix > v_addr1_begin.
          IF  ts_bdcdata-fnam = 'BDC_OKCODE'
          and ts_bdcdata-fval = 'ENT1'.
            v_addr1_end = sy-tabix - 1 .
          ENDIF.
        ENDIF.
      ENDLOOP.
      " Fourth: delete all of the ADDR1_DATA lines
      " program SAPLV09C and screen 5000
      if v_addr1_begin > 0.
       " v_addr1_end
        delete ta_bdcdata
         from v_addr1_begin to v_addr1_end.
    *  &============================================================
    *  &============================================================
      " Fifth: build up whatever you want
    *  &============================================================
    *  &============================================================
          clear ts_bdcdata.
          ts_bdcdata-dynpro = '0000'.
          ts_bdcdata-fnam   = 'ADDR1_DATA-NAME1'.
          ts_bdcdata-fval   = st_e1edka1-name1.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          if st_e1edka1-name2 is initial.
            ts_bdcdata-fnam   = 'ADDR1_DATA-NAME2'.
            ts_bdcdata-fval   = ''.
          else.
            ts_bdcdata-fnam   = 'ADDR1_DATA-NAME2'.
            ts_bdcdata-fval   = st_e1edka1-name2 .
          endif.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
    *  >>>>>>>>>> Add the NAME3 segment ejb091105 <<<<<<<<<<<START<
    *  "05.11.2009 07:41:58
    *  & Add the NAME3 segment. It's used sometimes
          if st_e1edka1-name3 is initial.
            ts_bdcdata-fnam   = 'ADDR1_DATA-NAME3'.
            ts_bdcdata-fval   = ''.
          else.
            ts_bdcdata-fnam   = 'ADDR1_DATA-NAME3'.
            ts_bdcdata-fval   = st_e1edka1-name3 .
          endif.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
    *  >>>>>>>>>> Add the NAME3 segment ejb091105 <<<<<<<<<<<END<
    *  >>>>>>>>>>> Preserve NAME4 segment ejb091105 <<<<<<<<<<<<STAR
    *  "05.11.2009 07:10:29
    *  & Insert the preserved NAME4 segment
          IF not ts_bdcdata_name4 is initial.
            ts_bdcdata-fnam = 'ADDR1_DATA-NAME4'.
            ts_bdcdata-fval = ''.
          else.
            ts_bdcdata-fnam = 'ADDR1_DATA-NAME4'.
            ts_bdcdata-fval = ts_bdcdata_name4-fval.
          ENDIF.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
    *  >>>>>>>>>>> Preserve NAME4 segment ejb091105 <<<<<<<<<<<<END<
          ts_bdcdata-fnam   = 'ADDR1_DATA-STREET'.
          ts_bdcdata-fval   = st_e1edka1-stras.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
         if st_e1edka1-land1 = 'US'.
          ts_bdcdata-fnam   = 'ADDR1_DATA-HOUSE_NUM1'.
          ts_bdcdata-fval   = st_e1edka1-hausn.
         else.
          ts_bdcdata-fnam   = 'ADDR1_DATA-HOUSE_NUM1'.
          ts_bdcdata-fval   = ''.
         endif.
         insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
         add 1 to v_addr1_begin.
          ts_bdcdata-fnam   = 'ADDR1_DATA-CITY1'.
          ts_bdcdata-fval   = st_e1edka1-ort01.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          ts_bdcdata-fnam   = 'ADDR1_DATA-CITY2'.
          ts_bdcdata-fval   = st_e1edka1-ort02 .  " implement county
                                                  " ejb091118
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          if st_e1edka1-land1 = 'US'.
            ts_bdcdata-fnam   = 'ADDR1_DATA-REGION'.
            ts_bdcdata-fval   = st_e1edka1-regio.
          else.
            ts_bdcdata-fnam   = 'ADDR1_DATA-REGION'.
            ts_bdcdata-fval   = ''.
          endif.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          if st_e1edka1-land1 ne 'US'.
            ts_bdcdata-fnam   = 'ADDR1_DATA-TAXJURCODE'.
            ts_bdcdata-fval   = '' .
          endif.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          ts_bdcdata-fnam   = 'ADDR1_DATA-TIME_ZONE'.
          ts_bdcdata-fval   = ''.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          ts_bdcdata-fnam   = 'ADDR1_DATA-POST_CODE1' .
          ts_bdcdata-fval   = st_e1edka1-pstlz.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          ts_bdcdata-fnam   = 'ADDR1_DATA-COUNTRY'.
          ts_bdcdata-fval   = st_e1edka1-land1.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          IF st_e1edka1-telf1 ne space.
            ts_bdcdata-fnam   = 'SZA1_D0100-TEL_NUMBER'.
            ts_bdcdata-fval   = st_e1edka1-telf1 .
          else.
            ts_bdcdata-fnam   = 'SZA1_D0100-TEL_NUMBER'.
            ts_bdcdata-fval   = ''.
          ENDIF.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          ts_bdcdata-fnam   = 'SZA1_D0100-TEL_EXTENS'.
          ts_bdcdata-fval   = ''.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
          if st_e1edka1-PFACH ne space.
           ts_bdcdata-fnam   = 'ADDR1_DATA-PO_BOX'.
           ts_bdcdata-fval   = st_e1edka1-PFACH.
          else.
            ts_bdcdata-fnam   = 'ADDR1_DATA-PO_BOX'.
            ts_bdcdata-fval   = ''.
          endif.
          insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
          add 1 to v_addr1_begin.
    *  " all remaining fields on the ship to screen will be blank.
    *  *    ts_bdcdata-fnam = 'EXTENSION1'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam = 'EXTENSION2'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam = 'PO_BOX_CTY'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam = 'PO_BOX_LOC'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam = 'PO_BOX_REG'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam = 'POST_CODE2'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam = 'POST_CODE3'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam = 'REMARK'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam = 'TIME_ZONE'.
    *  *    ts_bdcdata-fval = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
    *  " Fill in all of the SZA1_D0100 fields
    *      IF st_e1edka1-telf1 ne space.
    *        ts_bdcdata-fnam   = 'SZA1_D0100-TEL_NUMBER'.
    *        ts_bdcdata-fval   = st_e1edka1-telf1 .
    *      else.
    *        ts_bdcdata-fnam   = 'SZA1_D0100-TEL_NUMBER'.
    *        ts_bdcdata-fval   = ''.
    *      ENDIF.
    *      insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *      add 1 to v_addr1_begin.
    *      ts_bdcdata-fnam   = 'SZA1_D0100-MOB_NUMBER'.
    *      ts_bdcdata-fval   = ''.
    *      insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *      add 1 to v_addr1_begin.
    *      ts_bdcdata-fnam   = 'SZA1_D0100-FAX_NUMBER'.
    *      ts_bdcdata-fval   = ''.
    *      insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *      add 1 to v_addr1_begin.
    *      ts_bdcdata-fnam   = 'SZA1_D0100-FAX_NUMBER'.
    *      ts_bdcdata-fval   = ''.
    *      insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *      add 1 to v_addr1_begin.
    *      ts_bdcdata-fnam   = 'SZA1_D0100-SMTP_ADDR'.
    *      ts_bdcdata-fval   = ''.
    *      insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *      add 1 to v_addr1_begin.
    *  *    ts_bdcdata-fnam   = 'SZA1_D0100-DEFLT_COMM'.
    *  *    ts_bdcdata-fval   = ''.
    *  *    insert ts_bdcdata into ta_bdcdata index v_addr1_begin .
    *  *    add 1 to v_addr1_begin.
      endif.
      DXBDCDATA[] = ta_bdcdata[]. "restore the passed parameter
      ENDIF.
    endif. " end of st_vbak test
    *}   INSERT
    loop at DXBDCDATA where FNAM = 'ADDR1_DATA-NAME4'.
      DXBDCDATA-FNAM = 'ADDR1_DATA-STR_SUPPL1'.
      Modify DXBDCDATA.
    endloop.

  • IDOC_INPUT_ORDERS with error message RV45A-VBAP_SELKZ (2) is not input fiel

    Hi
    I am creating a multiple line sales order from Idoc and using the FM IDOC_INPUT_ORDERS. The idoc is processed with status 51 with error message RV45A-VBAP_SELKZ (2) is not input field.
    It only happens for Idocs that are processed 1st time (re-processing is succesfull) and only in the background (if processed first time in foreground - it is ok).
    Have you ever seen this message?
    Thanks,
    Magda

    Hi Joy
    Thanks for an idea of creating a BDC from bdcdata before calling VA01 from an IDoc. I could analyze it and to correct an error I added some code in the user exit ZXVEDU04. I simply replaced all concurrencies of RV45A-VBAP_SELKZ (2) with RV45A-VBAP_SELKZ (1) and it worked:
    * MW Replace RV45A-VBAP_SELKZ(2) with RV45A-VBAP_SELKZ(1)
    move dxvbak to i_dxvbak.
    if i_dxvbak-bsark = 'WINT' and dxbdcdata-fval eq 'SICH'.
      dxbdcdata-fnam = 'RV45A-VBAP_SELKZ(1)'.
      modify dxbdcdata transporting fnam
       where fnam = 'RV45A-VBAP_SELKZ(2)'.
      exit.
    endif.
    This is called only once when dxbdcdata-fval = 'SICH'.
    Hope it helps.
    Magda

  • Assignment field in ORDERS05

    Hi,
    I'm using inbound IDOC ORDERS05 to Create a Sales order.  I have a requirment to populate the Assignment Field....VBAK-ZUONR. 
    I'm currently using segment E1EDK02, my Qualifier is 017 : Assignment number, and BELNR is populated with the required number.  But yet when I create the sales order, this field is not populated.
    I am also using qualifier 009 to populate the invoice number, and this is working fine, is there something different I should be doing to include 2 different reference documents, using structure E1EDK02.
    Any idea's where I am going wrong?
    Thanks,
    Tyrone.

    Hi   Tyrone   /  Amandeep Chahal         
    Try this way..
    Idoc Type : orders05
    Segment: E1EDK02
    QUALF     017      : Reference document
    BELNR     <Number> : Document number
    DATUM     <Date>      : Date
    we need pass the Assignment Number  value in user exit
    user exit Fm : EXIT_SAPLVEDA_001 (SD EDI Incoming Orders: Reading Additional Data from IDOC)
    INCLUDE ZXVEDU03.
    when idoc hit the user exit
    at segment E1EDK02 with QUAL 017
    Modify the DXVBAK and pass value to ZUONR
    then exit the loop of SEGMENT-SEGNAM
    (VALUE(SEGMENT) LIKE  EDIDD STRUCTURE  EDIDD OPTIONAL)
    This will work ...
    I Think above info helps you
    ThanKS
    Ramesh

  • Validation for Incoming Orders

    Hi,
         Can somebody tell me how to process the segments in a customer function (Exit)? I am developing an interface for incoming ORDERS05 (Sales Order).Before the Idoc is posted, I need to check whether the Ship-To Customer is a One time account. If somebody could give me the code, that would be appreciated.
    Thanks,
    Venkat.

    You need to do it using the predefined SAP user exits.
    You need to find, based on the message type you are dealing with, the corresponding function module used (for outbound or inbound processing). In this function module (ex: IDOC_INPUT_ORDER) you will find the function exit calls like this:
        CALL CUSTOMER-FUNCTION '011'
             EXPORTING
                  dxvbak  = xvbak
                  docnum  = idoc_contrl-docnum
             TABLES
                  derrtab = errtab
                  dxvbap  = xvbap
                  dxvbep  = xvbep
                  dxvbadr = xvbadr
                  dxvbpa  = xvbpa
                  dxvbuv  = xvbuv
                  dedidc  = idoc_contrl
                  dedidd  = idoc_data
                  dxkomv  = xkomv
                  dxvekp  = xvekp
                  dyvekp  = yvekp.
    Create a enhancement project in CMOD, using the enhancement that contains the function exit (you can search for it in SMOD dropdown and entereing the function module in the component Additional search in SMOD).
    Activate it and enter your code in there.
    For specific examples, you will need to provide us the name of the message type or function module you are trying to "enhance".
    This is simple example and you can write your own logic based on below example :
    DATA: ZE1EDPT2 LIKE E1EDPT2.
    LOOP AT IDOC_DATA.
      CASE IDOC_DATA-SEGNAM.
         WHEN 'E1EDPT2'.
           MOVE IDOC_DATA-SDATA TO ZE1EDPT2.
           ZE1EDPT2-TDLINE   = <...>   
           ZE1EDPT2-TDFORMAT = <...>    
           MOVE ZE1EDPT2 TO IDOC_DATA-SDATA.
           MODIFY IDOC_DATA.
         WHEN <...>
         OTHERS.    
       ENDCASE.
    ENDLOOP.
    Thanks
    Seshu

  • Error with Save_Text

    Hi All,
    I am getting following error while saving text. Can someone please help me.
    Thanks,
    Veni.
    I/O error for text VBBK Period Start 0021 EN
    Diagnosis
    You want to read a text from the database, delete it, or save it to the database.
    System Response
    An error occurred when the database was accessed.
    Procedure
    Try repeating the procedure. If the error recurs, contact your system administrator.
      WHEN 'E1EDK03'.
        ZXVBAK = DXVBAK.
        MOVE SEGMENT-SDATA TO E1EDK03.
        IF E1EDK03-IDDAT = '004'.
          WRITE E1EDK03-DATUM TO PSDATE.
          CLEAR: wa_thead, itline.
          REFRESH: itline.
          wa_thead-tdname = 'Period Start'.
          wa_thead-tdobject = 'VBBK'.
          wa_thead-tdid = '0021'.
          wa_thead-tdspras = sy-langu.
          itline-tdformat = '*'.
          itline-tdline = PSDATE.
          APPEND itline.
          CALL FUNCTION 'SAVE_TEXT'
            EXPORTING
              client          = sy-mandt
              header          = wa_thead
              insert          = 'X'
              savemode_direct = 'X'
            TABLES
              lines           = itline.

    Hi,
    Use the Two FM's in Sync:
    CALL FUNCTION 'INIT_TEXT'
           EXPORTING
                ID       = 'ST'
                LANGUAGE = sy-langu
                NAME     = TEXTHEAD-TDNAME
                OBJECT   = 'TEXT'
           IMPORTING
                HEADER   = TEXTHEAD
           TABLES
                LINES    = TEXTTAB
           EXCEPTIONS
                OTHERS   = 5.
      CALL FUNCTION 'SAVE_TEXT'
           EXPORTING
                CLIENT          = SY-MANDT
                HEADER          = TEXTHEAD
                SAVEMODE_DIRECT = 'X'
           TABLES
                LINES           = TEXTTAB
           EXCEPTIONS
                OTHERS          = 5.
    ENDFORM

  • EXIT_SAPLVEDA_001 : Delivery block at line item : Error - No LIFSP field

    Hello EDI Experts,
    I have a problem.
    I am trying to place a delivery block @ line item level. (VBEP-LIFSP)
    I am using the structure dxvbep.
    But it's giving me an error say
    the object zxvbep does not have any component "LIFSP"
    How should I place a delivery block @ line item level.
    Thanks,
    Matt

    Look into the Include: LVEDAF5A that is the only place where this exit is hit... double click on the Structures and look which structure has billling block field.. and use that..
    FORM CUSTOMER_FUNCTION_IDOC USING IDOC_DATA.
      CALL CUSTOMER-FUNCTION '001'
        EXPORTING SEGMENT = IDOC_DATA
                  DVTCOMAG = VTCOMAG
                  DXMESCOD = IDOC_CONTRL-MESCOD
                  CONTRL   = IDOC_CONTRL
        TABLES    DXBDCDATA = BDCDATA
                  DXVBAP    = XVBAP
                  DXVBEP    = XVBEP
                  DYVBEP    = YVBEP
                  DXVBADR   = XVBADR
                  DYVBADR   = YVBADR
                  DXVBPA    = XVBPA
                  DXVBUV    = XVBUV
                  DD_FLAG_P = D_FLAG_P
                  DXKOMV    = XKOMV
                  DXVEKP    = XVEKP
                  DYVEKP    = YVEKP
        CHANGING  DXVBAK   = XVBAK
                  DD_FLAG_K = D_FLAG_K
        EXCEPTIONS
                  USER_ERROR = 01.
    If you are in ECC6.0  you can also use Enhancement point : INTERPRET_IDOC_ORDERS_01 SPOTS ES_SAPLVEDA. in include: LVEDAF2U

  • How to populate IDOC segments...

    Hello Experts,
    I was just tasked to add new fields in an IDOC segment. My question is, how do I populate
    those newly created fields? The data will be coming from a purchase order.
    Thank you guys and take care!

    Hi,
    U cannot edit the existing segment u have to create a zsegment with the fields and then under the main segment u have to add this new segment..also u have create a extended idoc in ur case...then only u can add this new segment..also once u  create  a segment u have to release it...
    u have to write the code in the userexit only...
    check the sample code which i have done for my requirement for sales order..
    *&  Include           ZXVEDU02
    Program:        Function Module:EXIT_SAPLVEDC_002     Creation Date: 12-04-2006          *
    Program Type  : Outbound IDOC Enhancement                                                *
    Program Description:OutBound IDOC Enhancement                                            *
    Modification ID:001                                                                      *
    Date         : 25-05-2006                                                                *
    Description  : 1.The sales organization master data needs to be sent as supplier party
                     details.New segment ZZSALORG is created and attached to the parent
                     segment E1EDK01
                   2.Data required to be sent are:
                      1.NAME1- Sales organization name
                      2.STRAS- Address
                      3.TELFX- Fax number
                      4.TELF1- phone number.
                   3.ZZSALORG is filled with the above information.
    Modification ID:002                                                                      *
    Date         : 09-06-2006                                                                *
    Description  : A new field zstceg added to the segment zzdochdr and it was populated     *
                    by selecting stceg field from Kna1 table                                 *
    Modification ID:001                                                                      *
    Date         : 15-06-2006                                                                *
    Description  : 1.New segment ZZE1EDP01 is created and attached to the parent segment E1EDP01
                   2.Data required to be sent are:
                      1.POSEX- Item number
                      2.UEBTO- Overdelivery tolerance
                      3.UNTTO- Underdelivery tolerance
                   3.ZZE1EDP01 is filled with the above information.
    *-- Data Declaration--
    *-- Constant Declaration--
    CONSTANTS: c_1(1)          TYPE c VALUE '1',
               c_langu         LIKE t005t-spras VALUE 'E',
               c_parvw         LIKE vbpa-parvw VALUE 'RG',
               c_e1edk01(7)    TYPE c VALUE 'E1EDK01',
               c_e1edk02(7)    TYPE c VALUE 'E1EDK02',
               c_e1edk17(7)    TYPE c VALUE 'E1EDK17',
               c_e1edka1(7)    TYPE c VALUE 'E1EDKA1',
               c_e1edk14(7)    TYPE c VALUE 'E1EDK14',
               c_004(3)        TYPE c VALUE '004',
               c_001(3)        TYPE c VALUE '001',
               c_002(3)        TYPE c VALUE '002',
               c_re(2)         TYPE c VALUE 'RE',
               c_we(2)         TYPE c VALUE 'WE',
               c_ag(2)         TYPE c VALUE 'AG',
               c_0010(4)       TYPE c VALUE '0010',
               c_zzdochdr(8)   TYPE c VALUE 'ZZDOCHDR',
               c_ze1edk02(8)   TYPE c VALUE 'ZE1EDK02',
               c_zze1edk17(9)  TYPE c VALUE 'ZZE1EDK17',
               c_zze1edka1(9)  TYPE c VALUE 'ZZE1EDKA1',
               c_pe(2)         TYPE c VALUE 'PE',
               c_y(1)          TYPE c VALUE 'Y',
               c_zze1email(9)  TYPE c VALUE 'ZZE1EMAIL',
               c_zzsalorg(8)   TYPE c VALUE 'ZZSALORG',
               c_zze1edp01(9)  TYPE c VALUE 'ZZE1EDP01',
               c_e1edp01(7)   TYPE c VALUE 'E1EDP01'.
    *-- Variables Declaration--
    DATA: lv_vbeln   LIKE vbak-vbeln,
          lv_country LIKE t005t-landx,
          lv_text1   LIKE t042z-text1,
          lv_vzskz   LIKE knb1-vzskz,
          lv_inco    LIKE tinct-bezei,
          lv_cadnr   LIKE akkp-cadnr,
          lv_pernr   LIKE pa0105-pernr,
          lv_parvw   LIKE tpar-parvw,
          lv_adrnr   LIKE tvko-adrnr,
          lv_zinso   LIKE t056z-zinso,
    Begin of Mod-002
          lv_stceg   TYPE stceg.
    End of Mod-002
    Begin of MOD-003
         lv_min_tol TYPE KWMENG,
         lv_max_tol TYPE KWMENG.
    End Of MOD-003
    TYPES:BEGIN OF t_vbfa,
            vbelv LIKE vbfa-vbeln,
            erdat TYPE erdat,
          END OF t_vbfa.
    DATA: i_akkp TYPE akkp.
    *-- WorkArea Declaration--
    DATA : wa_zdochdr   TYPE  zzdochdr,
           wa_ze1edk02  TYPE  zze1edk02,
           wa_ze1edk17  TYPE  zze1edk17,
           wa_zze1email TYPE  zze1email,
           wa_zzsalorg  TYPE  zzsalorg,
           wa_zze1edp01 TYPE  zze1edp01,
           wa_e1edk02   TYPE  e1edk02,
           wa_e1edk17   TYPE  e1edk17,
           wa_e1edka1   TYPE  e1edka1,
           wa_e1edk01   TYPE  e1edk01,
           wa_e1edp01   TYPE  e1edp01,
           wa_adrc      TYPE  adrc,
           wa_pa0105    TYPE  pa0105,
           wa_zze1edka1 TYPE  zze1edka1,
           wa_zzdochdr  TYPE  zzdochdr,
           wa_vbfa      TYPE  t_vbfa,
           wa_vbpa      TYPE  vbpa.
    *-- Move data to ZZDOCHDR Segment--
    CASE int_edidd-segnam.
      WHEN c_e1edk01.
        MOVE int_edidd-sdata TO wa_e1edk01.
    *--Begin of MOD001+(Modification ID 001)--
    *-- Filling of ZZSALORG segment--
        SELECT SINGLE adrnr
        FROM tvko
        INTO lv_adrnr
       WHERE vkorg EQ dxvbak-vkorg.
        IF sy-subrc EQ 0.
          SELECT SINGLE *
                   FROM adrc
                   INTO wa_adrc
                  WHERE addrnumber EQ lv_adrnr.
          wa_zzsalorg-salorg  = dxvbak-vkorg.
          wa_zzsalorg-name1   = wa_adrc-name1.
          wa_zzsalorg-name2   = wa_adrc-name2.
          wa_zzsalorg-stras   = wa_adrc-street.
          wa_zzsalorg-telf1   = wa_adrc-tel_number.
          wa_zzsalorg-telfx   = wa_adrc-fax_number.
          wa_zzsalorg-land1   = wa_adrc-country.
          wa_zzsalorg-strs2   = wa_adrc-str_suppl1.
          wa_zzsalorg-street2 = wa_adrc-str_suppl2.
          wa_zzsalorg-street3 = wa_adrc-str_suppl3.
          wa_zzsalorg-ort01   = wa_adrc-city1.
          wa_zzsalorg-pstlz   = wa_adrc-post_code1.
          wa_zzsalorg-regio   = wa_adrc-region.
          int_edidd-segnam = c_zzsalorg.
          CLEAR int_edidd-sdata.
          MOVE wa_zzsalorg TO int_edidd-sdata.
          APPEND int_edidd.
          CLEAR: wa_adrc,
                 wa_zzsalorg.
        ENDIF.
    *--End of MOD001+(Modification ID 001)--
        SELECT SINGLE text1
                 FROM t042z
                 INTO lv_text1
                 WHERE land1 EQ dxvbpa-land1
                   AND zlsch EQ dxvbkd-zlsch.
        READ TABLE dxvbpa INTO wa_vbpa WITH KEY vbeln = dxvbpa-vbeln
                                          parvw = c_parvw.
        IF sy-subrc EQ 0.
    Begin of Mod-002
          SELECT SINGLE stceg
          FROM kna1
          INTO lv_stceg
           WHERE kunnr = wa_vbpa-kunnr.
    End of Mod-002
          SELECT SINGLE vzskz
                   FROM knb1
                   INTO lv_vzskz
                   WHERE kunnr EQ wa_vbpa-kunnr
                     AND bukrs EQ dxvbak-bukrs_vf.
          IF sy-subrc EQ 0.
            SELECT SINGLE zinso
                     FROM t056z
                     INTO lv_zinso
                     WHERE vzskz EQ lv_vzskz
                       AND waers EQ wa_e1edk01-curcy.
            wa_zzdochdr-zdoctitle  = dobject-objky.
            wa_zzdochdr-zdate      = dobject-erdat.
            wa_zzdochdr-zmestyp    = dobject-kschl.
            wa_zzdochdr-zmedium    = dobject-nacha.
            wa_zzdochdr-zlang      = dobject-spras.
            wa_zzdochdr-zttype     = dxvbkd-kdkg1.
            wa_zzdochdr-zpaymethod = dxvbkd-zlsch.
            wa_zzdochdr-zpaytext   = lv_text1.
            wa_zzdochdr-zintonpymt = lv_zinso.
    Begin of Mod-002
            wa_zzdochdr-zstceg     = lv_stceg.
    End of Mod-002
            int_edidd-segnam = c_zzdochdr.
            CLEAR int_edidd-sdata.
            MOVE wa_zzdochdr TO int_edidd-sdata.
            APPEND int_edidd.
            CLEAR : wa_zzdochdr.
          ENDIF.
        ENDIF.
    *-- Move data to ZZE1EDK02 Segment--
      WHEN c_e1edk02.
        MOVE int_edidd-sdata TO wa_e1edk02.
        IF wa_e1edk02-qualf EQ c_004.
          SELECT SINGLE vbelv FROM vbfa INTO wa_vbfa
                             WHERE vbeln EQ lv_vbeln
                             AND   vbtyp_v EQ 'B'.
          IF sy-subrc EQ 0.
            SELECT SINGLE erdat FROM vbak INTO wa_vbfa
            WHERE vbeln EQ wa_vbfa-vbelv.
            int_edidd-segnam = c_ze1edk02.
            CLEAR int_edidd-sdata.
            MOVE wa_vbfa TO int_edidd-sdata.
            APPEND int_edidd.
            CLEAR wa_vbfa.
          ENDIF.
        ENDIF.                                  " IF ended for "IF wa_e1edk02-qualf = '004'" condition.
    **-- Move data to ZZE1EDK17 Segment--
      WHEN c_e1edk17.
        MOVE int_edidd-sdata TO wa_e1edk17.
        IF NOT dxvbkd-lcnum IS INITIAL.
          SELECT SINGLE inco1
                        inco2
                   FROM akkp
                   INTO i_akkp
                  WHERE lcnum EQ dxvbkd-lcnum.
          IF sy-subrc EQ 0.
            IF wa_e1edk17-qualf EQ c_001.
              wa_ze1edk17-lkond = i_akkp-inco1.
              wa_ze1edk17-qualf = wa_e1edk17-qualf.
              SELECT SINGLE bezei
                       FROM tinct
                       INTO lv_inco
                      WHERE spras EQ 'E'
                        AND inco1 EQ i_akkp-inco1.
              IF sy-subrc EQ 0.
                wa_ze1edk17-lktext = lv_inco.
              ENDIF.
            ELSEIF wa_e1edk17-qualf EQ c_002.
              wa_ze1edk17-qualf = wa_e1edk17-qualf.
              wa_ze1edk17-lktext = i_akkp-inco2.
            ELSE.
            ENDIF.
            int_edidd-segnam = c_zze1edk17.
            CLEAR int_edidd-sdata.
            MOVE wa_ze1edk17 TO int_edidd-sdata.
            APPEND int_edidd.
            CLEAR wa_ze1edk17.
          ENDIF.
        ENDIF.                                       " IF ended for not initial condition.
    *--Move data to zze1edka1 Segment--
      WHEN c_e1edka1.
        MOVE int_edidd-sdata TO wa_e1edka1.
    *--Checking the wa_e1edka1-parvw field for 'RE'--
        IF wa_e1edka1-parvw EQ c_re.
          IF NOT dxvbkd-lcnum IS INITIAL.
            SELECT SINGLE cadnr
             FROM akkp
             INTO lv_cadnr
            WHERE lcnum EQ dxvbkd-lcnum.
            IF sy-subrc EQ 0.
              SELECT SINGLE *
                       FROM adrc
                       INTO wa_adrc
                      WHERE addrnumber EQ lv_cadnr.
              wa_zze1edka1-parvw = wa_e1edka1-parvw.
              wa_zze1edka1-partn = wa_e1edka1-partn.
              wa_zze1edka1-land1 = wa_adrc-country.
              wa_zze1edka1-name1 = wa_adrc-name1.
              wa_zze1edka1-name2 = wa_adrc-name2.
              wa_zze1edka1-stras = wa_adrc-street.
              wa_zze1edka1-strs2 = wa_adrc-str_suppl1.
              wa_zze1edka1-ort01 = wa_adrc-city1.
              wa_zze1edka1-pstlz = wa_adrc-post_code1.
              wa_zze1edka1-regio = wa_adrc-region.
              int_edidd-segnam = c_zze1edka1.
              CLEAR int_edidd-sdata.
              MOVE wa_zze1edka1 TO int_edidd-sdata.
              APPEND int_edidd.
              CLEAR: wa_adrc,
                     wa_zze1edka1.
            ENDIF.
          ENDIF.
        ENDIF.                                               " IF ended for "IF wa_e1edka1-parvw EQ 'RE'" condition.
    *--Checking the wa_e1edka1-parvw field for 'WE'--
        IF wa_e1edka1-parvw EQ c_we.
          IF NOT dxvbkd-lcnum IS INITIAL.
            SELECT SINGLE cadnr
              FROM akkp
              INTO lv_cadnr
             WHERE lcnum EQ dxvbkd-lcnum.
            IF sy-subrc EQ 0.
              SELECT SINGLE *
                       FROM adrc
                       INTO wa_adrc
                      WHERE addrnumber EQ lv_cadnr.
              wa_zze1edka1-parvw = wa_e1edka1-parvw.
              wa_zze1edka1-partn = wa_e1edka1-partn.
              wa_zze1edka1-land1 = wa_adrc-country.
              wa_zze1edka1-name1 = wa_adrc-name1.
              wa_zze1edka1-name2 = wa_adrc-name2.
              wa_zze1edka1-stras = wa_adrc-street.
              wa_zze1edka1-strs2 = wa_adrc-str_suppl1.
              wa_zze1edka1-ort01 = wa_adrc-city1.
              wa_zze1edka1-pstlz = wa_adrc-post_code1.
              wa_zze1edka1-regio = wa_adrc-region.
              int_edidd-segnam = c_zze1edka1.
              CLEAR int_edidd-sdata.
              MOVE wa_zze1edka1 TO int_edidd-sdata.
              APPEND int_edidd.
              CLEAR: wa_adrc,
                     wa_zze1edka1.
            ENDIF.
          ENDIF.
        ENDIF.                                             " IF ended for "IF wa_e1edka1-parvw EQ 'WE'" condition.
    *--Checking the wa_e1edka1-parvw field for 'AG'--
        IF wa_e1edka1-parvw EQ c_ag.
          IF NOT dxvbkd-lcnum IS INITIAL.
            SELECT SINGLE cadnr
              FROM akkp
              INTO lv_cadnr
             WHERE lcnum EQ dxvbkd-lcnum.
            IF sy-subrc EQ 0.
              SELECT SINGLE *
                       FROM adrc
                       INTO wa_adrc
                      WHERE addrnumber EQ lv_cadnr.
              wa_zze1edka1-parvw = wa_e1edka1-parvw.
              wa_zze1edka1-partn = wa_e1edka1-partn.
              wa_zze1edka1-land1 = wa_adrc-country.
              wa_zze1edka1-name1 = wa_adrc-name1.
              wa_zze1edka1-name2 = wa_adrc-name2.
              wa_zze1edka1-stras = wa_adrc-street.
              wa_zze1edka1-strs2 = wa_adrc-str_suppl1.
              wa_zze1edka1-ort01 = wa_adrc-city1.
              wa_zze1edka1-pstlz = wa_adrc-post_code1.
              wa_zze1edka1-regio = wa_adrc-region.
              int_edidd-segnam = c_zze1edka1.
              CLEAR int_edidd-sdata.
              MOVE wa_zze1edka1 TO int_edidd-sdata.
              APPEND int_edidd.
              CLEAR: wa_adrc,
                     wa_zze1edka1.
            ENDIF.
          ENDIF.                                       " IF ended for "IF NOT dxvbkd-lcnum IS INITIAL" condition.
        ENDIF.                                         " IF ended for "IF wa_e1edka1-parvw EQ c_ag" condition.
    *--Checking the wa_e1edka1-parvw field for 'Y'--
        IF wa_e1edka1-parvw+0(1) EQ c_y.
          SELECT SINGLE parvw
                  FROM  tpar
                  INTO  lv_parvw
                  WHERE parvw EQ wa_e1edka1-parvw
                    AND nrart EQ c_pe.
          IF sy-subrc EQ 0.
            SELECT SINGLE pernr
              FROM vbpa
              INTO lv_pernr
              WHERE vbeln EQ dxvbpa-vbeln
              AND   parvw EQ lv_parvw.
            IF sy-subrc EQ 0.
              SELECT SINGLE usrid_long
               FROM pa0105
               INTO wa_pa0105-usrid_long
               WHERE  pernr EQ lv_pernr
                 AND usrty EQ c_0010.    " communication type email
              wa_zze1email-zparvw  = wa_e1edka1-parvw.
              wa_zze1email-zname   = wa_e1edka1-name1.
              wa_zze1email-zemail  = wa_pa0105-usrid_long.
              int_edidd-segnam = c_zze1email.
              CLEAR int_edidd-sdata.
              MOVE wa_zze1email TO int_edidd-sdata.
              APPEND int_edidd.
              CLEAR: wa_adrc,
                     wa_zze1email,
                     wa_pa0105.
            ENDIF.
          ENDIF.
        ENDIF.                              " IF ended for "IF wa_e1edka1-parvw EQ 'Y'" condition.
    *--Begin of MOD003 (Modification ID 003)--
    *-- Move data to ZZE1EDP01 Segment--
      WHEN c_e1edp01.
        MOVE int_edidd-sdata TO wa_e1edp01.
        wa_zze1edp01-posex = wa_e1edp01-posex.
         wa_zze1edp01-uebto = dxvbap-kwmeng + ( dxvbap-kwmeng * dxvbap-uebto / 100 ).
         wa_zze1edp01-untto = dxvbap-kwmeng - ( dxvbap-kwmeng  * dxvbap-untto / 100 ).
        wa_zze1edp01-uebto = dxvbap-uebto.
        wa_zze1edp01-untto = dxvbap-untto.
        int_edidd-segnam = c_zze1edp01.
        CLEAR int_edidd-sdata.
        MOVE wa_zze1edp01 TO int_edidd-sdata.
        APPEND int_edidd.
        CLEAR: wa_zze1edp01.
    *--End of MOD003 (Modification ID 003)--
      WHEN OTHERS.
    ENDCASE.
    Regards,
    Nagaraj

  • Filling custom VBAK field in user exit EXIT_SAPLVEDA_001

    Hai Experts,
    I created code and activated the user exit EXIT_SAPLVEDA_001.
    Via an iDoc i want to fill a custom field which is in VBAK.
    EXIT_SAPLVEDA_001 has an changing parameter type dxvbak, after user exit is triggered for the right segment, the custom field is not update in the database tabels!.
    Do i need to take further action?!
    Code below
    *&  Include           ZXVEDU03
    DATA: BEGIN OF lw_dxvbak.                  "Kopfdaten
            INCLUDE STRUCTURE vbak.
    DATA:  bstkd LIKE vbkd-bstkd.
    *DATA:  KURSK(8)   TYPE C.
    DATA:  kursk LIKE vbkd-kursk.          "Währungskurs
    DATA:  zterm LIKE vbkd-zterm.          "Zahlungsbedingungsschlüssel
    DATA:  inco1 LIKE vbkd-inco1.          "Incoterms Teil 1
    DATA:  inco2 LIKE vbkd-inco2.          "Incoterms Teil 2
    DATA:  prsdt LIKE vbkd-prsdt.          "Datum für Preisfindung
    DATA:  angbt LIKE vbak-vbeln.          "Angebotsnummer Lieferant (SAP)
    DATA:  contk LIKE vbak-vbeln.          "Kontraknummer Lieferant (SAP)
    DATA:  kzazu LIKE vbkd-kzazu.          "Kz. Auftragszusammenführung
    DATA:  fkdat LIKE vbkd-fkdat.          "Datum Faktura-/Rechnungsindex
    DATA:  fbuda LIKE vbkd-fbuda.          "Datum der Leistungserstellung
    DATA:  empst LIKE vbkd-empst.          "Empfangsstelle
    DATA:  valdt LIKE vbkd-valdt.          "Valuta-Fix Datum
    DATA:  kdkg1 LIKE vbkd-kdkg1.          "Kunden Konditionsgruppe 1
    DATA:  kdkg2 LIKE vbkd-kdkg2.          "Kunden Konditionsgruppe 2
    DATA:  kdkg3 LIKE vbkd-kdkg3.          "Kunden Konditionsgruppe 3
    DATA:  kdkg4 LIKE vbkd-kdkg4.          "Kunden Konditionsgruppe 4
    DATA:  kdkg5 LIKE vbkd-kdkg5.          "Kunden Konditionsgruppe 5
    DATA:  delco LIKE vbkd-delco.          "vereinbarte Lieferzeit
    DATA:  abtnr LIKE vbkd-abtnr.          "Abteilungsnummmer
    DATA:  dwerk LIKE rv45a-dwerk.         "disponierendes Werk
    DATA:  angbt_ref LIKE vbkd-bstkd.      "Angebotsnummer Kunde (SAP)
    DATA:  contk_ref LIKE vbkd-bstkd.      "Kontraknummer Kunde  (SAP)
    DATA:  currdec LIKE tcurx-currdec.     "Dezimalstellen Währung
    DATA:  bstkd_e LIKE vbkd-bstkd_e.      "Bestellnummer Warenempfänger
    DATA:  bstdk_e LIKE vbkd-bstdk_e.      "Bestelldatum Warenempfänger
    DATA: END OF lw_dxvbak.
    CASE segment-segnam.
      WHEN 'ZE1EDK18' . " Name of customer segment
        MOVE segment-sdata TO ze1edk18.
        lw_dxvbak-zkostl = ze1edk18-zkostl.
        MOVE lw_dxvbak TO dxvbak.
    ENDCASE.
    Edited by: Richard van Veen on Mar 9, 2011 1:43 PM

    Filled dxbdcdata with following values!
    DATA lw_dxbdcdata LIKE LINE OF dxbdcdata.
    CASE segment-segnam.
      WHEN 'ZE1EDK18' . " Name of customer segment
        MOVE segment-sdata TO ze1edk18. " Data receives structure
        lw_dxvbak-zkostl = ze1edk18-zkostl. " Copy to application table
        MOVE lw_dxvbak TO dxvbak.
        lw_dxbdcdata-program = 'SAPMV45A'.
        lw_dxbdcdata-dynpro = '0101'.
        lw_dxbdcdata-dynbegin = 'X'.
        lw_dxbdcdata-fnam = 'ZKOSTL'.
        lw_dxbdcdata-fval = ze1edk18-zkostl.
        append lw_dxbdcdata to dxbdcdata.
    ENDCASE.

  • IDOC_EXIT

    HI ,
    Please kindly give me the solution.
    i have data in idoc basic type orders03.
    segments : e1edk02-belnr purchase ordernumber,
    e1edp01-posex purchase order item,
    e1edp01-menge quantity.
    my rquairment is:
    1) i have to get the Sales order number and sales order item from vbfa.
    2)i have to get the quantity from the vbep for this sales order.
    3)i need to pass these values to the exact fields of internal tables in the funcion moudle EXIT_SAPLVEDB_001.
    BUT i am not able to get this.
    i am writing the code in include ZXVDBU01.
    PLEASE SEND NE THE CODE .
    IT IS VERY VERY URGENT.
    Kindly can any one help me.
    Thanks in Advance.
    Thanks&Regards.
    Ramu.

    Hi ramu,
      Your FM EXIT_SAPLVEDB_001 is nothing but the first user exit triggered, if you can do a where-used-list you will understand. Now the FM has VBAK, VBAP, VBEP, VBPA etc filled with different names DXVBAK,DXVBAP, DIVBEP, DXVBPA etc.You can take these values & populate in your code & modify the data.
    For example in your Include ZXVDBU01.
    Use case.
    CASE SEGMENT-SEGNAM.
      WHEN 'E1EDK02'. 
      MOVE YOUR VALUES HERE...
    ENDCASE.
    Message was edited by: Phani Kiran Nudurupati

  • Function exit

    Hi All,
    Can any one give me sample coding for my requairment.
    my requairment as follows:
    E1EDK01     SEGMENT          Constant     1
    E1EDK02     SEGMENT          Constant     1
    E1EDK02     BELNR     Idoc document number     File      PO Number
    E1EDP01     SEGMENT          Constant     1
    E1EDP01     POSEX     Item Number     File      Line Item Number
    E1EDP01     MENGE     Quantity     File      Item Quantity
    E1EDP20     SEGMENT          Constant     1
    E1EDP20     EDATU     Date     File     Delivery Date
    E1EDP19     SEGMENT          Constant     1
    E1EDP19     QUALF     Object Identification for customer material number     Constant     001
    E1EDP19     IDTNR     Material ID     File     Material Number
    i have data in above segments,
    FUNCTION EXIT_SAPLVEDB_001.
    ""Lokale Schnittstelle:
    *"       IMPORTING
    *"             VALUE(SEGMENT) LIKE  EDIDD STRUCTURE  EDIDD OPTIONAL
    *"             VALUE(DXMESCOD) LIKE  EDIDC-MESCOD OPTIONAL
    *"             VALUE(CONTRL) LIKE  EDIDC STRUCTURE  EDIDC OPTIONAL
    *"       TABLES
    *"              DXVBAP OPTIONAL
    *"              DIVBEP OPTIONAL
    *"              DXVBADR OPTIONAL
    *"              DXVBPA STRUCTURE  VBPAVB OPTIONAL
    *"              DD_FLAG_P OPTIONAL
    *"              DXKOMV OPTIONAL
    *"              DXBDCDATA STRUCTURE  BDCDATA OPTIONAL
    *"       CHANGING
    *"             VALUE(DXVBAK) OPTIONAL
    *"             VALUE(DD_FLAG_K) OPTIONAL
    *"       EXCEPTIONS
    *"              USER_ERROR
      INCLUDE ZXVDBU01.
    ENDFUNCTION.
    in above include zxvdbu01 in need implement the code.
    1)i need to retrieve the sales order number and item(from table VBFA) based on the ponumber and item which is in segments.
    2)based on the sales order and item i need to get the wmeng(quantity field from vbep) and i need to pass this wmeng to internal table IVBEP.
    CAN ANY ONE GIVE ME CODING ON THIS .
    Thanks in Advance.
    Thanks&Regards.
    Ramu

    Hi!
    I try to exit a function when it gets an IOException
    Error, but I don't know how to do that....
    public void newfunct() {
    try {
    } catch (IOException e) {
    ....do some error handling.....
    here should be a command to exit the function
    Thanks
    Chris MaierYou could have newfunct() throw an IOException and have the calling method do the try{}catch()
    i.e.
    public void newfunct() throws IOException{
    //Your code
    //calling method
    pubic void caller(){
    try{
    newfunct();
    }catch(IOException){
    //handle excption
    //continue with rest of code
    method2();
    method3();

  • Issue in inbound Idoc

    Hi Experts,
    I have one issue inbound idoc, actually we have 4 zfields, durring inbound process this 4 fields getting the records as well as its showing the correct values in we05. Even the idoc also getting success. But in the sales order its not showing the values. I debugged the program, its getting the value and showing the value in idoc.
    Can anyone help that why its not showing the records in particualr screen in sales order?
    The four fields are date related fields.
    Anyone suggest me what we need todo?
    Mohana

    *Populate work area with custom date fields
            lwa_vbak_date-zzdate3 = lwa_zgvsa_e1edk03-zzreqshipdt.
            lwa_vbak_date-zzdate4 = lwa_zgvsa_e1edk03-zzshipnltdt.
             lwa_vbak_date-ZZCAN_DATE = lwa_zgvsa_e1edk03-zzcindbydt.
            lwa_vbak_date-zzdate6 = lwa_zgvsa_e1edk03-zzddelaftdt.
    *Move work area to DXVBAK
            MOVE-CORRESPONDING lwa_vbak_date TO dxvbak.
    Its taking the value and showing the value in IDoc, but not showing in the screen.
    Pls guide us.
    Mohana

Maybe you are looking for

  • Did you know that your Internet Explorer is out of date?

    Hello there, when i access this site http://www.sickkids.ca/ , I am getting this error message, please advice. Did you know that your Internet Explorer is out of date? To get the best possible experience using our website we recommend that you upgrad

  • Am i able to charge my ipad (while in use) on board SQ economy class?

    Am i able to charge my ipad (while in use) on board SQ economy class? Do I have to buy an adapter or a different travel plug? As i will be departing Singapore for London, i hope i can use my Ipad throughout the journey.

  • Why am I suddenly getting error messages when updating the vault?

    Hi, I would greatly appreciate any advice anyone here can offer of how to correct a problem that started recently. I've updated the vault for Aperture successfully many times before, but now, when I attempt to update the vault I've started receiving

  • How to extract data into excel file from more than one internal table

    Hi Guys              I want to extract the data from module pool screen.              In screen there are two internal tables                   1. header                   2. items.              I want to extract the data as same format looking in th

  • SYSTEM tablespace extend issue

    Hello, I am migrating from 8.1.7 to 9i and I got following error: ORA-1652: unable to extend temp segment by 3200 in tablespace SYSTEM As part of migration I added a new data file to system with 100 MB. So in total I have 250 MB of SYSTEM tablespace.