Skip to Content

Confusion about finding customer exit

Jan 04 at 03:54 PM


avatar image

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)
10 |10000 characters needed characters left 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:

* Please Login or Register to Answer, Follow or Comment.

2 Answers

Best Answer
SAPEKSH GUPTA Jan 08 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.



Show 2 Share
10 |10000 characters needed characters left characters exceeded

Hi Sapeksh,

Thanks for the answer, it was clear to me.

So in the real time scenario, if I dont get the exit in the package of the tcode in question, then do I have to search for it in the package of another interlinked tcode ? If so, then how will I know about such cases where I might have to search multiple tcodes to get an enhancement ? Will there be someone to help me out in this or do I have to find it out myself ?




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.



Jelena Perfiljeva
Jan 04 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.

Show 5 Share
10 |10000 characters needed characters left characters exceeded

I did look in google, but I didnt get what I was looking for. Moreover, I am not looking to find a BADI for this transaction. If u read my post clearly, I mentioned that I was practicing customer exits as I haven't faced a real time scenario on it. If I had found the solution in google, then I wouldn't have taken the time of posting my query in this site. I just need to know why the VTRK package was used and not VL, that's all.


Any package can be used. That's all.


Matthew already replied that even if a user exit is executed in a transaction it does not necessarily belong to the same package.

What my answer points out is that you're simply trying to learn a wrong approach here. The fact that you're not working with real life scenario is not helping here, unfortunately. Because in reality the task is never "find a user exit using a package". It's always "how do I achieve X result". Then you just put your task in Google, as suggested (e.g. "add custom field in VL02N") and you'll find all the possible ways to achieve that.

You've mentioned that you were not searching for BADI but in reality, you should be. The SMOD/CMOD user exit technology is older than dirt. Since then SAP came up with new ways to enhance the standard. It'd be rather narrow-minded to limit the research to old technology only.


Any package can be used ? But the enhancement (V56K0001) was not there in VL package.


I think you need to read up on what package means, in the context of ABAP.