Userexit for PO Creation (ME21N)

Hi All,
The need is to code an userexit in ME21N to fetch TEXTS ( like BOM Header Text ) and populate the same onto the PO. This Userexit should fire as the user keys in the LINE ITEMS on a PO and HITS ENTER. The exit will check the entry and display error messages if need be.
If anyone has done such a thing before please do let me know.
Thanks in advance,
RK

Hi Ravi
Use trx SE19 to implement your BADI: create an ZME_PROCESS_PO_CUST using ME_PROCESS_PO_CUST as definition.
Now in Interface Tabs you can see the METHODs you can use as "user-exit", in particular there's PROCESS_ITEM to manage items data.
You have to write your code into this method.
This method has IM_ITEM like parameter in its interface, and it's like the type IF_PURCHASE_ORDER_ITEM_MM.
This type has the method IF_LONGTEXTS_MM~SET_TEXT, you can try to use it to set your text in item.
This is code for example:
DATA: TLINE TYPE MMPUR_T_TEXTLINES.
CALL METHOD IM_ITEM->IF_LONGTEXTS_MM~SET_TEXT
           EXPORTING
             IM_TDID      = <YOUR ID>
             IM_TEXTLINES = TLINE. 
So you should read the text you want to copy and pass it to TLINE.
You can use the METHOD PROCESS_HEADER to read the text you need. This METHOD has IM_HEADER as parameter and it's like the type IF_PURCHASE_ORDER_MM, this type has the method IF_LONGTEXTS_MM~GET_TEXT to read header logn text.
Anyway while you're in implementation of the BADI go to:
GoTo->Sample Code
Here you can try an example how to implement the method you need to use.   
Max
Message was edited by: max bianchi

Similar Messages

  • User Exit for PO creation(me21n and me22n) - A/c assgn Category is existing

    Hi all,
    I would like to have your guidance to find out an appropriate EXIT to meet the following req.
    Requirement is such that : This EXIT should generate a G/L account automatically (or over-write the existing G/L a/c) during any PO creation(me21n and me22n tcodes - before saving) based on the fields(mandatory) :
    A/c Assignment Category,
    Material,
    Company code and
    Vendor
    entered by the user(during his/her PO creation activity)
    The identified EXITS as of now are EXIT_SAPLEBND_002 (But the package is not matching our PO tcodes : me21n and me22n)
    and EXIT_SAPMM06E_017(Package ME- same as tcodes me21n,me22n)
    and even other Exits available for PO based on <b>before saving</b> activity.
    Even I tried out creating a PO in debugging mode(with break points set at the above EXITs).
    Please do help me out at the earliest to identify the appropriate EXIT to meet this requirement.
    With Regards,
    Srividya

    Hi!
    in SMOD give MM06E005 enhancement
    FM name
    EXIT_SAPMM06E_017
    This will be triggered during saving.
    Regards
    Tamá

  • Aborting the processing for PO Creation (ME21N)

    Hi friendz,
    I want to stop/restrict the PO creation (ME21n) on specific condition. I have to check this condition in BADI-Method. How can I do this?

    see the code
    METHOD if_ex_me_process_po_cust~check.
      ch_failed = gv_error_exists.
    ENDMETHOD.
    gv_error_exists is defined in private section and whenver i want to rais ethe message and want to stop the po to be saved i set the gv_error_exists to 'X'.
    regards
    kanishak

  • 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

  • Is there any userexit for MIR7 and   MIRO transaction?

    Hai friends,
           Is there any userexit for MIR7 and MIRO transaction at the time of pressing "save as completed" or "save" button. I want to check the sales certificate and invoice verification for the document number entered in MIR7 and MIRO.
    Regards,
    safiq
    NOTE:useful points will be rewarded.

    hi,
    these r the exits related to mir7.
    Transaction Code - MIR7                     Park Invoice
    Enhancement/ Business Add-in            Description
    Enhancement
    LMR1M001                                User exits in Logistics Invoice Verification
    LMR1M002                                Account grouping for GR/IR account maintenance
    LMR1M003                                Number assignment in Logistics Invoice Verification
    LMR1M004                                Logistics Invoice Verification: item text for follow-on docs
    LMR1M005                                Logistics Inv. Verification: Release Parked Doc. for Posting
    LMR1M006                                Logistics Invoice Verification: Process XML Invoice
    MRMH0001                                Logistics Invoice Verification: ERS procedure
    MRMH0002                                Logistics Invoice Verification: EDI inbound
    MRMH0003                                Logistics Invoice Verification: Revaluation/RAP
    MRMN0001                                Message output and creation: Logistics Invoice Verification
      Business Add-in
    INVOICE_UPDATE                          Business Add-In: Logistics Invoice Verification
    put a break point in each exit,like break username and test the transaction .

  • Can info record made mandatory for PO-Creation

    Hi folks,
    Requirement : PO should not be created if inforecord doesn't exist.
    How can this be acomplished ?
    Regards.

    Hi,
    Why you require to make the info record mandatory?
    Following may be some settings to be done -
    1) If you want to make info record mandatory (whether the conditions are valid or not), make the info record fied in ME21N as mandatory.
    2) If you want that the users should not be able to enter the price manually in the PO, then make the conditions PB00 / PBXX as automatic (not changeable manually). Enter those details in info record, from which the same will be picked in the PO & will be greyed out (not changeable manually). Here, you can bifurcate the roles of the buyers for PO creation & Info Record maintenance.
    Regards,
    Prashant

  • Exit for PR creation

    Hi,
    The requirement is as below
    We have added some zfields in shopping cart at item level.
    These fields are transferred to R/3 and hence the z field data comes in the customer data tab of the PR.
    Now, there needs to be one special condition checked. If one of the field is X -> mark the item as deleted
    ie
    if zfield1 = 'X' -> loekz = 'X'
    I have used MEREQ001 for getting the zfields data in PR. I am getting all this data in PR.
    But when I used the check if zfield1 = 'X' -> loekz = 'X' in this exit, deletion indicator is not set.
    Can anyone please provide some exit for PR creation which can help to update the standard field based on the value of zfield at item level.
    Thanks
    Richa

    AMPL0001  User subscreen for additional data on AMPL
    LMEDR001  Enhancements to print program
    LMELA002  Adopt batch no. from shipping notification when posting a G
    LMELA010  Inbound shipping notification: Transfer item data from IDOC
    LMEQR001  User exit for source determination
    LMEXF001  Conditions in Purchasing Documents Without Invoice Receipt
    LWSUS001  Customer-Specific Source Determination in Retail
    M06B0001  Role determination for purchase requisition release
    M06B0002  Changes to comm. structure for purchase requisition release
    M06B0003  Number range and document number
    M06B0004  Number range and document number
    M06B0005  Changes to comm. structure for overall release of requisn.
    M06E0004  Changes to communication structure for release purch. doc.
    M06E0005  Role determination for release of purchasing documents
    ME590001  Grouping of requsitions for PO split in ME59
    MEETA001  Define schedule line type (backlog, immed. req., preview)
    MEFLD004  Determine earliest delivery date f. check w. GR (only PO)
    MELAB001  Gen. forecast delivery schedules: Transfer schedule implem.
    MEQUERY1  Enhancement to Document Overview ME21N/ME51N
    MEVME001  WE default quantity calc. and over/ underdelivery tolerance
    MM06E001  User exits for EDI inbound and outbound purchasing document
    MM06E003  Number range and document number
    MM06E004  Control import data screens in purchase order
    MM06E005  Customer fields in purchasing document
    MM06E007  Change document for requisitions upon conversion into PO
    MM06E008  Monitoring of contr. target value in case of release orders
    MM06E009  Relevant texts for "Texts exist" indicator
    MM06E010  Field selection for vendor address
    MMAL0001  ALE source list distribution: Outbound processing
    MMAL0002  ALE source list distribution: Inbound processing
    MMAL0003  ALE purcasing info record distribution: Outbound processing
    MMAL0004  ALE purchasing info record distribution: Inbound processing
    MMDA0001  Default delivery addresses
    MMFAB001  User exit for generation of release order

  • Userexit for SO Create/Change.

    Hi,
    Please tell me the userexit for the Sales Order Create/Chagne

    Hi,
    You can find the user exits in the include MV45AFZZ....
    Details are given below   :
    <b>User exits in the program MV45AFZZ</b>
    The user exits which you can use for modifications in sales document processing are listed below.
    •     USEREXIT_DELETE_DOCUMENT
    This user exit can be used for deleting data which was stored in a separate table during sales document creation, for example, if the sales document is deleted.
    For example, if an additional table is filled with the name of the person in charge (ERNAM) during order entry, this data can also be deleted after the sales order has been deleted.
    The user exit is called up at the end of the FORM routine BELEG_LOESCHEN shortly before the routine BELEG_SICHERN.
    •     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
    •     Modification group 4: is not used
    The FORM routine is called up for every field of a screen. If you require changes to be made, you must make them in this user exit.
    This FORM routine is called up by the module FELDAUSWAHL.
    See the Screen Painter manual for further information on structuring the interface.
    •     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 strong> "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 strong> "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 strong> "Copy customer master fields into sales document" .
    The user exit is called up at the end of the FORM routine VBKD_FUELLEN.
    •     USEREXIT_NUMBER_RANGE
    Use this user exit to define the number ranges for internal document number assignment depending on the required fields. For example, if you want to define the number range depending on the sales organization (VKORG) or on the selling company (VKBUR), use this user exit.
    The user exit is called up in the FORM routine BELEG_SICHERN.
    •     USEREXIT_PRICING_PREPARE_TKOMK
    Use this user exit if you want to include and assign a value to an additional header field in the communication structure KOMK taken as a basis for pricing.
    •     USEREXIT_PRICING_PREPARE_TKOMP
    Use this user exit if you want to include or assign a value to an additional item field in the communication structure KOMP taken as a basis for pricing.
    •     USEREXIT_READ_DOCUMENT
    You use this user exit if further additional tables are to be read when importing TA01 or TA02.
    The user exit is called up at the end of the FORM routine BELEG_LESEN.
    •     USEREXIT_SAVE_DOCUMENT
    Use this user exit to fill user-specific statistics update tables.
    The user exit is called up by the FORM routine BELEG-SICHERN before the COMMIT command.
    Note
    If a standard field is changed, the field r185d-dataloss is set to X. The system queries this indicator at the beginning of the safety routine. This is why this indicator must also be set during the maintenance of user-specific tables that are also to be saved.
    •     USEREXIT_SAVE_DOCUMENT_PREPARE
    Use this user exit to make certain changes or checks immediately before saving a document. It is the last possibility for changing or checking a document before posting.
    The user exit is carried out at the beginning of the FORM routine BELEG_SICHERN.
    Working with User Exits
    Updating the document flow
    The total quantity to be billed is transferred to the sequential data record. Quantities which have already been billed are managed within the SAP system. This process is influenced by user exits. User exits directly influence the update of compressed document flow VBAPF in the system. This document flow accumulates quantities which have already been billed and compares them to new billing quantities. A new billing document is then created with the following quantity:
    Quantity to be billed = New quantity - quantity already billed
    Using user exits, you can specify the keys to which records of the compressed document flow are to be stored.
    santhosh

  • BADI or Userexit for ME2Xn for VERSION

    Hello,
    I want to know which is the BADI or USerexit for which in ME22n what ever the changes made in PO,Netprice or Delivery date it should create a NEW VERSION number,only if the Netprice is changed,new version is getting genarated....can any one help me regarding this please?
    Moderator message: please work yourself first on your requirement, search for available information.
    Edited by: Thomas Zloch on Dec 1, 2010 11:43 AM

    List of all U-Exists for ME22N:
    AMPL0001            User subscreen for additional data on AMPL
    LMEDR001            Enhancements to print program
    LMELA002            Adopt batch no. from shipping notification when posting a GR
    LMELA010            Inbound shipping notification: Transfer item data from IDOC
    LMEQR001            User exit for source determination
    LMEXF001            Conditions in Purchasing Documents Without Invoice Receipt
    LWSUS001            Customer-Specific Source Determination in Retail
    M06B0001            Role determination for purchase requisition release
    M06B0002            Changes to comm. structure for purchase requisition release
    M06B0003            Number range and document number
    M06B0004            Number range and document number
    M06B0005            Changes to comm. structure for overall release of requisn.
    M06E0004            Changes to communication structure for release purch. doc.
    M06E0005            Role determination for release of purchasing documents
    ME590001            Grouping of requsitions for PO split in ME59
    MEETA001            Define schedule line type (backlog, immed. req., preview)
    MEFLD004            Determine earliest delivery date f. check w. GR (only PO)
    MELAB001            Gen. forecast delivery schedules: Transfer schedule implem.
    MEQUERY1            Enhancement to Document Overview ME21N/ME51N
    MEVME001            WE default quantity calc. and over/ underdelivery tolerance
    MM06E001            User exits for EDI inbound and outbound purchasing documents
    MM06E003            Number range and document number
    MM06E004            Control import data screens in purchase order
    MM06E005            Customer fields in purchasing document
    MM06E007            Change document for requisitions upon conversion into PO
    MM06E008            Monitoring of contr. target value in case of release orders
    MM06E009            Relevant texts for "Texts exist" indicator
    MM06E010            Field selection for vendor address
    MMAL0001            ALE source list distribution: Outbound processing
    MMAL0002            ALE source list distribution: Inbound processing
    MMAL0003            ALE purcasing info record distribution: Outbound processing
    MMAL0004            ALE purchasing info record distribution: Inbound processing
    MMDA0001            Default delivery addresses
    MMFAB001            User exit for generation of release order
    MRFLB001            Control Items for Contract Release Order
    best regards.

  • Userexit or BADI in ME21n

    I have requirement that when I create PO in ME21N,
    The Purchasing group should come automatically from Z table based on User ID in the ORG.Data Tab of header.
    Next is when I enter Material in Item,It should Check whether that material exists in that Purchasing group or not.
    This 2 enhancement I need.
    Can anybody suggest me which userexit or BADI i should use with details.
    Thanks
    Kumar N

    HiKumar ,
    Pls check the following steps to find the USER EXIT And BADI For ME21n:
    If u want to search the relevant exit for this, then the procedure is like this.
    Run the transaction ME21N.
    Go to Sytem->status.
    Get the package name from the dialog.
    Go to transaction SMOD and enter  F4 help in Enhancement field,then click on Information System write down the package name there its show u all the User exit.
    or
    If u want to search the relevant BADI, then the procedure is
    Go to the TCode SE24 and enter CL_EXITHANDLER as object type.
    In 'Display' mode, go to 'Methods' tab.
    Double click the method 'Get Instance' to display it source code.
    Set a breakpoint on 'CALL METHOD
    cl_exithandler=>get_class_name_by_interface'.
    Then run your transaction ME21N.
    The screen will stop at this method.
    Check the value of parameter 'EXIT_NAME'. It will show you
    the BADI for that transaction.
    The BADI Used For the transaction ME21N is ME_PROCESS_PO
    Then Run the transaction SE18,selectcheck box BADI write the BADI name cliuck on Display ,go for the documentation for that BADI ,then u fing which methods is suitable for ur requirment .
    I hope this will ok for u.
    Thank u ,
    Sanjit

  • Userexit For TCODE J1IJ depot excise invoice

    hi
    I want to know is there any userexit for depot excise invoice. That we can use to check weather excise entry date that is (J_1IRG23D-CPUDT) is equal to likp-WADAT_IST . Any info will be really helpful.
    Thank you

    Hi,
    Use this program SAPMJ1IJ in this program there are 4 includes.
    First try with  MJ1IJF01
    So check with your abaper which exit is working in this include.you can do it by setting break-point.
    Also check other includes MJ1IJTOP  MJ1IJO01  MJ1IJI01
    Thank you,

  • Duplicate check on search term for BP creation in CRM

    HI,
    I want to do a duplicate check on search term for BP creation in CRM.
    i found one BADI ADDRESS_SEARCH. But the method address_search is not getting called.
    Is there any other BADI available? how can I handle this issue?

    hello,
    BP is BDT (Business Data toolset) enabled (you can check it by adding break point in FM BUS_PBO and executing BP transaction). You can add your check directly to standard view (the check will be executed each time when user pushes enter) or you could add you check to appropriate action (during saving etc.) there are number of actions which you could use it depends on your requirements. You can find a lot of info about BDT (if you are not familiar) in Wiki.
    br,
    dez_

  • Functional module for automatic creation of pur requisition & pur order

    hello,
    what is the functional module for automatic creation of puchase requisition and automatic creation of purchase order which we will assign in action box in service order processing management.
    please let me know as early as possible
    regards,
    rajesh kumar raju

    Hi,
             Please check with following.
    IDOC_INPUT_ACC_PURCHASE_REQUI
    IDOC_INPUT_ACC_PURCHASE_ORDER
    /ISDFPS/OR_PURCHASE_ORDER_CR
    BS01_PURCHASE_DOCUMENT_CREATE
    CO_MP_CREATE_PURCHASE_ORDER
    Thanks & Regards
    Sadhu Kishore

  • Table for Plant Creation Date

    Hi,
    Can anyone tel me the  table name for Plant Creation date .?
    I searched in SDN but DBLOGTAB in my case has ZERO entries .Is thr any other way ?

    Hello,
    So i hope you get the reason why your are not getting the table changes in DBTABLOG
    You should take help of the basis team for doing this. PLease go through the SAP documentation for details:
    [http://help.sap.com/saphelp_nw04/helpdata/en/7e/c81ec852c511d182c50000e829fbfe/content.htm|http://help.sap.com/saphelp_nw04/helpdata/en/7e/c81ec852c511d182c50000e829fbfe/content.htm]
    [http://help.sap.com/saphelp_nw2004s/helpdata/EN/32/a479f0e083fc4386e66380e932497e/content.htm|http://help.sap.com/saphelp_nw2004s/helpdata/EN/32/a479f0e083fc4386e66380e932497e/content.htm]
    BR,
    Suhas

  • Table for Reservation creation Date

    All SAP Gurus,
    What is the Table for Reservation creation Date?
    Regards,

    Hi Vijay,
    Thanks for reply.
    Tables yiu have recommended do not have the reservation creation or updation date.
    Please correct me if I'm wrong.
    Regards,

Maybe you are looking for

  • How to copy OVD configuration from one machine to another?

    We have two machines with OVD servers on them. The configurations should be identical from one machine to the other. We suspect there is a problem with the configuration on one of them. We need to know how to copy OVD configuration from one machine t

  • Using Dazzle

    I have a dazzle (Hollywood DV bridge)that takes in s video and uses a firewire to input into the Powerbook G4. Problem is i-movie shows a realtime image but only in black and white. How do I get color ???? Note: the same arrangement was working on th

  • Upgrading my software to latest

    Hey you guys out there :-) .... I know this may be a piece of cake to you guys out ther who are good at this stuff but ....... I have OS X v10.6.8 on my iMac and want to update to the latest version of Mac software what route do I have to go as i am

  • ACE Load balancing with different source IP

      Dear All ,              I am very much new to ACE . We are deploying it on our enterprise infrastructure (10.x.x.x/8) . I have a setup like this, we have 5 Proxy server which is supporting for our enteprise internet needs . Load balancing to this 5

  • ADE doesn't start on windows 7,

    After the installation of ADE without error, I'm able to start ADE. But after restart of my PC I'm not able to start ADE. ADE doesn't start and no error messages appears. I can see ADE started in the "Windows task" but after few second ADE dissapears