Proof of delivery (POD) before and after invoice
Hi Guys
I have seen many threads about proof of delivery (POD). I want to share something about POD that how we can use this for two different business scenarios. In standard SAP you can see help documents stating that POD can be used for confirming material delivery to the customer and its quantity. There are some companies in which they sales process is different. I have two scenarios in my mind and which I have faced practically.
- Sale order created > Delivery Order created > shipment document created and goods dispatched with delivery note > material received and confirmed by customer > Billing document created.
- Sale order created > Delivery order created > Billing document created and goods dispatched with invoice print > customer received and confirmed goods.
For first scenario we can use standard POD functionality which you can see in the below links
http://help.sap.com/saphelp_470/helpdata/en/c4/13c0da0f9011d3b47f006094b9b9dd/content.htm
http://help.sap.com/saphelp_46c/helpdata/en/65/3c1a2bc925d311b60f0060b03c2bff/content.htm
For second scenario we have to modify the standard POD system and I have tried to control this through standard settings but I couldn’t make it possible. I have also tried to modify copying routine 003 which we maintain in header level copy control from delivery to billing but was not possible without access key which is not recommended. We can’t even make our own copying routine by copying 003 to edit the error message number which is mentioned there as you can see in below screen.
I was only asked to maintain POD date, POD entry date and time. There was no requirement of quantity or any other information because in my case material quantity is always same as delivered. To fulfill this requirement I had only one choice left i.e enter additional field in billing document. We can also use text for this purpose but in text user can enter date in any format and we don’t have change log or entry log for this text. I asked my ABAPER to enter additonal fields in billing document header. ABAPER used append structure functionality and added three custom fields in VBRK table. I am not going into detail that how ABAPER added these fields as this is purely ABAP area. If you want to see how it was done you can check this in below link. The difference is only with field name and tab name. Functionality is same as I have tested this by myself after ABAPER has done this
http://www.****************/Tutorials/ExitsBADIs/VF01/Header.htm
With this I have additional tab with three fields in it. POD date field which is editable in VF02 even after accounting document is created. POD entry date and time which system maintains automatically and these fields are not editable in any way. We can also see the change log of POD date in standard chnage log of billing document i.e Environment > Change Log. Please check in below screens.
If I change this field then system will maintain its change log.
With this users can enter POD date after billing document is created and we can fetch this field in any report very easily. You don’t have to go for VLPOD for the 2nd scenario.
If you have any other scenario regarding POD or you have any query please ask me in your comments.
Regards
MoazzaM
This document is useful.
Thanks
Hi MoazzaM,
thanks for sharing. very useful document.
thanks,
Srinu.
Thank you Srinivas
Hi Mozzam,
this documnt is useful no doubt but your way of explanation is nice....
Thanks
Deep
Thank you Deep 🙂
Thank you for sharing 🙂 MoazzaM
My pleasure Karuna Ravuri
Dear Mozzam zee ,, thanks a lot for sharing a nice documents , 🙂 have a nice day
Thank you Venu 🙂
MoazzaM, Members,
It is surprising that there are no comments at the content level (questions, other business scenarios, etc. etc.) !
MoazzaM,
A question about the dates in the screenshot -
POD date = 25.09.2013
POD entry date = 20.09.2013
That means a user is entering in the billing document, of a POD which is after the entry date!
How is this possible?
POD date can be equal to or before the POD entry date. (and not after)
Side comment - The blog touches lot of interesting points - Change points, Text field, ABAP coding to create new fields etc.
Thank you!
TW Typewriter
Good point and catch 😀
I just put the screens to show the fields. I also didnt check the dates. When I created this document system showed the current system date in POD entry field and I manually entered 25 in POD date. Your point is valid and I am thankful that you highlighted this. You are right about dates. POD date can be equal to POD entry date always.Not before or after because when ever user will change POD date system will automatically update POD entry date field as well and maintain a change log of it.
Thank$
MoazzaM,
Take a business scenario -
The date, time and signature on the "POD" (a copy of the delivery note, with the signature of the SH warehouse staff) are of Monday, the same day this paper arrives in the company office. But all the POD entries (in the billing documents, in the z fields mentioned by you) are done on the following Friday (4 days after the POD is done).
In this case the POD date = 09-Sep-2013
POD entry date = 13-Sep-2013
Now because entry of POD information is done on 13-Sep, the POD date can not be made as 13-Sep (for the above case).
Or because POD date is 09-Sep, the POD entry date can not be made as 09-Sep; the system date being 13-Sep.
TW
You are right. I missed this scenario. In my case our users are bound to enter POD on same date when they receive acknowledgment but in some cases this can be done on later dates as you have explained. Thank you for this explanatioin.
Thank$
Members,
I have found the below document very helpful
http://scn.sap.com/docs/DOC-27487
Thank you Sridhar Vijjhalwar
That is standard POD process. Thank you for sharing. I just modified it if we have to enter POD date after billing document creation. In most of the companies they receive customer confirmation on invoice print out so they have to enter POD after billing document creation so thats why I shared the document.
Thank$
Another nice document Moazzam 🙂 , thanks for sharing,
TW,
Thanks for pointing out to make it more clear.
Thank you Suman Sardar and really glad to see your comment and rating 🙂
Thank$
Moazzam thanks for sharing 🙂
My pleasure 🙂
Another nice document ,
Thanks for sharing...
Thanks for appreciating me.
Dear Ali zee what ever you posted it will help a lot
thanks a lot for sharing nice document ...we never forget your help .....
I always try to share my knowledge and help others. This is what we are here for. thank you Venu for your compliments.
Thank$
The idea is to deactivate only that piece of code in the standard routine which checks POD status and prevents invoice creation.
Rather than change the standard routine, a new routine can be created as follows:
1. VOFM --> Copying Requirements --> Billing Documents
2. Give a routine number (901 for example) and description.
3. Copy the code of routine 3 (Header/dlv.-related) EXCEPT for first and last statements (Form and Endform)
4. Paste in the new routine. Comment the code (shown below) related to POD status (PDSTK) check and activate the routine.
.
IF VBUK-PDSTK NA ' C'.
PERFORM VBFS_HINZUFUEGEN USING '000000' '197' SPACE SPACE SPACE.
SY-SUBRC = 4.
EXIT.
ENDIF.
5. After activation of this routine, make sure that this is assigned in the configuration as follows.
VTFL transaction --> choose the relevant billing type and delivery type copy control and double click to open the header settings. The copying requirements routine is 3 in standard R/3; replace this with 901 and transport the configuration as well as the routine.
6. With the above routine and configuration active, when an invoice of the relevant billing type is being created, system won't prevent even if POD status (PDSTK) is not C (complete).
Hi riten patel
Thank you for explaining this but did you test this in your system or just giving me an idea? I would like that you test this in your DEV or Sandbox system.
Thank$
Hello moazzm
i have check it in development server and its work great
now you can do it
regards,
riten patel
Hi
How did you manage the Inserts which are there in standard routine? Could you please share the complete coding of your 901 routine?
Thank$
Hello ' MoazzaM '
Could you help me. Is there anyway I can do to confirm more quantities for the outbound delivery which has been confirm with difference and billed early.
Hi
In VLPOD we can confirm different quantity and we have to maintain over delivery or under delivery indicator as well but when we have billed some delivery order, we can't do its POD afterwards.
What is your scenario?
Thank$
' MoazzaM ' Thank you for your reply.
My scenario is the Sales Order raised 100 qty and Delivery made 100 qty. The first month we confirm 40 qty and billed 40 qty, and then the next month we want to confirm the left 60 qty for the same dlivery item and bill it.
Is it possible or is there some other ways to achieve the goal.
Hi
When you have made delivery of 100 quantity then how you can delivery goods physically 40 in first month and 60 in next month? We delivery goods in system and physically at the same time with same quantity.
If you want it like this then make two deliveries. First would be with 40 and second with 60 quantity.
Thank$
Hello ' MoazzaM '
My scenario is that we recognize the COGS & Sales revenue at the time the customer confirms the goods. At the time we delivery goods we don't know how will they confirm them. Maybe they confirm 40 qty this month, but perhaps they only confirm 20 qty this month. So we don't know how to make the right deliveries.
Then you should follow stock in transit concept. At the time of PGI system will issue stock and it will be in stock in transit and at the time of POD system will issue stock from your system with 601 movement type.
In our project, we recognize the COSG at the time of POD as system issue stock in transit with 601+T.
As the costomer confirms the stock in transit irregularly, so I need to POD one delivery more than once.
How did you manage to put stock in transit with 601 movement type? As far as I know for stock in transit there is some other movement type 65* or may be 68* i dont remember the exact movement type.
I think you should open a discussion on this so that other members can also give you suggestions.
Thank$
Hi MoazzaM,
Nice Document as well as communication.
Regards,
Ramesh Kr
Hi MoazzaM,
My scenario is similar to second scenario. When Customer receives goods, he sends a GRN. We are receiving GRN from Customer and creating POD against that. However, what would be logic, if customer does partial GRN? Say if I have delivered 100 quantity along with invoice print. Customer has placed 50 in blocked stock and did GRN against invoice for rest 50 quantity. Rest 50 they will be doing GRN at later stage - whether accepted or rejected with reason code.
At our end, the idea of capturing POD should cover reason for all lines of invoice for entire quantity, so that status of GRN can be found as COMPLETED or PENDING. This information would be used by commercial team for Payment validations.
Does the function module YSD_IDOC_INPUT_STPPOD support receiving partial GRN multiple times against an Invoice and update VLPOD table? We have done some customization at our end and currently if GRN is sent against an invoice multiple times, data in VLPOD will be over written.
Please explain if standard program support this or feasibility for customization.
Regards,
Usha.
Usha Rani Bandaru
There are two points.
Kinldy give answer of 2nd point so that I can analyze it further.
If you are looking for some customized solution you can follow the same which I have shared in this document. WHat you need to do is just add your customized fields in invoice at line item level. For us it was at header level because there is always full delivery and fully accepted by customer. In your case if it can be partial then you have to go for item level.
Thank$
Nice one.
Dear MoazzaM,
Very useful document, Thanks a lot.
Regards,
Haresh
Thank you for your positive feedback Haresh, Madhu and Ramesh Kumar. Its good to see that this is useful for you guys.
Thank$
Dear MoazzaM,
The info is indeed very much useful. However, I have further query on the solution whether do we need to have separate order type, delivery type to handle POD and non POD customer order?
Regards,
Annis
Hi
Are you talking about standard solution or the customized one? For standard solution you don't need to have any separate order type. POD is controlled based on item category type. For customized solution you can add fields and screen in invoice. No need to have anything separately.
Thank$
Dear Moazzam,
Thanks for the quick respond and would like to understand a little further on the item category type is it going to be at the order or delivery? Appreciate further clarification on this and thanks.
Annis
Hi
ITem Category is always there in order and delivery both. Settings for item categories are in SD and Logistics nodes. If you want to get more details, why don't you google with text "Delivery Item Category" and "Sales Item Category".
Thank$
we do not use POD functionality in my company but one of our distributors needs this requirement in SAP for deliveries to the final customer, they have given us a spec how we can map our IDOCS into their system, any suggestions how we can achieve this?
I have replied on your thread.
Thank$
Thank you very much MoazzaM for this Explanation. The second scenario is very useful for my company's Scenario. We would like to be able truck delivery notes that come back from customer with their stamps and scan and attach the same in SAP while monitoring which ones haven't been received back;
1. Can you be able to make the it in such a way that it sends notification for deliveries not received after a given period of time
2. Can you attach scanned copy?
3. Can one have an exceptional report for the ones that haven't been received back?
Thanks,
Ouma
Hi
What you are talking about is ABAP development. All these requirements are possible with ABAP. Attachment is something that can be done in standard.
Thank$
Hello Sir,
I have gone through your document posted here it is very useful. We have recently configured POD process but the scenario is little different than mentioned above.
For Export
Order --> Delivery --> Proforma invoice --> Confirmation of delivery(Based on ETA) --> Final invoice
For handling BL charges user is not ready to use shipment and shipment costing as the requirement is to hit the different charges in different GL as per vendor which is not possible through standard shipment costing. Can you please guide on the same.
also one more challenge is our customers are based in different countries where ETA at customer is 30 days or more how can we automate POD confirmation based on time frame in customer master as for the same customer material dispatched from different factory and from different terminals and hence the time frame will vary.
please help in this case.
Thanks
Ashwini
Hi
Though I am replying after many days of your comment posting, let me put my views if these are still helpful for you.
Posting different charges in different GLs using shipment cost document is possible. I am not sure why you are saying that this is not possible. If you can explain your requirement in details may be I can help you.
For POD it is manual based on ETA or lead days. Once the POD is received from customer you can use VLPOD and confirm the delivery. Automatic POD is also possible using an Inbound Idoc. You can search in google for more information on this.
Thank$
Dear Sir,
Need your input on below query.
Hello Sir,
I have gone through your document posted here it is very useful. We have recently configured POD process but the scenario is little different than mentioned above.
For Export
Order –> Delivery –> Proforma invoice –> Confirmation of delivery(Based on ETA) –> Final invoice
For handling BL charges user is not ready to use shipment and shipment costing as the requirement is to hit the different charges in different GL as per vendor which is not possible through standard shipment costing. Can you please guide on the same.
also one more challenge is our customers are based in different countries where ETA at customer is 30 days or more how can we automate POD confirmation based on time frame in customer master as for the same customer material dispatched from different factory and from different terminals and hence the time frame will vary.
please help in this case.
Thanks
Ashwini
Nice Article! Very helpful..thanks..One question how POD date would get updated? is it thru some interface/batch job or user need to go each and every invoice & enter manually..
Hi Moazzam
My requirement is to know, how IOD and POD date and remarks can be updated in Billing document in SAP , the IOD and POD information is coming from a third Party Portal TO SAP
Its an Interface 'Invoice Acknowledgement'
In this , i have to update IOD/POD to a Billing Document Number i.e Billing doc. already created.
Hi
For this you can use billing document texts. After billing document is generated we can't update other fields.
Thank$