Skip to Content

Confusion about finding customer exit

Hello everyone,

I am sorry but I have a trivial issue that I am confused about. I have never faced a real time scenario regarding customer exits, so I was practicing 1 of them myself (from a document). I came across a requirement to find customer exit for the tcode VL02N.

Now, I always knew that I had to find the package name of the particular tcode in question and get the name of the exits from SMOD. Here , the package is showing as VL.

As a result, all the exits pertaining to this package are shown in SMOD:

But, in the document that I was practicing from, it showed that the enhancement V65K0001 was used for the VL02N tcode and it was from package VTRK ! Now I dont know how that is possible as it wasnt shown in the document. Can anyone please let me know from where VTRK package came from since I was searching using the VL package ?



screenshot.jpg (38.9 kB)
screenshot.jpg (126.0 kB)
Add comment
10|10000 characters needed characters exceeded

  • I guess the document which is showing the package as VTRK is problematic. I think you should just continue your practice using the exits available for VL and just ignore the exit given in that documentation. Or if you are really concerned about that exit, please try to contact the author of that document.

    You may refer to the below video to supplement your learning process:

  • Get RSS Feed

2 Answers

  • Best Answer
    Jan 08, 2018 at 10:45 AM

    Dear Manish,

    To get the answer of your question, you first have to understand that all the different applications/modules are interlinked. For example, a Purchase Order (MM - Tcode ME21N/ME22N etc.) has links with Inbound Delivery (SD - Tcode VL31N/VL32N) through which it is going to receive goods. Similarly, you would related to the fact that an Outbound Delivery has relationship with an Outbound shipment through which it is going to transport the goods. Therefore, at some stage or the other in a particular transaction code, programs of other interrelated modules are also called.

    For above example, a program related to outbound delivery may run certain validations/checks on the linked outbound shipment such as any change in quantity in the delivery must also change the quantity in shipment. Isn't it?

    Therefore, exits belonging to one package may be called by the programs/tcodes belonging to a different package which are interlinked in some manner.

    For your case, package VL belongs to the objects associated with delivery while the package VTRK belongs to the objects associated with Shipment (Transactions VT01N, VT02N etc). Therefore, no surprise an exit from VTRK package is called during execution of tcode VL02N (i.e. Change Outbound Delivery).

    Hope this clarifies your doubt. Let me know your feedback.



    Add comment
    10|10000 characters needed characters exceeded

    • Hi Manish,

      You don't have to search multiple tcodes to get an enhancement. In fact, no one can remember what all other tcodes are linked with a tcode in question. But it is not that difficult to find the user-exits encountered for a tcode. You can adopt any of the below methods to get the customer-exit:

      (I am suggesting these steps specifically in context of Customer-exits and not BAdIs).

      1. All you have to do is run the tcode in question and put a break-point on ABAP statement 'CALL CUSTOMER-FUNCTION'. This will make system make a stop at all the customer exits. And you can either figure out the exit name by double clicking the exit call or you can figure the exit FM name as per below eg.:

      Suppose, the control breaks at below statement which happens to be in include LV56UF03.

         OTHERS = 1.

      Then, the customer-exit name would be EXIT_SAPLV56U_004. Hope you got the naming convention. Then you can figure out looking at its interface whether it is suitable for your requirement.

      2. If you already know under which particular functionality your supposed enhancement falls in, you can directly check the exits in the package of that tcode.

      For eg., in your case although you want to implement the enhancement for VL02N but if it has something to do with Shipments (e.g., you want to run certain checks based on Shipment tables) you can directly look for exits in the package of VT02N, provide you already know the related tcodes. Although ultimately you have to put a breakpoint in the exit you find and check whether it is hit from VL02N.

      3. Besides, Google is always a better option to search for the exit names as suggested in a post. It will also help you know whether there is any BAdI as well for your requirement.



  • Jan 04, 2018 at 09:04 PM

    From the top of my head, there are BADIs available for the delivery processing, so no need to search for old-timey user exits. Honestly, if you just type what you want to achieve and add "user exit" or "BADI" and "" in Google then most likely you'll find an answer.

    Starting point: Google -> "VL02N BADI" -> 848 results.

    Add comment
    10|10000 characters needed characters exceeded