User Exit EXIT_SAPLMEREQ_010

Hi,
I have implements the user-exit <b>EXIT_SAPMM06E_012</b> to validate the Purchase order. The following is an extraction of the code:
*========================== VALIDATE PO ITEMS
  LOOP AT tekpo.
*   Validate Material group for all non Material purchases
    IF tekpo-matnr IS INITIAL.
*     I01 Validate Material group active
      CLEAR: t023t.
      SELECT SINGLE * FROM t023t WHERE matkl = tekpo-matkl
                                 AND   spras = sy-langu.
      IF NOT sy-subrc = 0.
        IF NOT tekpo-id IS INITIAL.
          mmpur_business_obj_id tekpo-id.
          mmpur_metafield mmmfd_mat_grp.
        ENDIF.
*E      The material group & does not exist
        mmpur_message_forced 'E' 'MM' '086' tekpo-matkl '' '' ''.
        w_e_error = 'X'.
      ELSEIF t023t-wgbez = 'DO NOT USE'.
        IF NOT tekpo-id IS INITIAL.
          mmpur_business_obj_id tekpo-id.
          mmpur_metafield mmmfd_mat_grp.
        ENDIF.
*E      Material group & is inactive. DO NOT USE
        mmpur_message_forced 'E' 'Z_MM06E005' '001'
          tekpo-matkl '' '' ''.
        w_e_error = 'X'.
      ENDIF.
The statements <b>mmpur_business_obj_id</b> and <b>mmpur_metafield</b> correctly group the error messages per Item number and allow you to edit the field directly from the Messages while the mmpur_message_forced populate the Messages screen.
Now I am implementing the same validation for the Purchase requisition using user exit <b>EXIT_SAPLMEREQ_010</b>. According to OSS Note 310154 the export parameter should be used for all errors.
<i><u>OSS Note 310154</u> - Do not output the messages yourself but use the corresponding export parameter of the function exit to store all your messages there.
This parameter is transferred back to the standard program which carries out the message output.</i>
This does populate the Messages screen, but the messages are all displayed as Header messages and not with regards to the relevant Item.
Since the macros <b>mmpur_business_obj_id</b> and <b>mmpur_metafield</b> does not exist in the user exit, how do I go about to report the error messages correctly in the messages screen. Please refer to the below example coding that I used.
DEFINE m_message.
  wa_message-type       = &1.
  wa_message-id         = &2.
  wa_message-number     = &3.
  wa_message-message_v1 = &4.
  wa_message-message_v2 = &5.
  wa_message-message_v3 = &6.
  wa_message-message_v4 = &7.
  append wa_message to ex_messages.
END-OF-DEFINITION.
* I01 Validate Purchase group active
  CLEAR: t024.
  SELECT SINGLE * FROM t024 WHERE ekgrp = wa_eban-ekgrp.
  IF NOT sy-subrc = 0.
*E  Purchasing group & not defined (please check your input)
    m_message 'E' 'ME' '011' wa_eban-ekgrp '' '' ''.
    w_e_error = 'X'.
  ELSEIF t024-eknam = 'DO NOT USE'.
*E  Purchasing group & is inactive. DO NOT USE
    m_message 'E' 'Z_MM06E005' '000' wa_eban-ekgrp '' '' ''.
    w_e_error = 'X'.
  ENDIF.
Thanks and best regards,
Jacques Botha

Hello,
I've tried your approach. However, the cursor still does no position on the error fields when I select the error message from the messages popup and select "Edit".
Bellow the code used:
METHOD if_ex_me_process_req_cust~check.
  INCLUDE mm_messages_mac.
  DATA : lt_item TYPE mmpur_requisition_items,
         ls_item TYPE mmpur_requisition_item,
         lo_ref TYPE REF TO if_purchase_requisition_item,
         ls_items TYPE mereq_item.
  IF sy-tcode = 'ME51N' OR sy-tcode = 'ME52N' OR sy-tcode = 'ME53N'.
* Retreving Item details
    CALL METHOD im_header->get_items
      RECEIVING
        re_items = lt_item.
    LOOP AT lt_item INTO ls_item.
      lo_ref = ls_item-item.
      CALL METHOD lo_ref->get_data
        RECEIVING
          re_data = ls_items.
      IF ls_items-idnlf CS 'test'.
        mmpur_message 'E' 'ME' '303' 'text1' 'text2' 'text3' 'text4'.
        ch_failed = mmpur_yes.
      ENDIF.
    ENDLOOP.
  ENDIF.
As you can see whenever field IDNLF has the value 'test' a message is triggered. How can I relate this message to a specific field and more important to an item?
Thank you in advance for any help,
Stefan

Similar Messages

  • User exit or BADI for Tcode ME51N

    Hi All,
    My requirement is i need to check available quantity at the time of Purchase req creation. If PR quantity is available in stock then it should not allow to create new PR.
    Is there any user exit or Badi for this requirement. Kindly send me.
    Regards,
    Paras

    Hai,
    User Exit:  MEREQ001
    Function exit             EXIT_SAPLMEREQ_001  
                                   EXIT_SAPLMEREQ_002  
                                   EXIT_SAPLMEREQ_003  
                                   EXIT_SAPLMEREQ_004  
                                   EXIT_SAPLMEREQ_005  
                                   EXIT_SAPLMEREQ_006  
                                   EXIT_SAPLMEREQ_007  
                                   EXIT_SAPLMEREQ_008  
                                   EXIT_SAPLMEREQ_009  
                                   EXIT_SAPLMEREQ_010  
    Screen exit               SAPLMEGUI           
    Include tables           CI_EBANDB           
                                   CI_EBANMEM

  • User Exit/BADI to change the Purchase Requisition date,creating threw MD02

    Hi,
    I've a requirement to change the Purchase Requisition creation date.
    I'm using MD02 to create Purchase Requisition.
    Based on the requirement if the available qty is less than the required quantity,we can change Purchase requisition date.
    Please let me know if any BADI's/User Exits we can use for this purpose.
    I've checked EXIT_SAPLMEREQ_010. I've kept debugging point nad i run MD02, but it is not stopping in the exit.
    we are using SAP 4.6c.
    Thanks,
    Adi.

    Hi Experts,
    Could you please give me a suggestion for the above problem???
    Thanks,
    Adi.

  • User Exit For Purchase Requisition *** FM

    Hi all,
    We have Funds management activate system.
    While creating purchase requisition currently system displays the msg if available balance is exausted.
    My requirement is :
    During PR creation, each time it should pop up a message of the available fund in the fund center selected by the user no matter it is exausted or it is available.
    Is there any user exit available for this while PR creation.I searched enhancements for PR but they are of no use.May in Funds Management some exit will be there.
    Please help.
    Regards,
    Sunny

    Hi,
    Please check the the FM EXIT_SAPLMEREQ_010 of user exit MEREQ001.
    Thanks and Regards,
    Jayakrishnan R

  • User Exit for ME51/ME52

    Hi everyone.
    I'm looking for a user exit for these transactions, specifically around requisition save.
    I've seen previous posts regarding MEREQ001, but I can only seem to get it to work with ME51N/ME52N, which we have not turned on for the users.
    Thanks.
    Heather

    Heather,
    I think you have to find an exit witch is executed on the correct momment witch you have to develop your solution.
    So, what momment are you trying to intercept on the transaction ? in the save momment, etc... so, try to put a break-point in each to find it.
    I know these for requisition:
    EXIT_SAPLMEREQ_001
    EXIT_SAPLMEREQ_002
    EXIT_SAPLMEREQ_003
    EXIT_SAPLMEREQ_004
    EXIT_SAPLMEREQ_005
    EXIT_SAPLMEREQ_006
    EXIT_SAPLMEREQ_007
    EXIT_SAPLMEREQ_008
    EXIT_SAPLMEREQ_009
    EXIT_SAPLMEREQ_010
    good luck.
    Glauco

  • User Exit to change PR valuation price

    Dear SAP Experts,
    My requirement is to pick up info-record or contract price as valuation price when creating PR (Purchase Requisition) - t-code ME51N.
    I've been aware that there is no configuration that can be set to accomodate this requirement. Therefore ABAP enhancement is needed for this matter.
    I've noticed that enhancement MEREQ001 (EXIT_SAPLMEREQ_001 - EXIT_SAPLMEREQ_010) can be used for PR creation. But no exit that can be successfully used to change the PR valuation price (EBAN-PREIS) on creation mode.
    Can anybody please advise what other alternative that can be applied?
    Thank you.
    Kind Regards,

    HI
    Exit Name  Description 
    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 
    hope this helps
    regards
    Aakash Banga

  • User exit ZXPADU02 - evaluating SY-UCOMM

    Hello everyone,
    I am trying to display an error message whenever someone tries to create a new work schedule rule (P0007-SCHKZ) in infotype 7. However, the error message should just come up when the user is trying to save his data.
    I am using user exit ZXPADU02 for this purpose. My problem is that SY-UCOMM does not seem to hold reliable data in this user exit, and SSCRFIELDS does not seem to be supported at all.
    My code looks like this (only the relevant code snippet in ZXPADU02):
    CASE INNNN-INFTY.
            WHEN '0007'.
          CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
            EXPORTING PRELP = INNNN
            IMPORTING PNNNN = P0007.
          CALL METHOD CL_HR_PNNNN_TYPE_CAST=>PRELP_TO_PNNNN
            EXPORTING PRELP = PSAVE
            IMPORTING PNNNN = P0007_ALT.
          IF P0007_ALT-SCHKZ <> P0007-SCHKZ
          AND IPSYST-MASSN IS INITIAL " do not warn within an info group of a personnel action
          AND SY-UCOMM = 'UPD'. " only warn when saving the data -> problem here <-
            MESSAGE 'Do not change IT7 directly or else.' TYPE 'I' DISPLAY LIKE 'E'.
            SHOW_DATA_AGAIN = 'X'.
          ENDIF.
    At first glance, the above works nicely.  But this is what happens when I test more thoroughly:
    I create a new period in IT 7, enter a P0007-SCHKZ other than the one that was previously valid, press F11. Some warnings appear (for different reasons), which I dismiss using the Enter key. Afterwards, the above code fires, the error message is being displayed, and I am thrown back into the data screen. So far, so good.
    Now I simply alter the value in the field "Weekly hours" (P0007-WOSTD) and press Enter (!). Again a series of warnings appear, including one that a dataset is going to be deleted (seeing that an IT 7-period with just the same date range already exists). I confirm that with Enter, and the data is being saved. The above code does not fire because I have only pressed Enter - but the data is being saved anyway!
    Looks like a pretty erroneous behavior on the side of the SAP system. The question is whether I have a chance to do something about it in the code.

    Mihir Nagar wrote:
    Dear Petersen,
    Your IF condition seems ok. I doubt on the message statement. Can you replace your message statement with type E.
    MESSAGE 'Do not change IT7 directly or else.' TYPE 'E'.
          ENDIF.
    Hope this works.
    Regards,
    Mihir.
    I did not expect this to work, because normally you use type 'E'-messages only in certain PAI-environments, but it does the job, thank you!
    make use of  field IOPER of the structure  PSYST to check on the infotype actions INS, MOD, COP, DEL...
    In this particular case I did not care, so I did not check that. IT 7 should only be maintained through personnel actions in our case.
    Next you can check with sy-ucomm field the different between "enter" and "save". With "save" sy-ucomm will be 'UPD'.
    That is what I did, but as I described, there was a situation when SY-UCOMM is SPACE, but the system saved anyway due to a prior save attempt.

  • Using a variable not in the Export,Import, table Parameters in USER EXIT

    Hi all,
       During the Invoice Creation, I need to add an entry in the VBFS table, so that it will be displayed in the system log.  In the FM 'RV_INVOICE_CREATE', the structure corresponding to it is XVBFS.  There is a user-exit   CALL CUSTOMER-FUNCTION '002', in this FM 'RV_INVOICE_CREATE'.  But the import, export or Table Parameters does not have XVBFS.
      How can I use XVBFS inside the User exit?..
    Please help.
    Regards,
    Asha

    Hi,
    I dont know whether this will help u...
    write this in user exit...to access variables/tables of main program..
    FIELD-SYMBOLS: <komv>.
    ASSIGN ('(SAPLMEPO)TKOMV[]') TO <komv>.
    where.. SAPLMEPO is the main program...and TKOMV[] is a internal table in SAPLMEPO.
    regards
    Sukriti....

  • How to find out the user exit is implemented

    Hi All,
    Kindly let me know the process to be followed to find out the User exit is implemented in SAP system.
    I have seen many senriors suggestions for some treads to check if there is any Exit is implemented in the process when the system is behaving differently rather standard.
    Is it the only way with help of ABAP'er we can find out or the functional consultant also can find out through some procedure?
    I tied in google for this doubt, but i could not get the relavant answer.Pleaea execuse me if this already answered.
    Thanks,

    Hi Krishna/TW,
    Thank you for your immediate replies. Sorry i think i have not explained correctly my requirment.
    Let me explain my requirement once again.Let us say Comapny has implemented one Exit in the project, now i want to find out what exactly the Exit was implemented.
    Example: In STO process user is able to increase the  qty in delivery. As per the client requriement system should not allow.
    This is not possible in standard to control even after maintainig  check over delivery field in 0VLP.
    For this comapny has already implemented one enahnceament.
    User Exit : USER EXIT_READ_DOCUMENT
    Program: MV50AFZ1
    like this when any one joined in the project we do not know what are all the Exits are implemented in the SAP system where we are working.
    So if i want to find out if there is any Exit or enhancement implemented, what is the process to find out?
    I hope now  am clear with my requirement.
    Thanks in advance.

  • How to find out the user-exits?

    hi.
    how to find out the user-exits?
    regards
    eswar.

    Hi,
    *& Report  ZEXITFINDER
    *report  zexitfinder.
    *& Enter the transaction code that you want to search through in order
    *& to find which Standard SAP User Exits exists.
    *& Tables
    tables : tstc, "SAP Transaction Codes
    tadir, "Directory of Repository Objects
    modsapt, "SAP Enhancements - Short Texts
    modact, "Modifications
    trdir, "System table TRDIR
    tfdir, "Function Module
    enlfdir, "Additional Attributes for Function Modules
    tstct. "Transaction Code Texts
    *& Variables
    data : jtab like tadir occurs 0 with header line.
    data : field1(30).
    data : v_devclass like tadir-devclass.
    *& Selection Screen Parameters
    selection-screen begin of block a01 with frame title text-001.
    selection-screen skip.
    parameters : p_tcode like tstc-tcode obligatory.
    selection-screen skip.
    selection-screen end of block a01.
    *& Start of main program
    start-of-selection.
    Validate Transaction Code
    select single * from tstc
    where tcode eq p_tcode.
    Find Repository Objects for transaction code
    if sy-subrc eq 0.
    select single * from tadir
    where pgmid = 'R3TR'
    and object = 'PROG'
    and obj_name = tstc-pgmna.
    move : tadir-devclass to v_devclass.
    if sy-subrc ne 0.
    select single * from trdir
    where name = tstc-pgmna.
    if trdir-subc eq 'F'.
    select single * from tfdir
    where pname = tstc-pgmna.
    select single * from enlfdir
    where funcname = tfdir-funcname.
    select single * from tadir
    where pgmid = 'R3TR'
    and object = 'FUGR'
    and obj_name = enlfdir-area.
    move : tadir-devclass to v_devclass.
    endif.
    endif.
    Find SAP Modifactions
    select * from tadir
    into table jtab
    where pgmid = 'R3TR'
    and object = 'SMOD'
    and devclass = v_devclass.
    select single * from tstct
    where sprsl eq sy-langu
    and tcode eq p_tcode.
    format color col_positive intensified off.
    write:/(19) 'Transaction Code - ',
    20(20) p_tcode,
    45(50) tstct-ttext.
    skip.
    if not jtab[] is initial.
    write:/(95) sy-uline.
    format color col_heading intensified on.
    write:/1 sy-vline,
    2 'Exit Name',
    21 sy-vline ,
    22 'Description',
    95 sy-vline.
    write:/(95) sy-uline.
    loop at jtab.
    select single * from modsapt
    where sprsl = sy-langu and
    name = jtab-obj_name.
    format color col_normal intensified off.
    write:/1 sy-vline,
    2 jtab-obj_name hotspot on,
    21 sy-vline ,
    22 modsapt-modtext,
    95 sy-vline.
    endloop.
    write:/(95) sy-uline.
    describe table jtab.
    skip.
    format color col_total intensified on.
    write:/ 'No of Exits:' , sy-tfill.
    else.
    format color col_negative intensified on.
    write:/(95) 'No User Exit exists'.
    endif.
    else.
    format color col_negative intensified on.
    write:/(95) 'Transaction Code Does Not Exist'.
    endif.
    Take the user to SMOD for the Exit that was selected.
    at line-selection.
    get cursor field field1.
    check field1(4) eq 'JTAB'.
    set parameter id 'MON' field sy-lisel+1(10).
    call transaction 'SMOD' and skip first screen.
    Regards

  • How to find out appropriate user exit

    Hi,
    I want to know how to find out the user exit that matches to the requirement. Suppose for a material master program, there are so many include programs hence im unable to find call custer-function and even unable to debug an appropriate include. Please help me out how to learn user exits in a rightious way.
    Thanks
    Basu

    Look for program SAPICSS_ in your system and run it. This program can also be found under CMOD menu:  Utilities -> SAP enhancements.
    This will only give you the CMOD user exits.
    There is a program someone made that searches for all sorts of user-exits (including BADI's etc.). I remember that it was posted on sapfans.com
    Edited by: Maen Anachronos on Apr 6, 2009 3:22 PM

  • How to find out FICO user exits that are used by User

    How to find out the FICO user exits that are used by user.

    Go to tcode CMOD. In the project field drop down your list there. Put a Z* there and run the list. These should be all the exits that are activated. Search for the ones that pertain to FI. You can also search by development class. You need a little ABAP knowledge to search easily. You get this by going to the tcode then to status then to the program then to the attributes. There you find the development class. Ie FBAS.
    pls assign points if helpful as a way to say thanks.

  • Free Goods Problem and User Exit if needed in Sales Order

    Hello All,
    The problem is related to Free Goods in Sales Order which is given with an example -
    We have maintained Free Goods ( T Code - VBN1) in inclusive scenario which is as follows -
    For 210 PAC (Pack) of Material A 18 PAC Free.
    Where 1 PAC = 20 BT (Bottle) and 20 PAC = 1 CV (Case Pack)
    In the material master of Material A the Base Unit Of Measurement (UOM) = PAC and Sales UOM = Blank so that we can use any conversion factor maintained for the material.
    The conversion factors maintained for Material A are as follows -
    1 BT = 1BT
    1 PAC = 20 BT
    1 CV = 20 PAC
    Now when we are raising sales order for 11 CV the free goods are not generated in the Sale Order.
    Again if we maintain the Sales UOM in CV and raise the sales order it is showing :
    10 CV as main item and 1 CV as Free which is wrong because in the conversion factor we have already maintained 1CV = 20 PAC , Whereas in the inclusive scenario it is given 11CV = 210 PAC and 210 PAC = 18 PAC is free.So in any case it is taking into account 2 more PACs.
    Please suggest what need to be done in this case in respect of User Exit or Source Code in ABAP if needed.
    Thanks & Regards
    Priyanka Mitra

    Hello Priyanka Mitra,
    We are facing a problem same as you.
    How did you solve this problem?
    We are very glad if you teach it concretely.
    Please advise your solution to us.
    Thanks.

  • User Exit/ Badi for Changing Quant parameters during TO Creation

    Hi Gurus,
    Could you please guide me to advice the User Exit/Badi which can be used for changing Quant Data during TO Creation.
    User Requirement: Using "Recepient Field" in MIGO as a Key Value for FIFO in WM during goods issue. Receipient is copied into TR and TO (Standard SAP Functionality). For the purpose of Stock Removal based on Receipient Value, we need to copy this value into Quant Data field named Certificate Number ("LQUA-ZEUGN").
    I will highly appreciate reply from Gurus.
    Regards,
    Gupta M

    Hi manish,
    Use the Exit MWMTO001 for this purpose and modify the table accordingly. This will solve your problem.
    Thanks,
    Shibashis

  • BADI/user exit for transcation code "BP" in CRM

    Hi Experts,
    Is there a BADI / user exit that is triggered after successful saving/updating of Business Partner using transaction code "BP"?
    We want to send general infos such as partner number, Name, Birth date, etc. about the business partner being created/updated using IDoc.
    We are using CRM WinClient 4.0.
    If you know  the steps on how this requirement will be done, kindly post them.
    Thank you very much.

    I don't have any CRM system at hand, but I'm sure there are some BAdI's for this. Look in SE18 for BP or BUS, and i'm sure  you will find something.
    One suggestion though: Before going for the BadI, try and see if CRM also uses change pointers for sending Idoc's . This case you wont need any user exits / badis, an probably no programming at all.
    Transaction
    BD50: Activate Change Ptrs for Mess. Type
    BD61: Activate Change Pointers - Generally
    and use report RBDMIDOC for triggering IDoc.

Maybe you are looking for

  • PO Qty is getting Aggregated.

    Hi All, I am having a requrement like i need Invoice Accouting Doc No, GR Accouting Doc No,GR Qty.IR Qty ,PO no and PO Qty. I have created one cube which is getting updated from FI ODS for the PO No and PO Qty i have written a routine in Update rules

  • Consignment stock, make to order scenario

    Hi We have a material which produce make to stock and make to order also. In case of make to stock its fine. But when we are testing make to order then following is system behavour. Action     Mvt Type     Accounting Document                GR     10

  • Swing - colored text in Combo Box?

    Hello! I'm playing around with swing, and i would like to display a "coloured" list in my combobox. The user can select "red","green" and so one. "Red" should be written in red, "green" in green.. Is this possible?? I can only change the color of the

  • PGR error in sales return delivery in MTO scenario

    Hello all, I am working on sales return scenario and creating delivery against the sales return order VL01N. Return sales order is created against the delivery which is created against the MTO sales order. So I am getting an error in VLO1N at the tim

  • How to reset CS3 after W7 restore point Actv 24:24

    Cannot activate my CS3 after having to use a recent Restore point, now get the Activate 24:  24 code My ver. is a PS7-upgrade to CS3.   DO I have to do a uninstall - reinstall ?