User exit for setting tax indicator in Sale order

Hi All,
I want to know if there is a way (user exit) that could look at the Sales Order Type , particular Item Pricing Condition  and Ship-to party State and set the materialu2019s tax classification (VBAP/TAXM1) to u201C0u201D (Exempt) ?
Thanks in Advance!
Sonali.

Hi Ramesh,
I have put the code in the user exit, and I am able to set the tax classification indicator but I have a problem... Before setting the indicator I need to check for the Usage code of the line item (This code I am using instead of checking the Pricing condition) . I am able to read all the values of line item in VBAP structure in the user exit except for the first time this user exit is hit as soon as a line item is entered it is not picking up the Usage code. That field is blank.
But if add another line item and go into the user exit I can see the previous line item Usage code in XVBPA table.
Do you have any idea why usage code is missing in VBAP structure in the user exit or is there any other table or structure where I can get the usage code?
Thanks in Advance!
Sonali.

Similar Messages

  • NEED VL02N VL09 USER-EXIT FOR DELIVERY COMPLETE INDICATOR IN PURCHASE ORDER

    I NEED VL02N VL09 USER-EXITS FOR DELIVERY COMPLETE INDICATOR IN PURCHASE ORDER POSITIONS.
    F.X: IF POST QUANTITY 10, BUT PURCHASE ORDER POSITION QUANTITY 30, I NEED AT ANY CASE TO SET DELIVERY COMPLETE INDICATOR FOR RELEVANT OUTBOUND DELIVERY AN P. ORDER POSITIONS.
    THANKS/

    Hi Malka,
    It's possible set the system to mark automatically the delivery completed indicator.
    First you need to set the under delivery and over delivery tolerances.You do this in customizing:
    Materials Management under Purchasing -> Material Master -> Define Purchasing Value Keys.
    Once you set this, you can insert this value keys on Material Master Record for the materials.
    When you create the PO with a material with this value keys set the system will check the under delivery and over delivery set on customizing.
    In customizing you also have the option to let the system mark automatically the delivery indicator based on delivery tolerances set.
    In Customizing for Inventory Management and Physical Inventory under Goods Receipt -> Set Delivery Completed Indicator, you can determine for each plant whether the system automatically sets the delivery completed indicator for delivery quantities within the underdelivery and overdelivery tolerances.
    You can test setting the under delivery for 0 (with a warning message) and see if the system will only mark delivery complete only for over delivery.
    You can also work with the following Badi: MB_GOODSMOVEMENT_DCI. This Badi also allows custom logic for setting the delivery completed indicator in a PO item.
    Message: M7 433 (The "delivery completed" indicator is set for the purchase order item)
    Regards,
    Rodrigo

  • User exit for updating delivery block of Sales order before Delivery

    Hi  Folks,
    Need to have an user exit for updating Delivery Block indicator for a Sales order Before creating its delivery
    I have got an exit in Program SAPMV45A
    MV50AFZ1
    FORM USEREXIT_REFRESH_DOCUMENT.
    that hits before processing the delivery block fro delivery (Correct me if i m wrong with this )
    Now i want now how to change the Delivery Block indicator of Sales order in that exit
    any FM available ?
    Thanks n regards
    Sonal...

    Hi  ,
    How did you solved this issue?
    I am having similar scenario in which while pressing the save button  delivery block should update if multiple schedule line exist.
    Tried by two different approaches in various user exit without any success.
    AFAIK we have two ways to achieve this functionality.
    1) Count the no of rows in vbep. If greater than 1 then multiple schedule line exist and we can assign the value to VBAK-LIFSK(delivery block) as per our requirement.
    This is not correct. If there are two line items both with single schedule line . This case total no lines in vbep will 2 and above condition will true which is incorrect.
    2) There is a indicator for multiple schedule line (VBAPD-EPMEH , xvbap-epmeh ) if it is check then multiple schedule line exist and we can assign the value to VBAK-LIFSK(delivery block) as per our requirement.
    If I write code in USEREXIT_SAVE_DOCUMENT_PREPARE.
    Multiple schedule line indicator is not populate so can not use 2nd approach.
    If I write code in  USEREXIT_SAVE_DOCUMENT it of no use as vbak is updated before reaching this user exit.
    If I write code in USEREXIT_MOVE_FIELD_TO_VBAK as this user exit is also called while pressing the enter key for this I have use
    the condition of fcode but it also fails in some condition.
    If fcode eq 'SICH'.
    Read table xvbap with key epmeh = 'X'.
    IF SY-SUBRC = 0.
    VBAK-LIFSK = '03'.
    Else.
    VBAK-LIFSK = ' '.
    Endif.
    Endif.
    Please help me to get the desired functionality working for all cases.
    1) One line item with multiple schedule line                                              
    2) Two line item with multiple schedule line                                             
    3) One line item having one schedule line and second one having multiple
    4)Two line item both with single schedule line.

  • User exit for contract start date in sales order change mode.

    24.10.2008
    Hi Gurus,
    I need to disable the 'contract start date' (VEDA-VBEGDAT) field  in Contract data tab at header and item level. Can someone suggest a user exit for the same ???
    Regards,
    Udaynath

    Dear Udyanath,
    Please check these User exits with the help of ABAPer
    User exits in the program MV45AFZZ                                                                               
    The user exits which you can use for modifications in sales document         
    processing are listed below.                                                                               
    USEREXIT_FIELD_MODIFICATION                                              
         This user exit can be used to modify the attributes of the screen        
         fields.                                                                  
         To do this, the screen fields are allocated to so-called                 
         modification groups 1 - 4 and can be edited together during a            
         modification in ABAP. If a field has no field name, it cannot be         
         allocated to a group.                                                    
         The usage of the field groups (modification group 1-4) is as             
         follows:                                                                               
    -   Modification group 1:   Automatic modification with transaction      
             MFAW                                                                               
    -   Modification group 2:   It contains 'LOO' for step loop fields                                                                               
    -   Modification group 3:   For modifications which depend on check  tables or on other fixed information.
    USEREXIT_MOVE_FIELD_TO_VBAK                                                 
    Use this user exit to assign values to new fields at sales document         
    header level. It is described in the section "Transfer of the               
    customer master fields into the sales document".                            
    The user exit is called up at the end of the FORM routine                   
    VBAK_FUELLEN.                                                                               
    USEREXIT_MOVE_FIELD_TO_VBAP                                                 
    Use this user exit to assign values to new fields at sales document         
    item level. It is described in the section "Copy customer master            
    fields into the sales document".                                            
    The user exit is called up at the end of the FORM routine                   
    VBAP_FUELLEN.                                                                               
    USEREXIT_MOVE_FIELD_TO_VBEP                                                 
    Use this user exit to assign values to new fields at the level of           
    the sales document schedule lines.                                          
    The user exit is called up at the end of the FORM routine                   
    VBEP_FUELLEN.                                                                               
    USEREXIT_MOVE_FIELD_TO_VBKD                                                 
    Use this user exit to assign values to new fields for business data of the sales document. It is described in the section "Copy customer 
    master fields into sales document".                                  
    The user exit is called up at the end of the FORM routine            
    VBKD_FUELLEN.                                                        
    I hope this will help you,
    Regards,
    Murali.

  • Need a user exit for Export Control check in Sales Order fro VA01/VA02

    Hi ,
         I need a user exit for Export Legal Control process in Sales Order.since Ship-to country in the Sales Order is not always the ‘ultimate destination country’ User Exit needs to be built in with following logic
    1.     Check to see if ‘ultimate destination country’ field is maintained in Sales Order
    2.     If a value is maintained then for the Export control checks use ‘ultimate destination country’ instead of the Ship-To country (step 1)
    3.     If no value is maintained then use Ship-To country as default
    The user exit is called when the user creates or changes a Sales Order.
    Can anybody help ?
    Thanks

    Hi,
    Exit Name Description
    SDTRM001 Reschedule schedule lines without a new ATP check
    V45A0001 Determine alternative materials for product selection
    V45A0002 Predefine sold-to party in sales document
    V45A0003 Collector for customer function modulpool MV45A
    V45A0004 Copy packing proposal
    V45E0001 Update the purchase order from the sales order
    V45E0002 Data transfer in procurement elements (PRreq., assembly)
    V45L0001 SD component supplier processing (customer enhancements)
    V45P0001 SD customer function for cross-company code sales
    V45S0001 Update sales document from configuration
    V45S0003 MRP-relevance for incomplete configuration
    V45S0004 Effectivity type in sales order
    V45W0001 SD Service Management: Forward Contract Data to Item
    V46H0001 SD Customer functions for resource-related billing
    V60F0001 SD Billing plan (customer enhancement) diff. to billing plan
    SDAPO001 Activating Sourcing Subitem Quantity Propagation
    <b>Reward points</b>
    Regarsd

  • User Exit for Requested Delivery Date in Sales Order

    Hi
    Which user exit can be used to change Requested Delivery Date in Sales Order.
    Scenario:  Sales Document Type: OR has Lead Time: 7 days.  System always proposes delivery date after 7 days.  We need to change this Lead Time based on plant.
    Thanks in advance for your support.
    Regards
    Uma

    Hello,
      try with USEREXIT_MOVE_FIELD_TO_VBEP or USEREXIT_SAVE_DOCUMENT_PREPARE, of program MV45AFZZ.
    Hope to be useful.
    Best regards,
    Andrea

  • User exit for storage location determination in sales order

    Hi SAP SD Experts,
    Please give me the exact user exit name where we can use for the automatic storage location determination in the sales order.
    Thanks & Regards,
    Rajesh Kumar Raju,

    Dear Rajesh Kumar Raju
    Go to IMG-->Logistics Execution >Shipping> Picking -->Determine Picking Location -->Define Rules for Picking Location Determination.  There you have to assign the MALA rule to your delivery type
    Also maintain in OMJ8 and in material master under MRP2 view the default storage location in the field "Prod. stor. location"
    thanks
    G. Lakshmipathi

  • User exit to copy the data from sales order to billing document

    hi everyone,
    Is there an user exit to copy the data from sales order to billing document?
    Regards
    Prabudh

    hi
    copy control would be the better option to choose.. but still u can a give a search in list below and opt for the right one..Refer to the link below..
    http://www.planetsap.com/Userexit_List.htm
    User exits for Sales order
    1•USEREXIT_DELETE_DOCUMENT
    2•USEREXIT_FIELD_MODIFICATION
    3.•USEREXIT_MOVE_FIELD_TO_VBAK
    4.•USEREXIT_NUMBER_RANGE
    5.•USEREXIT_SAVE_DOCUMENT
    User exits for billing
    1.•USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program RV60AFZZ)
    2.•USEREXIT_ACCOUNT_PREP_KOMPCV
    3•USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program RV60AFZC)
    4•USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB
    5.USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)
    Reward if Useful
    Thanx & Regards..
    Naren..

  • VL01N user exit to copy pricing conditions from sales order

    Does anyone know which user exit could be used to copy sales order line item conditions to delivery note conditions screen.
    The sales order screen is SAPLV69A field KOMV-KSCHL
    The delivery note screen is SAPLV69A field KOMV-KSCHL
    Thanks

    Hi,
    Just goto include - LV69AFZZ
    And Check ..
    userexit_pricing_check -  USEREXIT_PRICING_CHECK
    Thanks

  • User Exits for Invoice creation ,cancellation and sales return

    Hi Gurus,
    Pl help me it's very urgent.
    I did not find any user exit invoice creation so i wrote the following code in include program
    MV60AF0B_BELEG_SICHERN.
    This code is to update the Z*table while saving invoice ,cancellation and sales return.
    The code modification is like below
          FORM BELEG_SICHERN                                            *
          Buchen Fakturabelege                                          *
    FORM BELEG_SICHERN.
      READ TABLE XVBRK INDEX 1.
      IF SY-SUBRC NE 0.
        CALL FUNCTION 'DEQUEUE_ALL'.
        MESSAGE S032.
        EXIT.
      ENDIF.
      IF SAMH_MOD = ON.
        EXPORT XKOMFK TO MEMORY ID 'SDBILLDL'.
      ENDIF.
      DATA: CALC_TYPE.
      IF REBATE_DETERMINED = 'Y'.
        CALC_TYPE = 'A'.
      ELSE.
        CALC_TYPE = 'I'.
      ENDIF.
    *{   INSERT         RD1K903017                                        1
    Work Area*********************
    data : wa_xvbrk type VBRKVB.
    data : wa_xvbrp type vbrpvb.
    data : wa_zmigo type zmigo.
    data : wa_vbrp type vbrp.
    Internal table Creation*******
    DATA:  BEGIN OF tab_XVBRP OCCURS 100.
             INCLUDE STRUCTURE VBRPVB.
    DATA:  END OF tab_XVBRP.
    data : begin of tab_vbeln occurs 10,
           vbeln type vbrk-vbeln,
           knumv type vbrk-knumv,
           end of tab_vbeln.
    data : tab_zmigo type table of zmigo.
    data : tab_vbrp type table of vbrp.
    *****Data declaration*************
    data : v_no_of_inv type i.
    data : v_vbeln_no(10) type n.
    data : v_last_inv_no(10) type n.
    data : v_first_inv_no(10) type c.
    data : v_tot_qty type i.
    data : v_frbnr type mkpf-frbnr.
    *******Ranges*********************
    ranges : r_vbeln for vbrk-vbeln.
    *****Populating IT****************
    tab_xvbrp[] = xvbrp[].
    describe table xvbrk lines v_no_of_inv.
    *}   INSERT
      CALL FUNCTION 'RV_INVOICE_DOCUMENT_ADD'
           EXPORTING
                VBSK_I           = VBSK
                WITH_POSTING     = 'A'
                PREISFINDUNGSART = CALC_TYPE
           IMPORTING
                VBSK_E           = VBSK
           TABLES
                XKOMFK           = XKOMFK
                XTHEAD           = XTHEAD
                XVBFS            = XVBFS
                XVBSS            = XVBSS
                XVBRK            = XVBRK
                XVBRP            = XVBRP
                XVBPA            = XVBPA
                XKOMV            = XKOMV.
    *{   INSERT         RD1K903017                                        2
    data : v_count type i,v_fkimg type i .
    data : v_no_of_records(10) type n.
    wa_xvbrk = xvbrk.
    ********Selecting the last rec no from ZMIGO
          select max( sr_no ) from zmigo into v_no_of_records.
    *****If Distribution channel is not ZB*********
    if  wa_xvbrk-vtweg ne 'ZB' and ( wa_xvbrk-fkart = 'ZRIN' or wa_xvbrk-fkart = 'ZRTE' ).
    if v_no_of_inv = 1.              " Process only when there is one invoice
    loop at tab_xvbrp into wa_xvbrp  where (           matnr ne 'CDGSTP0001'       and
                                                       matnr ne 'CD-RW'            and
                                                       matnr ne 'CD-RW65OHS'       and
                                                       matnr ne 'CABLE'            and
                                                       matnr ne 'CD-R'             and
                                                       matnr ne 'CDQ80N4'          and
                                                       matnr ne 'GENERAL'          and
                                                       matnr ne 'NERO'             and
                                                       matnr ne 'OTHERS'           and
                                                       matnr ne 'SPARE PARTS'      and
                                                       matnr ne 'PROMO ITEM'       and
                                                       matnr ne 'PROMO-1'          and
                                                       matnr ne 'PROMO-2'          and
                                                       matnr ne 'PROMO-3'          and
                                                       matnr ne 'PROMO-4'          and
                                                       matnr ne 'PROMO-5'          and
                                                       matnr ne 'PROMO-6'          and
                                                       matnr ne 'PROMO-7'          and
                                                       matnr ne 'PROMO-8'          and
                                                       matnr ne 'PROMO-9'          and
                                                       matnr ne 'PROMO-10' ).
    v_fkimg = wa_xvbrp-fkimg .
    v_fkimg = v_fkimg / 1000.
                do v_fkimg times.
                  v_no_of_records = v_no_of_records + 1.
                  wa_zmigo-sr_no = v_no_of_records.
                  wa_zmigo-po_no = wa_xvbrk-vbeln.
                  wa_zmigo-item_no  = wa_xvbrp-posnr.
                 wa_zmigo-mblnr  = wa_xmkpf-mblnr.
                  wa_zmigo-doc_type = wa_xvbrk-fkart.
                  wa_zmigo-posting_date = wa_xvbrk-fkdat.
                  wa_zmigo-created_on = sy-datum.
                  wa_zmigo-created_time = sy-uzeit.
                 wa_zmigo-bill_lno = v_frbnr.
                  wa_zmigo-material = wa_xvbrp-matnr.
                 wa_zmigo-inv_no = wa_xvbrk-vbeln.
                 wa_zmigo-inv_item_no = wa_xvbrp-posnr.
                  wa_zmigo-plant = wa_xvbrp-werks.
                  wa_zmigo-inv_date = wa_xvbrk-fkdat.
                  wa_zmigo-customer = wa_xvbrk-kunag.
                  wa_zmigo-unit = 1.
                  wa_zmigo-mtype = '601'.
                  insert into zmigo values wa_zmigo.
                enddo.
                clear : wa_zmigo.
    endloop.
    clear : v_count,v_fkimg,wa_zmigo.
    refresh tab_zmigo[].
    clear v_no_of_inv.
    else.                              "When there are Split Invoices
    v_last_inv_no = wa_xvbrk-vbeln.
    v_vbeln_no = v_last_inv_no - v_no_of_inv + 1.
    v_first_inv_no = v_vbeln_no.
    sort tab_xvbrp by vbeln.
    loop at tab_xvbrp into wa_xvbrp  where (           matnr ne 'CDGSTP0001'       and
                                                       matnr ne 'CD-RW'            and
                                                       matnr ne 'CD-RW65OHS'       and
                                                       matnr ne 'CABLE'            and
                                                       matnr ne 'CD-R'             and
                                                       matnr ne 'CDQ80N4'          and
                                                       matnr ne 'GENERAL'          and
                                                       matnr ne 'NERO'             and
                                                       matnr ne 'OTHERS'           and
                                                       matnr ne 'SPARE PARTS'      and
                                                       matnr ne 'PROMO ITEM'       and
                                                       matnr ne 'PROMO-1'          and
                                                       matnr ne 'PROMO-2'          and
                                                       matnr ne 'PROMO-3'          and
                                                       matnr ne 'PROMO-4'          and
                                                       matnr ne 'PROMO-5'          and
                                                       matnr ne 'PROMO-6'          and
                                                       matnr ne 'PROMO-7'          and
                                                       matnr ne 'PROMO-8'          and
                                                       matnr ne 'PROMO-9'          and
                                                       matnr ne 'PROMO-10' ).
    v_fkimg = wa_xvbrp-fkimg .
    v_fkimg = v_fkimg / 1000.
                do v_fkimg times.
                  v_no_of_records = v_no_of_records + 1.
                  wa_zmigo-sr_no = v_no_of_records.
                  wa_zmigo-po_no = v_vbeln_no.                      "wa_vbrp-vbeln.
                  wa_zmigo-item_no  = wa_xvbrp-posnr.
                 wa_zmigo-mblnr  = wa_xmkpf-mblnr.
                  wa_zmigo-doc_type = wa_xvbrk-fkart.
                  wa_zmigo-posting_date = wa_xvbrk-fkdat.
                  wa_zmigo-created_on = sy-datum.
                  wa_zmigo-created_time = sy-uzeit.
                 wa_zmigo-bill_lno = v_frbnr.
                  wa_zmigo-material = wa_xvbrp-matnr.
                 wa_zmigo-inv_no = v_vbeln_no.
                 wa_zmigo-inv_item_no = wa_xvbrp-posnr.
                  wa_zmigo-plant = wa_xvbrp-werks.
                  wa_zmigo-inv_date = wa_xvbrk-fkdat.
                  wa_zmigo-customer = wa_xvbrk-kunag.
                  wa_zmigo-unit = 1.
                  wa_zmigo-mtype = '601'.
                  insert into zmigo values wa_zmigo.
                enddo.
                clear : wa_zmigo.
    at end of vbeln.
    v_vbeln_no = v_vbeln_no + 1.
    endat.
    clear : v_count,v_fkimg,wa_zmigo.
    refresh tab_zmigo[].
    endloop.
    endif.                             "End of first 2nd IF.
    clear : v_no_of_inv, v_vbeln_no.
    endif.
    ****************Sales return************************************
    if  wa_xvbrk-fkart = 'ZRRE' and wa_xvbrk-vtweg ne 'ZB'.
    loop at tab_xvbrp into wa_xvbrp where (            matnr ne 'CDGSTP0001'       and
                                                       matnr ne 'CD-RW'            and
                                                       matnr ne 'CD-RW65OHS'       and
                                                       matnr ne 'CABLE'            and
                                                       matnr ne 'CD-R'             and
                                                       matnr ne 'CDQ80N4'          and
                                                       matnr ne 'GENERAL'          and
                                                       matnr ne 'NERO'             and
                                                       matnr ne 'OTHERS'           and
                                                       matnr ne 'SPARE PARTS'      and
                                                       matnr ne 'PROMO ITEM'       and
                                                       matnr ne 'PROMO-1'          and
                                                       matnr ne 'PROMO-2'          and
                                                       matnr ne 'PROMO-3'          and
                                                       matnr ne 'PROMO-4'          and
                                                       matnr ne 'PROMO-5'          and
                                                       matnr ne 'PROMO-6'          and
                                                       matnr ne 'PROMO-7'          and
                                                       matnr ne 'PROMO-8'          and
                                                       matnr ne 'PROMO-9'          and
                                                       matnr ne 'PROMO-10' ).
             v_fkimg = wa_xvbrp-fkimg.
             v_fkimg = v_fkimg / 1000.
             v_tot_qty = v_tot_qty + v_fkimg.
              do v_fkimg times.
                v_no_of_records = v_no_of_records + 1.
                wa_zmigo-sr_no = v_no_of_records.
                wa_zmigo-po_no = wa_xvbrk-vbeln.
                wa_zmigo-item_no  = wa_xvbrp-posnr.
                wa_zmigo-doc_type = wa_xvbrk-fkart.
                wa_zmigo-posting_date = wa_xvbrk-fkdat.
                wa_zmigo-created_on = sy-datum.
                wa_zmigo-created_time = sy-uzeit.
                wa_zmigo-material = wa_xvbrp-matnr.
               wa_zmigo-inv_no = wa_xvbrk-vbeln.
               wa_zmigo-inv_item_no = wa_xvbrp-posnr.
                wa_zmigo-plant = wa_xvbrp-werks.
                wa_zmigo-inv_date = wa_xvbrk-fkdat.
                wa_zmigo-customer = wa_xvbrk-kunag.
                wa_zmigo-unit = 1.
                wa_zmigo-mtype = '651'.
                condense wa_xvbrk-xblnr.
                wa_zmigo-reference = wa_xvbrk-xblnr.
    ********Bill of lading no**
               select single bill_lno from zmigo_final into v_frbnr where inv_no = wa_xvbrk-xblnr and material = wa_xvbrp-matnr.
               if sy-subrc eq 0.
               wa_zmigo-bill_lno = v_frbnr.
               endif.
                insert into zmigo values wa_zmigo.
              enddo.
              clear : wa_zmigo,wa_xvbrp , v_fkimg, v_frbnr.
    endloop.
    endif.
    *******Invoice Cancellation*****************************
    if  wa_xvbrk-fkart = 'ZRS1' and wa_xvbrk-vtweg ne 'ZB'.
    delete tab_xvbrp[] where shkzg eq 'X'.
    loop at tab_xvbrp into wa_xvbrp where (            matnr ne 'CDGSTP0001'       and
                                                       matnr ne 'CD-RW'            and
                                                       matnr ne 'CD-RW65OHS'       and
                                                       matnr ne 'CABLE'            and
                                                       matnr ne 'CD-R'             and
                                                       matnr ne 'CDQ80N4'          and
                                                       matnr ne 'GENERAL'          and
                                                       matnr ne 'NERO'             and
                                                       matnr ne 'OTHERS'           and
                                                       matnr ne 'SPARE PARTS'      and
                                                       matnr ne 'PROMO ITEM'       and
                                                       matnr ne 'PROMO-1'          and
                                                       matnr ne 'PROMO-2'          and
                                                       matnr ne 'PROMO-3'          and
                                                       matnr ne 'PROMO-4'          and
                                                       matnr ne 'PROMO-5'          and
                                                       matnr ne 'PROMO-6'          and
                                                       matnr ne 'PROMO-7'          and
                                                       matnr ne 'PROMO-8'          and
                                                       matnr ne 'PROMO-9'          and
                                                       matnr ne 'PROMO-10' ).
             v_fkimg = wa_xvbrp-fkimg.
             v_fkimg = v_fkimg / 1000.
             v_tot_qty = v_tot_qty + v_fkimg.
              do v_fkimg times.
                v_no_of_records = v_no_of_records + 1.
                wa_zmigo-sr_no = v_no_of_records.
                wa_zmigo-po_no = wa_xvbrk-vbeln.
                wa_zmigo-item_no  = wa_xvbrp-posnr.
                wa_zmigo-doc_type = wa_xvbrk-fkart.
                wa_zmigo-posting_date = wa_xvbrk-fkdat.
                wa_zmigo-created_on = sy-datum.
                wa_zmigo-created_time = sy-uzeit.
                wa_zmigo-material = wa_xvbrp-matnr.
               wa_zmigo-inv_no = wa_xvbrk-vbeln.
               wa_zmigo-inv_item_no = wa_xvbrp-posnr.
                wa_zmigo-plant = wa_xvbrp-werks.
                wa_zmigo-inv_date = wa_xvbrk-fkdat.
                wa_zmigo-customer = wa_xvbrk-kunag.
                wa_zmigo-unit = 1.
                condense wa_xvbrk-zuonr.
                wa_zmigo-reference = wa_xvbrk-zuonr.
                wa_zmigo-mtype = '602'.
    ********Bill of lading no**
               select single bill_lno from zmigo_final into v_frbnr where inv_no = wa_xvbrk-xblnr and material = wa_xvbrp-matnr.
               if sy-subrc eq 0.
               wa_zmigo-bill_lno = v_frbnr.
               endif.
                insert into zmigo values wa_zmigo.
              enddo.
              clear : wa_zmigo,wa_xvbrp , v_fkimg.
    endloop.
    endif.
    clear : v_no_of_records.
    *}   INSERT
      CALL FUNCTION 'STACK_RESET'.
      R185D-DATALOSS = SPACE.
      FOLGEAUFRUF102 = SPACE.
      PERFORM SETPAR_INIT.
    *{   INSERT         RD1K903017                                        3
    *}   INSERT
      LEAVE.
    ENDFORM.
    This program is working fine for single user but in production where no of people are creating the invoices from different places the data is not getting updated in table ZMIGO.
    sometime populating with wrong data , partial data and sometimes no updation at all.
    I have used the table locking system enqueue and dequeue FM's before n after updation but still the same
    thing is happening.
    What could be the reason.
    Looking for help very urgent any other alternate option.

    Hi,
    Go thru these..
    Enhancement
    SDVFX009 Billing doc. processing KIDONO (payment reference numbe
    SDVFX010 User exit item table for the customer lines
    SDVFX011 Userexit for the komkcv- and kompcv-structures
    V05I0001 User exits for billing index
    V05N0001 User Exits for Printing Billing Docs. using POR Procedu
    V60A0001 Customer functions in the billing document
    V60P0001 Data provision for additional fields for display in lis
    V61A0001 Customer enhancement: Pricing
    SDVFX001 User exit header line in delivery to accounting
    SDVFX002 User exit for A/R line (transfer to accounting)
    SDVFX003 User exit: Cash clearing (transfer to accounting)
    SDVFX004 User exit: G/L line (transfer to accounting)
    SDVFX008 User exit: Processing of transfer structures SD-FI
    SDVFX007 User exit: Billing plan during transfer to Accounting
    SDVFX006 User exit: Tax line (transfer to accounting)
    SDVFX005 User exit: Reserves (transfer to accounting)
    Business Add-in
    SD_CIN_LV60AU02 BADI for billing
    If it is helpful rewards points
    Regards
    Pratap.M

  • User exit for pricing to calcumlate net sales value and taxat billing level

    Hi,
    Can anyone suggest me , which user exit i can used for below scenario.
    Create a new user exit attached to pricing procedure ZXTNIC in order to exclude the conditions YTN1 & YTN2 from the calculation of the net sales value and include the value of the conditions YTN1 & YTN2 to the calculation of the Tax vale.
    From pricing procedure ZXTNIC need the net value to be till line 500 only and exclude the value of the conditions YTN1 & YTN2
    BACKGROUND
    Inter-company invoice is not calculated correctly in terms on the net sales value. The calculation of the net sales value is correct as some conditions are included in the calculations which must be excluded.
    The reason for creating the user exist is that any change in the pricing conditions class can not be used to exclude them from the net price, without totally changing the concept behind the conditions (new conditions, new access sequence in taxes, IC changes and so on).
    FUNCTIONAL DETAILS
    The user exit will run on the values of the line item and the header of the pricing conditions
    The user exit will subtract the current net value from the value of the conditions YTN1 & YTN2, also the Tax value will be added to the value of the conditions YTN1 & YTN2.
    Need the Net value = 8,032 and not 8,882
    This value will be calculated as follows = Current Net u2013 YTN1 u2013 YTN2 = 8,882 u2013 0,773 u2013 0,077 = 8,032
    Need the Tax value = 2,395 and not 1,545
    This value will be calculated as follows = Current Tax + YTN1 + YTN2 =     1,545 + 0,773 + 0, 077 = 2,395
    Regards,
    Jayaram

    solved

  • User exits for delivery picking confirmation and transfer order creation

    Hi
    We have a scenario for which we need help.
    This is to do with replenishment from plant to plant.
    We have sales sets.
    The sales sets needs to be replenished from one plant to another. We want the componenets of the sales sets to picked from the issuing plant. For this we need a transfer order. this needs tobe confirmed and then the goods issue should take place from the issuing plant. Its a two step process.
    we are doing Sales sets in STO. The explosion takes place in STO. However when we create deliveries for this. Only the sales set header item without its components are flowing into the delivery.
    The Tranfer order does not contain the components either.
    However post  the goods issue we  can create a TO with reference to the TR. This is is not acceptable because we want the picking and confirmation to occur before PGI from the issuing plant.
    Could anybody help: We want the TO to be created with the components even though in the delivery only the Sales set header appears. Can u suggest a user exit in which when we create the TR from the delivery the components of the set.
    After confirmation of the TO then we want the picking status to be put as C.
    Supreeth

    Hi,
    Check the following users exits.
    MWMRFSSG            user exit for sorting TOs in RF system-guided transaction
    MWMRFUP             Customer defined general purpose pushbutton called from scr.
    MWMRP001            Cust. Exit for Fixed Bin Replenish.: Delivery Item Selection
    MWMRP002            Cust. Exit for Fixed Bin Replenishment: TR Quantity Distr.
    MWMRP003            Customer Exit for Replenishment using RLLNACH1
    MWMRP004            User Exit for Replenishment using RLLNACH4
    MWMTO001            Enhancements for end of transfer order generation
    MWMTO010            Exit: Calculation of Total Planned TO Processing Time
    MWMTO011            Correction of Planned Processing Time for TO Item
    MWMTO012            Correction of Sorting and Split Transfer Order
    MWMTO013            Stock Removal for Sev. Storage Types as in Stringent FIFO
    MWMTOAU3            Separate selection of posting changes for autom.TO creation
    MWMTR001            Exits at the end of transfer rqmnt creation (IM,PP interf.)
    MWMD0001            Transfer order print via RLVSDR40
    MWMD0002            Transfer order print as multiple process with RLKOMM40
    MWMIDI07            Enhancement for Output WMPIHU (Create Pick-HU) Inbound
    MWMIDO11            Enhancement for message WMTORD: TO with several items
    MWMIDO12            Enhancement for Output WMPIHU (Pick-HUs) Outbound
    MWMIDO13            Extension for WMMBXY (subsequent tasks after goods movement)
    MWMPP001            Enhancement WM/PP Interface (automatic TR generation)
    Regards,
    Murali

  • User Exit for Enter / post invoice against the order without goods receipt

    Hi,
    My requirement is to enter or  post the  invoice against the Purchase order without goods receipt.
    Need to an User Exit  for this.
    Thanks in Advance!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

    User exits available are:
    V02V0001 Sales area determination for stock transport order
    V02V0002 User exit for storage location determination
    V02V0003 User exit for gate + matl staging area determination (headr)
    V02V0004 User Exit for Staging Area Determination (Item)
    V50PSTAT Delivery: Item Status Calculation
    V50Q0001 Delivery Monitor: User Exits for Filling Display Fields
    V50R0001 Collective processing for delivery creation
    V50R0002 Collective processing for delivery creation
    V50R0004 Calculation of Stock for POs for Shipping Due Date List
    V50S0001 User Exits for Delivery Processing
    V53C0001 Rough workload calculation in time per item
    V53C0002 W&S: RWE enhancement - shipping material type/time slot
    V53W0001 User exits for creating picking waves
    VMDE0001 Shipping Interface: Error Handling - Inbound IDoc
    VMDE0002 Shipping Interface: Message PICKSD (Picking, Outbound)
    VMDE0003 Shipping Interface: Message SDPICK (Picking, Inbound)
    VMDE0004 Shipping Interface: Message SDPACK (Packing, Inbound)
    user exit when PGI is done
    Reward if useful.

  • User-exit to copy collective number from sales order to purchase order

    Hi,
    Can any one help me  which user-exit/BADI  is used to copy collective number from sales order to purchase order?  please help me.
    Thanks,
    Alka

    hi
    copy control would be the better option to choose.. but still u can a give a search in list below and opt for the right one..Refer to the link below..
    http://www.planetsap.com/Userexit_List.htm
    User exits for Sales order
    1•USEREXIT_DELETE_DOCUMENT
    2•USEREXIT_FIELD_MODIFICATION
    3.•USEREXIT_MOVE_FIELD_TO_VBAK
    4.•USEREXIT_NUMBER_RANGE
    5.•USEREXIT_SAVE_DOCUMENT
    User exits for billing
    1.•USEREXIT_ACCOUNT_PREP_KOMKCV (Module pool SAPLV60A, program RV60AFZZ)
    2.•USEREXIT_ACCOUNT_PREP_KOMPCV
    3•USEREXIT_NUMBER_RANGE_INV_DATE (Module pool SAPLV60A, program RV60AFZC)
    4•USEREXIT_PRINT_ITEM (Module pool SAPLV61A, program RV61AFZB
    5.USEREXIT_PRINT_HEAD (Modulpool SAPLV61A, Programm RV61AFZB)
    Reward if Useful
    Thanx & Regards..
    Naren..

  • User exit for changing operation scap in PP order

    Hi,
    I want to know user exits for changing operation scrap in PP production order. Please help
    Regards
    Shalini

    I could found only one at the moment...
    QEVA0002  - Calculation of share of scrap in inspection lot            
    check if it is helpful.....else u can go on
    CMOD - Utilities - SAP Enhancements - (Remove Maximum No of fields) - Execute (F8)
    You will get all user exits.
    Now i need points.... :)...My score is not gettin increased... lolz
    kapil

Maybe you are looking for

  • Problem generating an IDOC

    Hi I have setup a partner profile with  outbound parameters having message type WMINVE for inventory counts. But when I am creating a inventory document I dont get the idoc created for the inventory document. I hope the question is clear. If not plea

  • Compaq Laptop as monitor for a Mac Mini

    I was wondering if it would be able to use a Compaq laptop as a monitor for a Mac Mini because I want to be able to easily switch between Mac and PC for as cheap as possible I would like to use the laptop as a monitor for the Mini. Thanks a lot, Alex

  • File Visibility in uploading the file using web DynPro java

    hello, i have gone through the tutorial " uploading & downloading the file using web DynPro java". the upload functionalty is working fine. but i need to know thw path where these files are getting uploaded ?? Waiting for the reply.. Regards, Viren G

  • Import and Syndicate Server Configuration

    Hi All, Is it possible to setup the time interval in Import and Syndicator, with specific to one repository. For example, if i have one repository, for which the import has to run every 30 mins, and for another if it has to run every 3 mins. Is it po

  • Tuning select query

    Hi I have this select statement with 4 tables wich are accually 2 tables with 2 self joins. table a,b contain about 1.000.000 records and table c,d about 40.000.000. Because I use the same tables twice is there a way to let the database read them fas