Skip to Content

VF04 -Billing due list Display for deliveries without PGI

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.




You must be Logged on to comment or reply to a post.
  • Hi Sapna,

    Nice document. Agree that enhancing VF04 will fulfill the requirement to display deliveries against which PGI is not done. Usually it is not recommended to enhance/modify standard SAP reports. It is always better to develop our own customized reports to suit the requirement. To avoid developing a report from scratch, we can copy the standard report and then do the modifications required and assign a ztcode to it.

    • Hi Rahul,

      Thanks for your valuable feedback.

      The requirement was very specific to the client who did not want to use any Z copy of standard report. They rather wanted some logic specific only to a couple of sales organizations. 

      However, we have a user exit in place for the above functionality.

      I have gone through SAP note 356061 - Incorrect index compilation caused by own checks

      before I could arrive at above solution.