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.

Similar Messages

  • 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.

  • User exit to update characteristic attributes in sales order

    Hi all,
    I am having one queer requirement.
    We are having variant configuration. We are manufactiuring a material which is having lenght as one of the characteristic.
    While creating the sales order the user will enter the value against length. This we have to pull in the inspection lot with range.
    For ex. if the length required by customer is 1000 mm then depending upon the tolerance limit say +/-1.5 %, another characteristic should get updated with the allowed range (here in this example the lower range  985 and upper range 1015) against another characteristic.
    This characteristis will sever as class characteristic for QM master inspection characteristic.
    Here the problem is the functionality can't be mapped with object dependency in satandard SAP (you can't derive range with object dependency), so I am looking for user exit to update the second characteristic depending upon the value of first characteristic and allowed percentage.
    The user exit should be effective for sales order creation as well as sales order change.
    Please help.

    Hello Nikhil,
    I am looking for the tolerance limit to upadte against one char only and not two separate chars.
    If the range is against only one char (and that too again in numeric format and not characteristic format) same shall can be pulled against master inspection characteristic in inspection lot.
    Looking forward for the soution.
    Mimiri

  • 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 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.

  • 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

  • Schedule Background Job :  Remove delivery Block in Sales order

    Hi Gurus,
    I have a requirement to select all sales orders as per a condition and remove delivery block at
    VA02-> Go to -> Header -> Status
    For that I have to write a program which will be run only in background and i have to schedule background job for the same.
    I have a parameter at selection - No of records
    If no of records = 500 , I have to submit 500 jobs ie one job each for each sales order for removing delivery block.
    I need to know
    1) Which function module/bapi I can use to remove delivery block at sales order header level.
        For blocked delivery the status is 'BSTK" . to remove block i need to change status to "RSTK".
    2) How to schedule a background job for my program and how to submit one job each for each sales   order.
    Regards
    Avi.

    Hi Avi,
    Would like to seek for your advice. I am facing the same scenario too which is to delete the delivery block but is deletion of the delivery block is done in the user exit MV45AFZZ. The subroutine which needs to have the extra logic of deleting the delivery block is USEREXIT_SAVE_DOCUMENT_PREPARE.
    Need your advice on how do you solve this scenario? Thanks in advance.

  • Credit block a sales order or delivery individually

    Hi
    If I just wanted to block a sales order or delivery because of a credit issue,  but did not want the customer to go on credit block/hold,  is the only way to do this use the delivery and billing block.  I can't remember being aware of any other blocks we can use
    Please advise.
    thanks

    Hi Kyliesjordan
    It depends on if you want the customer's credit exposure be impacted or not. If you are not bothered about the credit limit, then you can go for order blocks as mentioned by you.
    If you want the system to be updated for credit exposure then you can configure simple/automatic credit checks as per your requirement.
    Best Regards
    Sathees Gopalan

  • Automating delivery blocks in sales orders

    Hi,
    We have a delivery made with ref to a sales order. The goods are third party warehouse managed.When the goods are no longer needed, a third party warehouse sends an idoc in our system. This idoc deletes the delivery in our sap system and as soon as the delivery is deleted, the system also puts a delivery block(VBAK-LIFSK) in sales order at header level so that no further deliveries are made with ref to sales order.
    There is an issue at present that this delivery block is not set in sales order when the delivery is deleted.
    could anybody pls help where the code might have been written to automatically put the delivery block in sales order when the delivery is deleted.
    regards

    Hi,
    Just code the delivery block logic in DO user exit MV50AFZ1 routine "userexit_delete_document".
    Thus, when DO deleted then system will auto set delivery block to SO.
    Hope this help.
    Cheers,

  • Removing of Delivery block in Sales Order using Authorization

    Hello,
    I have a urgent requirement on removing a Delivery block using authorization.
    The object V_VBAK_AAT is assigned to me and the ACTVT : 43 is permitted so I can release the block.
    As this was  not working I have created my own object with values ACTVT as 01, 02 , 43 and LIFSK : 1-10,11,12-99 .
    I am trying to remove the block from VA14L from VA14L I select my order with respect to delivery block and it navigates to VA02.
    From VA02 I am trying to remove the block.
    As this requirement may be simple but it is blocking my development.
    Thanks.

    Please correct whether I understood your issue correctly or not.
    You have developed the program only to put delivery block to Sales Order. This block should be approved by Authorized people for allowing the users to create delivery else Sales order delivery should not be possible. Is that program has any other additional functionality other than setting Delivery block??
    To keep delivery impossible till the Authorized person approves Sales order, you have the option of User Status. Process for creation of User Status for your requirement
    Create User Status Profile in OIBS
    Keep BLCK (Blocked for Delivery) & APPR (Approved for Delivery) as 2 statuses (No. of status can be as per your requirement. Here, simply I have 2 statuses)
    Assign Object types as "Sales Order Header" (if you want the Authorized people to approve at header level) or "Sales Order Item" (if you want the Authorized people to approve at Item level, may be for partial delivery)
    Keep BLCK as Initial status & Double click on BLCK status & click New entries on "Business transactions"
    There are many Business transactions such as "Create Delivery" / "Create Goods Issue for delivery". As per your requirement, select Forbidden option in one of the above mentioned business transaction
    Create Authorization Key in BS52 for Authorized People, say, as MNGR (Manager)
    Assign that Authorization Key to APPR user status in User status profile
    Using PFCG, you can create separate role by assigning this Authorization key
    This can be different kind of solution from your way. For reference, you can refer below document. Document content points some other space & transaction. But you can relate to above steps mentioned.
    User Status in SAP

  • 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 Exit for Updating Delivery Plant at Item Level in Sales Order

    Hello Experts
    There is a requirement to determine the delivery plant for each item level and than update the items with newly determined plant.  There is a user exit MV45AFZZ routine FORM USEREXIT_MOVE_FIELD_TO_VBAP. to update the item level entries in Sales Order in VA01 or VA02. Is this the right place to do this?, if yes , do i need to perform any other standard logic (like re determine Shipping points , schedule lines ) for newly determined plant? If not , can you please suggest any other place , BADI or user exit to change the delivery plant of sales order.
    Thanks a lot....
    -Harkamal

    Best place is MV45AFZZ-USEREXIT_SAVE_DOCUMENT_PREPARE. Populates the values just before saving the document. You can have your own deriving logic. Make sure that peice of code is trigger only for Sales Order create or change (VA01/VA02).
    Are you kidding???  You do realize that this is AFTER all validations against configuration, ATP, pricing, etc. have been performed??!!!  Never, ever change a critical value like plant in the SAVE user exits...

  • 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

  • BADI or User Exit for updating MSEG

    Hi,
       We are using ECC 6.0 and here is the scenario that we have to update custom fields into VBAP, LIPS and MSEG tables when these fields are entered on the sales order screen VA01,VA02.These field are added on this screen using Additional Data B screen.Also, These fields are there in VBAP and LIPS through Append Structure and MSEG through CI_COBL.Is there any BADI or USER EXIT for this.Thanks in Advance.
    Priya.

    Hi
    You can use exit ZXMBCU02 ( Function EXIT_SAPMM07M_001
    in SAP enhancement MBCF0002 ). Here also whtever changes you make to I_MSEG will be lost as MSEG is an importing parameter. You can do something like this.
    FIELD-SYMBOLS <F1> TYPE MSEG.
    DATA NAME(50) VALUE '(SAPMM07M)MSEG'.
    ASSIGN (NAME) TO <F1>.
    <F1>-KOSTL = 'XXXX'.
    ( In above example MSEG-KOSTL will be set as XXXX, you can change any of MSEG fields in above way. ).
    Cheers

Maybe you are looking for

  • Report Document not show on Crystal Report Viewer in C#

    My program is modified from VB.NET. Now I struck with Crystal Report that Crystal Report Viewer didn't show Report Document. Printing code is composed of two forms. One assign parameters and objects need. Other is Crystal Report Viewer form, CrystalR

  • Read Error During PC Upload

    Hi Experts, When I attempt to attach a document to a PO (ME21N/ME22N) I get an error message say: Read Error During PC Upload : Include File in PC Application The funny thing is, some users can make attachments, others cannot. Is this a profile or au

  • Office for Mac issues with Lion

    Since installing Lion, I no longer have access to my Office for Mac Excel, Word, or PowerPoint...is there a simple fix for this?

  • What plug ins, extensions, settings, etc. mess with Disqus?

    I have Firefox 22 on Widows 8 with a bunch of plug ins, add ons. But even when i disable the those i still can't log in to Disqus to comment on sites that use it for their comment section ... i have contacted them and gotten no resolution ....

  • Impact on Keynote 09 after software change into OSX 10.6.2

    I noticed unpleasant surprise on my latest slides presentation apparently connected with the just done update to the latest Snow Leopard software version - any of the description (titles) on the individual slides has been lost. They are still visible