UserExit - EXIT_SAPLVEDF_002 / Include ZXEDFU02

Hi,
I had used this include to populate my custom segment. Its working perfectly in Development. But when moved to Quality the code does not work, I process the billing document using transaction VF02. But works fine in Debug mode in Quality. It is some what goofy.
I am not sure why the Idoc get populated correctly(with custom segment) when processed in debug mode but not in regular process(custom segment is missing). I have checked all the Transport logs. The enhancement and project everything is active.
It looks like simple thing I am missing.
But could not figure out whether its something to do with Basis or not?
If anyone had the similar situation before please suggest me.
Thanks!
Raja

Hi Raja,
        As your program seems to be running fine in the debug mode in Quality there certainly seems to be a problem in the population of IDOC segment.Check out whether the custom segment that you have mentioned is actually included into the IDOC structure and check whether the custom segment is in the released state.As you have mentioned even if the project and the exit is active and your custom segment is not released then it would not work when transported further.Get back if you still have a problem.
Cheers
Nishanth

Similar Messages

  • Finding userexit using include name

    Hi,
    can anyone tell me how to find out userexit using the include name.
    very urgent...
    Regards,
    Amal

    hi
    Re: How to find an EXIT with the Include name ?
    if helpful, reward
    Sathish.R

  • Extend Idoc INVOICE02 - User exit ZXEDFU02

    Hi All,
    I am trying to extend a standard Idoc – <b>INVOICE02</b> with custom segment. I am trying to implement enhancement “LVEDF001” and FM “EXIT_SAPLVEDF_002”. But when I try to insert a program logic into program “ZXEDFU02” it complains “Statement not accessible” I am not sure what I am doing wrong here. Have anyone used this enhancement and any ideas?
    Sample code will be very helpful, since this is the first time I am working on Idoc enhancement. Thank in advance.
    Regards,
    Tim

    Saple Code:
      INCLUDE ZXEDFU02                                                   *
           data: ls_ka1 like e1edka1,
               ls_edidd like edidd,
               l_lines type i.
         describe table int_edidd lines l_lines.
         check l_lines ne 0.
         read table int_edidd into ls_edidd index l_lines.
         check ls_edidd-segnam eq 'E1EDKA1'  and
               ls_edidd-sdata(2) eq 'RS'.
         ls_ka1-parvw = 'ZC'.
         case xvbdkr-bukrs.
           when '1000'.
             ls_ka1-lifnr = '41010005823845840'.
           when others.
             exit.
         endcase.
         ls_edidd-sdata = ls_ka1.
         append ls_edidd to int_edidd.

  • Restricting user exit ZXEDFU02 to one customer in WE20

    I'm new to SAP. I've just written a code in user exit 002 (include zxedfu02) for the bill-to party invoice IDOC generation (FUNCTION IDOC_OUTPUT_INVOIC). My code is working perfectly. The only problem is I would like to restrict the use of this user exit to only one of my customers. From my understanding once I've programmed the user exit, every IDOC that is generated using IDOC_OUTPUT_INVOIC will perform my user exit, however I would like to be only executed for one partner. How do I do this?
    If possible, please post a step by step solution to my problem, I would really appreciate your help.
    Thanks in advance.
    Edited by: mrisad on Jul 29, 2010 4:21 PM

    Hello Mrisad,
    As per your input, your exit function module EXIT_SAPLVEDF_002 contains CONTROL_RECORD_OUT as the import parameter.
    Within your include please check the value of the following(which are the reciver related values) in the debugging mode.On top of your current code you can add this check, and include ur current code within this check.
    RCVPOR
    RCVPRT
    RCVPRN
    RCVSAD
    RCVSMN
    RCVSNA
    RCVSCA
    RCVSDF
    RCVSLF
    RCVLAD
    Hope this will help you..
    Regards,
    Antony Thomas

  • New include proram -user exit- sales order

    hi
    i have to create a new screen which has to be displayed as a pop up
    from the user exit "<u>userexit_save_document_prepare"</u> which is present in MV45AFZZ
    the processing logic for the screen should be written in include program which is to be included in the specified userexit.
    the include program which i created while syntax checking shows
    "include <u>prg-name</u> is not accesible".
    why this is occuring.
    Another question is whether can i write the modules for pbo,pai and the subroutines i.e form & end-form all in the include program which iam creating.
    It is showing incorrect nesting. write end-form for the form before moduele.
    whether i have to write PBO,PAI,subroutines in independent include programs.
    Please give reply ASAP.

    in that case then
    call like this
    perform check (in program).
    <b>what i am thinking is THIS program in Update Mode may be bcos of that.</b>
    Regards
    prabhu
    Message was edited by:
            Prabhu Peram

  • Adding lines to segment of Idoc in User Exit ZXEDFU02

    Hi!
    do I need to maintain Idoc in WE30 if I need to add some lines to one segment in User Exit ZXEDFU02?
    Here is my sample code placed in ZXEDFU02 for adding a line, but it is not making an effect:
    WHEN 'E1EDP01'.
        CLEAR E1EDP26.
        E1EDP26-QUALF = '003'.
        E1EDP26-BETRG = 777.
    or maybe it depends on Idoc that I use in We19?
    For example, if Idoc that I use in WE19 for testing my User Exit does not has qualifier 003 in segment E1EDP26... could it be a reason?
    Will reward,
    Mindaugas.

    Hi,
           Saple Code:
    INCLUDE ZXEDFU02 *
    data: ls_ka1 like e1edka1,
    ls_edidd like edidd,
    l_lines type i.
    describe table int_edidd lines l_lines.
    check l_lines ne 0.
    read table int_edidd into ls_edidd index l_lines.
    check ls_edidd-segnam eq 'E1EDKA1' and
    ls_edidd-sdata(2) eq 'RS'.
    ls_ka1-parvw = 'ZC'.
    case xvbdkr-bukrs.
    when '1000'.
    ls_ka1-lifnr = '41010005823845840'.
    when others.
    exit.
    endcase.
    ls_edidd-sdata = ls_ka1.
    append ls_edidd to int_edidd.
    Regards

  • Update was terminated in VF02.

    I have added two segments to the Invoice
    idoc INVOIC02 .
    In the user exit EXIT_SAPLVEDF_002 , inside
    Include ZXEDFU02 , i have another include
    by name include yxedfu02_us. inside this I
    have added the code to populate the two
    added segments for E1EDK01.
    Now i am facing a problem in creating or
    changing a billing document in VF01/VF02.
    I am entering data for output.
    I navigate to HEADER- OUTPUT in vf02.
    There i am giving YU10 (for EDI output).
    first problem is this YU10 is displayed
    with yellow status icon.
    secondly , when i save and come out and go
    into vf02 again for the same billing
    document it shows "Update was terminated".
    I went to Sm13 and found the error.
    <b>In the include where i have added the code , they have used a table INT_EDIDD. It
    shows an error while i check the include.
    it says INT_EDIDD does not exist as table or data. but if i double click on
    INT_EDIDD, it navigates to the userexit function module EXIT_SAPLVEDF_002  table declaration INT_EDIDD structure EDIDD.</b>I dont know where it goes wrong.
    Kindly help me in solving the problem.
    thanks in advance.
    suki.

    Hi,
    The table INT_EDIDD will only be recognized within the outer include zxedfu02.
    To access this from a subroutine in another include you must pass it to the subroutine using the tables statement.
    Darren

  • Customer Material Infomation Missing

    **Hello Friends,**
    **We have a scenario where we create Delivery without Referance to an Order and in the Invoice we see that Customer Material Information is not getting copied.In the Billing i see that it is taking referance from VBAP Table but in our case we don't have any referance to a Sales Order so it is not getting copied there. Is there any way we can make the changes in the copy control to make it appear in the Invoice as the Customer Material Information is already available in the Deliery document. This information is very vital for us as the Invoice Idocs should carry Customer Material Information which is not happening currently.*
    Customer Material Information  can be seen in the Invoice Item Tab -PO Data.
    Thanks in advance for your help
    Sunil

    The field on the invoice item PO data tab is VBAP-KDMAT.  It is a view to a non-existent sales order, so you cannot populate it with data on your type of invoice.
    HOWEVERu2026u2026you really need the CMIR data on the Idoc, right? 
    So use an invoice IDoc user exit to insert the appropriate segment. 
    My particular favorite exit for such things is INCLUDE ZXEDFU02, which is found in function module EXIT_SAPLVEDF_002.
    An Idoc type INVOIC02 should carry the customeru2019s material number in an E1EDP19 segment with qualifier QUALF=001.  Set up your exit to test for the existence of such a segment.  If it is not found, then query table KNMT for the KDMAT that you want and insert the new E1EDP19 segment at the appropriate index.

  • Best way to customize IDOC INVOIC02 (outbound)

    Hello,
    I want to customize the IDOC type INVOIC02 (outbound). Customize means:
    - remove segments
    - change some values
    I tried different ways to achive this, but it does not work as needed. What I tried:
    - IDOC extension: can not be used, because I can not remove segments
    - IDOC view: not possible for INVOIC02 (see sapnote 185445)
    - new IDOC type: I created a new IDOC type and copied all needed segments from INVOIC02. Now I want to use the existing function IDOC_OUTPUT_INVOIC, but it does not work. The IDOC gets status 26 (Syntax error, E1EDK17 does not exist). I do not want to rewrite the existing function. I think this would be the worst.
    - new idea (not tried yet): use the existing INVOIC02 and change, remove segments in the user-exit.
    Can someone help me and maybe give me hint?
    Thanks, best regards
    Andreas

    Hi Sasidhar,
    I am using EXIT_SAPLVEDF_002 now and it works like a charm. Thanks!
    This is my coding right now (maybe it helps someone reading this):
    *&  Include           ZXEDFU02                                         *
    *separate by partner
    CASE control_record_out-rcvprn.
    * Special customer
      WHEN '0000123456'.
    *   get segment
        CASE int_edidd-segnam.
    *     delete segments
          WHEN 'E1EDK17' OR
            'E1EDK23' OR
            'E1EDK28' OR
            'E1EDK29' OR
            'E1EDK14' OR
            'E1EDP03' OR
            'E1EDPA1' OR
            'E1EDP28' OR
            'E1EDP08' OR
            'E1EDP30'.
            DELETE TABLE int_edidd.
        ENDCASE.
    ENDCASE .
    Regards,
    Andreas

  • How to get the contract number selected on VA01.

    Hello Experts,
    While creating a sales order a contract number is selected.
    ie to which contract this SO is being created.
    We get a ALV list with list of contract number and we select one.
    But no where this contract number is displayed.
    I have a placed a input/output box on additional tab header leve of VA01.
    I need to display the contract number selected by the user for that sales order on to that box.
    and this should  happened the moment the user copies the contract number from the ALV list
    any functon exit or badi's which could be used to get the value.               
    right now iam using the include MV45AFZZ
    I know the table getting used.
    Thanks in advance.
    Regards,
    Ranjith

    You can put your code into the MOVE_FIELD_TO_VBAP userexit in include MV45AFZZ. The contract information is stored on item level (VBAP) in fields WKTNR (contract number) and WKTPS (contract item). If you can have more than one contract in a sales order you should display that information on item level rather than header level, if you always reference one contract only per sales order header should be fine.
    Hope that helps,
    Michael

  • PROBLEM IN BDC FOR WHILE CREATING PGI

    Hi All,
    I am using BDC program to Create PGI automatically from custom development program for CASHTILL . In Vl02n there is one Custom development screen '9999', it will be called when press POSTGOODSISSUE button in VL02n. I am filling this screen also Using BDC. This custom screen is called in USEREXIT SAPMV50A include mv50afz1 in USEREXIT_SAVE_DOCUMENT_PREPARE. This code will update one Custome Table.
    Problem is when i run BDC it's updatting the custom table,but it's not creating PGI,but when i run the secondtime my BDC program it's creating PGI. Please help me why i am getting this error? I pasted my code here,
    REPORT  YVL.
    DATA T_CODE(10) TYPE C VALUE 'VL02N'.
    DATA:  T_BDCDATA TYPE STANDARD TABLE OF BDCDATA     WITH HEADER LINE.
    DATA:  h_bdcdata  TYPE STANDARD TABLE OF BDCDATA     WITH HEADER LINE.
    DATA : L_DATE(10) TYPE C,
           L_DATE1(10) TYPE C.
    CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL'
       EXPORTING
         DATE_INTERNAL              = SY-DATUM
       IMPORTING
         DATE_EXTERNAL              = L_DATE1
       EXCEPTIONS
         DATE_INTERNAL_IS_INVALID   = 1
         OTHERS                     = 2.
    perform bdc_dynpro      using 'SAPMV50A' '4004'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'LIKP-VBELN'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=WABU_T'.
    perform bdc_field       using 'LIKP-VBELN'
                                  '80003504'.
    perform bdc_dynpro      using 'SAPLZSD_PROOF_DELIV' '9999'.
    perform bdc_field       using 'BDC_CURSOR'
                                  'ZSD_PROOF_DELIV-NAME_LAST'.
    perform bdc_field       using 'ZSD_PROOF_DELIV-NAME_FIRST'
                                  'cash'.
    perform bdc_field       using 'ZSD_PROOF_DELIV-NAME_LAST'
                                  'sales'.
    perform bdc_field       using 'ZSD_PROOF_DELIV-YSDATE'
                                  L_DATE1.
    perform bdc_field       using 'ZSD_PROOF_DELIV-YSTIME'
                                  '11:14:01'.
    perform bdc_field       using 'BDC_OKCODE'
                                  '=WABU_T'.
    COMMIT WORK.
    CALL TRANSACTION  T_CODE USING t_bdcdata.
    FORM bdc_dynpro USING program dynpro.
      CLEAR h_bdcdata.
      h_bdcdata-program  = program.
      h_bdcdata-dynpro   = dynpro.
      h_bdcdata-dynbegin = 'X'.
      APPEND h_bdcdata TO t_bdcdata.
    ENDFORM.                    "BDC_DYNPRO
    FORM bdc_field USING fnam fval.
      CLEAR h_bdcdata.
      h_bdcdata-fnam = fnam.
      h_bdcdata-fval = fval.
      APPEND h_bdcdata TO t_bdcdata.
    ENDFORM.                    "BDC_FIELD

    At first, I would suggest you try with VL02 Tcode rather doing for enjoy transactions.
    Updation of Z table should be sync with your PGI transaction. Here the INSERT/UPDATE should in PERFORM ON COMMIT so the both transaction and Z table will be in sync.
    what is the error you are getting for first time execution? Do you need commit work before call transaction?
    Regds
    Manohar

  • Problem about extended IDOC(urgent)

    Hi experts,
    i have idoctype,extended idoc,and one include.. i need modify that according to the requirement.. here i will give the idoctype and extended idoc type and include program .. please help me where exactly i need to do the change and what are the steps required for the requirement..
    Exact Requirement: Modify the program which populates the idoctype invoice02 and extension zinvoice02 , if netvalue is zero(vbrp-netwr = 0) then populate the idoc segment E1EDP01.E1EDP26 , BETRG WITH QUALF = # 011' WITH ZERO VALUE. curently segment is not populated.
    Please help me in this and explain the steps required for this.
    idoctype:invoice02
    extended idoc:zinvoice02
    include:ZXEDFU02
                                   Here i am giving the include program
    CASE dobject-kschl.
      WHEN 'ZGRI' OR 'ZGDF' OR 'ZGRN' OR 'ZGAE'.
        t_int_edidd[] = int_edidd[].
        t_xtvbdpr[] = xtvbdpr[].
        ta_xvbdkr = xvbdkr.
        CASE int_edidd-segnam.
          WHEN 'E1EDK01'.
            ta_e1edk01 = int_edidd-sdata.
            PERFORM get_shipment_data.
            PERFORM get_route_data.
            int_edidd[] = t_int_edidd[].
          WHEN 'E1EDP01'.
    Update segment E1EDP01
    1. Update field E1EDP01-PSTYP
    2. Accumulated net weight & quantity of batch split items against
    E1EDP01 segment of the main invoice item.
            ta_e1edp01 = int_edidd-sdata.
            i_tabix = sy-tabix.
            CLEAR: ta_e1edp02.                                  "DIAG01+
            PERFORM update_segment_e1edp01.
            MOVE ta_e1edp01 TO t_int_edidd-sdata.
            MODIFY t_int_edidd INDEX i_tabix TRANSPORTING sdata.
    Populate segment Z1EDP08
    Fields: ZZDESPACTY_A, ZZACTYUOM
            PERFORM validate_segment USING control_record_out-idoctp
                                      control_record_out-cimtyp
                                      'Z1EDP08'
                                CHANGING n_subrc.
            CHECK n_subrc EQ 0.
            PERFORM calc_invoice_item_zzdespacty_a.             "DIAG02+
            int_edidd[] = t_int_edidd[].                        "DIAG02+
          WHEN 'E1EDP02'.                                       "DIAG01+
            IF int_edidd-sdata(3) = '016'.                      "DIAG01+
              ta_e1edp02 = int_edidd-sdata.                     "DIAG01+
            ENDIF.                                              "DIAG01+
          WHEN 'E1EDP19'.
    Populate segment Z1EDL24
    Fields: Material Characteristics or Material Class '001'.
            PERFORM validate_segment USING control_record_out-idoctp
                                     control_record_out-cimtyp
                                     'Z1EDL24'
                                     CHANGING n_subrc.
            IF n_subrc EQ 0.
              ta_e1edp19 = int_edidd-sdata.
              CASE ta_e1edp19-qualf.
                WHEN '002'.
                  PERFORM get_mat_characteristic USING ta_e1edp19-idtnr.
                  PERFORM fill_segment_z1edl24.
                  int_edidd[] = t_int_edidd[].
                WHEN OTHERS.
              ENDCASE.
            ENDIF.
          WHEN 'E1EDP26'.
    Populate segment E1EDP26
    Fields: BETRG
            i_tabix = sy-tabix.
            ta_e1edp26 = int_edidd-sdata.
           IF ta_e1edp26-qualf = '001'. "Gross Price which is always present
              PERFORM fill_segment_e1edp26.
              int_edidd[] = t_int_edidd[].
            ENDIF.
          WHEN 'E1EDP08'.
    Populate Segment Z1EDL37                                             *
    Fields: Bespoke fields from Handling Unit (VEKP)
            PERFORM validate_segment USING control_record_out-idoctp
                                      control_record_out-cimtyp
                                      'Z1EDL37'
                                CHANGING n_subrc.
            CHECK n_subrc EQ 0.
            ta_e1edp08 = int_edidd-sdata.
            PERFORM fill_segment_z1edl37.
    Populate Segment Z1EDP08                                             *
    Fields: Total Despatch Activity                                      *
           PERFORM validate_segment USING control_record_out-idoctp
                                     control_record_out-cimtyp
                                     'Z1EDP08'
                               CHANGING n_subrc.
           CHECK n_subrc EQ 0.
           PERFORM calc_invoice_item_acty_total.
            int_edidd[] = t_int_edidd[].
          WHEN OTHERS.
        ENDCASE.
      WHEN 'ZGDW'.
    Line above added line below removed - Assyst 73789
    WHEN 'ZGIN'.
        t_int_edidd[] = int_edidd[].
        t_xtvbdpr[] = xtvbdpr[].
        ta_xvbdkr = xvbdkr.
        CASE int_edidd-segnam.
    Start SU02
          WHEN 'E1EDK01'.
            ta_e1edk01 = int_edidd-sdata.
            i_tabix = sy-tabix.
    Get the conversion factor
            PERFORM modify_exchange_rate.
            MOVE ta_e1edk01 TO t_int_edidd-sdata.
            MODIFY t_int_edidd INDEX i_tabix TRANSPORTING sdata.
            int_edidd[] = t_int_edidd[].
    End SU02
    *************************************************************SAM01 START
          WHEN 'E1EDP02'.
    Populate segment Z1EDP02
    Fields: Reason code for sales order
            ta_e1edp02 = int_edidd-sdata.
            CASE ta_e1edp02-qualf.
              WHEN '002'.
                PERFORM fill_segment_z1edp02.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING  'Z1EDP02'
                                                ta_z1edp02.
                int_edidd[] = t_int_edidd[].
              WHEN OTHERS.
            ENDCASE.
    ***************************************************************SAM01 END
        ENDCASE.
    Start of JvdM01
      WHEN 'ZGII'.                                              "JvdM01
        t_int_edidd[] = int_edidd[].
        t_xtvbdpr[] = xtvbdpr[].
        ta_xvbdkr = xvbdkr.
        CASE int_edidd-segnam.
          WHEN 'E1EDK01'.
    Populate segment Z1EDKSH and Z1REM_STE_CDE
    Fields: Shipment Number for Invoice
            Reason code for sales order
            ta_e1edk01 = int_edidd-sdata.
            PERFORM fill_segment_z1edksh_ds.
            PERFORM append_int_edidd TABLES t_int_edidd
                                     USING 'Z1EDKSH'
                                            ta_z1edksh.
            PERFORM fill_segment_z1rem_ste_cde.
            PERFORM append_int_edidd TABLES t_int_edidd
                                     USING  'Z1REM_STE_CDE'
                                            ta_z1rem_ste_cde.
            int_edidd[] = t_int_edidd[].
          WHEN 'E1EDKA1'.
    Populate segment Z1EDKA1
    Fields: Customer Account Group
            ta_e1edka1 = int_edidd-sdata.
            CASE ta_e1edka1-parvw.
              WHEN 'RE'.   "Bill To Party
                PERFORM fill_segment_z1edka1.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING 'Z1EDKA1'
                                                ta_Z1EDKA1.
                int_edidd[] = t_int_edidd[].
            ENDCASE.
          WHEN 'E1EDP01'.
    Read segment E1EDP01 for use later                  "JVDM02
            ta_e1edp01 = int_edidd-sdata.
          WHEN 'E1EDP02'.
    Populate segment Z1EDP02
    Fields: Reason code for sales order
            ta_e1edp02 = int_edidd-sdata.
            CASE ta_e1edp02-qualf.
              WHEN '002'.
                PERFORM fill_segment_z1edp02.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING  'Z1EDP02'
                                                ta_z1edp02.
                int_edidd[] = t_int_edidd[].
              WHEN OTHERS.
            ENDCASE.
          WHEN 'E1EDP19'.
    Populate segment Z1EDL24 and Z1EDP01                  "JVDM02
    Fields: Pack Size Activity for Material
            Total Activity for Invoice Item
            ta_e1edp19 = int_edidd-sdata.
            CASE ta_e1edp19-qualf.
              WHEN '002'.
                PERFORM fill_segm_z1edl24_and_z1edp01.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING  'Z1EDL24'
                                                ta_z1edl24.
                PERFORM append_int_edidd TABLES t_int_edidd
                                         USING  'Z1EDP01'
                                                ta_z1edp01.
                int_edidd[] = t_int_edidd[].
              WHEN OTHERS.
            ENDCASE.
        ENDCASE.
    End JvdM01
    ENDCASE.
    Start SU02 Code Comment for implementing IR 340
    **mpc01 - start of insert
    start assyst 73789
    *IF dobject-kschl = 'ZGDW'."amersham invoices
    **IF dobject-kschl = 'ZGIN'."amersham invoices
    end assyst 73789
    CASE int_edidd-segnam.
      for the organisation data header
       WHEN 'E1EDK14'.
         MOVE int_edidd-sdata TO ta_e2edk14.
        where is qualifying organisation = 003 (delivering company code).
         IF ta_e2edk14-qualf = '003' AND ta_e2edk14-orgid NE space.
           SELECT SINGLE waers
             INTO t001-waers
             FROM t001
            WHERE bukrs = ta_e2edk14-orgid.
           IF sy-subrc = 0.
             t_int_edidd[] = int_edidd[].
            get the billing date for the invoice
             LOOP AT t_int_edidd WHERE segnam = 'E1EDK02'.
               MOVE t_int_edidd-sdata TO ta_e1edk02.
               IF ta_e1edk02-qualf = '009'."billing date
                 w_fkdat = ta_e1edk02-datum.
                 EXIT.
               ENDIF.
             ENDLOOP.
            if no invoice date use current date
             IF w_fkdat IS INITIAL.
               w_fkdat = sy-datum.
             ENDIF.
            change the general document header
             LOOP AT t_int_edidd WHERE segnam = 'E1EDK01'.
               i_tabix = sy-tabix.
               MOVE t_int_edidd-sdata TO ta_e1edk01.
              set the field to the default currency code for the company
               ta_e1edk01-hwaer = t001-waers.
              if the default value equals the idoc currency then exit
               IF t001-waers = ta_e1edk01-curcy.
                 EXIT.
               ENDIF.
              get the exchange rates
               SELECT *
                 INTO TABLE t_tcurr
                 FROM tcurr
                WHERE kurst = 'NYB1'                 " SU01
                 WHERE KURST = 'GEBU'                 " SU01
                  AND fcurr = ta_e1edk01-curcy
                  AND tcurr = t001-waers.
               IF sy-subrc NE 0."no values found
                error the idoc
                 MESSAGE e400(vf) WITH c_exchange_rate_error
                         RAISING error_message_received.
                 EXIT.
               ENDIF.
               LOOP AT t_tcurr.
                convert to date from inverted date to normal date format.
                 CALL FUNCTION 'CONVERSION_EXIT_INVDT_OUTPUT'
                      EXPORTING
                           input  = t_tcurr-gdatu
                      IMPORTING
                           output = w_datum.
                 CONCATENATE w_datum+6(4)
                             w_datum+3(2)
                             w_datum(2)
                        INTO t_tcurr-datum.
                 MODIFY t_tcurr.
               ENDLOOP.
              sort the exchange rates with the newest first.
               SORT t_tcurr BY datum DESCENDING.
              read the first value in the table ie the newest.
               LOOP AT t_tcurr WHERE datum <= w_fkdat.
                 EXIT.
               ENDLOOP.
               IF sy-subrc NE 0."no values found
                error the idoc
                 MESSAGE e400(vf) WITH c_exchange_rate_error
                         RAISING error_message_received.
                 EXIT.
               ENDIF.
    Start SU01
    Get the Exchange rate from the function module and populate
    E1EDK01 TABLE
               w_fcurr = ta_e1edk01-curcy.
               call function 'CONVERT_TO_LOCAL_CURRENCY'
                    exporting
                         date             = w_fkdat
                         foreign_amount   = '0'
                         foreign_currency = w_fcurr
                         local_currency   = t001-waers
                         type_of_rate     = 'GEBU'
                    importing
                         exchange_rate    = t_tcurr-ukurs
                    exceptions
                         no_rate_found    = 1
                         overflow         = 2
                         no_factors_found = 3
                         no_spread_found  = 4
                         derived_2_times  = 5
                         others           = 6.
    End SU01
               ta_e1edk01-wkurs = t_tcurr-ukurs.
              change the header data in segment
               MOVE ta_e1edk01 TO t_int_edidd-sdata.
              update the current idoc segment
               MODIFY t_int_edidd INDEX i_tabix TRANSPORTING sdata.
               EXIT.
             ENDLOOP.
            update all of the idoc segments
             int_edidd[] = t_int_edidd[].
           ENDIF.
         ENDIF.
    ENDCASE.
    *ENDIF.
    **mpc01 - end of insert
    End SU02 Code Comment for implementing IR 340

    Hi Venu,
      Try with this code.
      If vbrp-netwr = 0.
    <b>  WHEN 'E1EDP26.
      CASE ta_e1edp26-qualf.
    ta_e1edp26 = int_edidd-sdata.
    WHEN '011'.
    PERFORM append_int_edidd TABLES t_int_edidd
    USING 'e1edp26'
    ta_e1edp26.
    int_edidd[] = t_int_edidd[].
    ENDCASE.</b>
    ENDIF.
    Thanks
    Manju.

  • How to handle table control in PO change

    Hi All,
    R/3 is sending PO details and Vendor is using third party front end to access the PO.He has changed the PO and these changes need to be reflected in the PO. Data is coming from external sytem to R/3 through IDOC. I need to handle the changes in the PO at the ITEM level. It has the table control. I don't know about table control. Kindly help me inorder to update the PO for a particular tab in PO item(ME22N).
    I have checked the process code : ORDH and FM: MPN30_IDOC_INPUT_ORDCAD
    Regards
    Kannaiah
    Rewards for helpful answers

    Hi Ravikanth,
    Thanks for the reply.
    I checked the PO item for the fields which need to be updated. I am unable to find some fields in the FM which i had mentioned. Shall I need to use any Userexit or include for this. If yes, can you tell me the user exit for this. I have checked the following exits: AMPL0001 
    LMEDR001 
    LMELA002 
    LMELA010 
    LMEQR001 
    LMEXF001 
    LWSUS001 
    M06B0001 
    M06B0002 
    M06B0003 
    M06B0004 
    M06B0005 
    M06E0004 
    M06E0005 
    ME590001 
    MEETA001 
    MEFLD004 
    MELAB001 
    MEQUERY1 
    MEVME001 
    MM06E001 
    MM06E003 
    MM06E004 
    MM06E005 
    MM06E007 
    MM06E008 
    MM06E009 
    MM06E010 
    MMAL0001 
    MMAL0002 
    MMAL0003 
    MMDA0001
    MMFAB001
    MRFLB001

  • Cancellation of Billing document

    Hi,
    We cancel the invoice in VF11 with reference to the invoice/billing document.
    Now the invoice is created on for ex: 01.01.2009  but the client will cancel the invoice on 02.02.2009.
    Can we make any settings so that the invoice is cancelled on 01.01.2009.
    If we cancel system will take sy-datum as cancel date otherwise we can enter the bill date in Vf11 at the header and cancel also.
    But can we make any settings so that cancellation also will be done at the same date as of invoice.
    ie if invoice is created on 01.01.2009 if we cancel on 02.02.2009 the cancelled billing document should automatically have bill date 01.01.2009 and accounting data also need to be posted on 01.01.2009.
    Is there any standard functionality or User exit where we can implement the same.
    regards

    Hello Saju,
    As far as I know, the standard system behaviour is that the billing date
    (VBRK-FKDAT) of the invoice cancellation is always taken directly from the original document.
    Do you have your own coding in following copy control?
    In the level of invoice type (Transaction VOFA), every invoice type has
    its own cancellation type.
    ==> VOFA 'Billing: Document Types' for example: billing type F2 invoice
        Cancell.billing type 'S1'     Invoice Cancellation
        Copying requirements '  '  <        Here
    Or have you made use of userexit  "USEREXIT_FILL_XKOMK1" (Include RV60BFZA) to make VBRK-FKDAT=sy-datum ?
    Please refer to note 112385 for some information.
    Regards,
    Alex

  • Node variable in query - Processing type customer exit?

    We are on NW 2004S. I created a hierarchy for an info-object along with several nodes and child nodes.
    I also created a node variable in a query for this info-object. I have the following questions with regards to using node variables in a query.
    1) Can I use a node variable with processing type 'Customer Exit". My objective is to set the value of the node variable in the user exit.
    2) If answer to first question is "Yes", how would I code the node value in the user-exit - Example code or some pointers to that effect.
    I really appreciate your thoughts on this issue.
    Thanks,
    Sanjay

    Hi Sanjay,
    As far as I'm aware this hasn't changed in NW2004s, (in any case it still works), so:
    1)Yes you can, no difference with other type variables.
    2)In userexit EXIT_SAPLRRS0_001 (include ZXRSRU01).
    There's different options depending on at which stage you want to change it:
    http://help.sap.com/saphelp_nw2004s/helpdata/en/f1/0a56f5e09411d2acb90000e829fbfe/frameset.htm
    If you do a forum search on above technical names I think you'll find plenty of coding samples, but if you want something more specific, I'd be happy to help you out.
    Regards,
    Pieter

Maybe you are looking for

  • After updating my iphone 3G and my ipodtouch 3G ios5, universal dock and remote control doesn´t work

    After updating my iphone 3G and my ipotouch 3G with ios5, the apple remote controls (the white and the aluminium one) doesn´t react when iphone or ipod are docked at the universal dock. The remote controls both still work with my Macbook, therefore i

  • How to compile .java - .CAP?

    Hi everyone, I have a lot of problem to compile my java file and to create my .CAP file. In consequence, I thinked that I will be perfect to create a tutorial, but firstly I need to learn :) PreCondicions -We have Windows SO ("posteriori" I will try

  • Reg Assembly Process

    Hi Guru, i would like to know the assembly Process with CIN details. please give the details regarding the above. Thanks BR siva

  • Change over question

    I was wondering if i switch websites do i need to re apply for a new rss feed. Or does it just change over??

  • Folder icon with question mark?

    I turned my computer on yesterday and it wasn't powering on as usual. First the grey-blue screen stays on forever and then this flashing folder icon appears with a question mark. I am not able to log on or start up any operations. please help!