VF04 is the transaction used to display the billing due list. It displays only those deliveries which are posted or whose PGI is complete. If we need deliveries which are not posted also to appear in the output list, we have explore enhancement user exits. This document explains how we can achieve this new functionality.
In order to find the deliveries which are not PGI ed we can use the transaction VL06o.
By clicking on push button “For Good issue” we can let the list of deliveries which are not yet posted in the system.
Execute this report after giving relevant criteria for your search.
The output would look as below:
Now we can check in VL03N,for the document flow of this outbound delivery.
It is clear from the above document flow that, PGI has not been done.
Now, we can execute VF04 for this delivery: Result: No entry found
Steps to achieve the intended functionality to display the above delivery in VF04 output, for which goods issue is not done.
1. 1. Check and note down the program name for VF04 tcode : SAPLV60P
1. 2. Using this package we can search the list of userexits for tcode VF04 either in SMOD or SE80.
3. Go to SE80 and search for relevant exit:
4. Following list appears. We are interested in the billing list for deliveries:
We have to keep in mind that we are looking for something where we can check and use the billing status of the delivery.
Also, we need to debug VF04 to some extent to know from which database table does the report display data.
Program SDBILLDL is being called at F8
The relevant code part of the standard program is shown below:
So we are aware that VKDFS table has been used to fetch data that would be displayed in VF04 output.
5. Further exploring the exit:
EXIT_SAPLV05I_002 is related to our scenario. However, this exit would not be called during VF04 for delivery.
As I have pointed out earliar, VKDFS table would be updated and this is called during delivery updation.
I have created a new delivery for this purpose.
Let me place a break point within the exit which we have found.
Now we will do the picking for the delivery :
Go to picking tab and enter the picking quantity and save the delivery.
The customer exit would get called.
The picking is complete!
Hence, we have found the correct exit.
1. 6. The coding would depend on project requirements but for the above functionality to work we need to make sure table VKDFS gets updated.
IMPORTANT: Currently VKDFS would not have an entry since PGI is not done for the delivery.
During picking we would make a forceful entry in VKDFS for our delivery and hence, that would later appear in VF04 output.
FKSTK = Billing status
KOSTK = Overall picking / putaway status
Both have same domain values.
1. 7. Lets now do the picking for another delivery to check how VKDFS gets updated.
Make picked qty as 1 and save delivery. The debugger will be called.
8. The code is we have written in the exit would get executed now.
The importing field from the above customer function exit determines whether it should populate an dupdate VKDFS or not.
9. Now VKDFS updation in standard code.
10 . Lastly you now check the delivery to be present in VKDFS table.
11. Now our functionality has been coded and tested. Lets us finally check VF04. You can find that this delivery, even if not PGI ed , it appears in billing due list output.