Hello Jim Chang,
Thank you for posting on the Microsoft Forum. I ran a test and confirmed your results in NAV 2009 R2. In order to Undo a Sales Shipment, the system requires for the deletion of the Warehouse Shipment first. Whereas, to complete an Undo Receipt, the Warehouse Receipt record does not require the same deletion.
First, you may want to review KB Article 903193. This is available on Customer Source and Partner Source. This KB Article explains the workaround available when this error message is encountered, which you already identified. However, please note that if the location is has "Require Pick" ticked, then you need to follow the resolution in KB Article starting on step 1. But if "Require Pick" is unchecked, then you could go on directly on step 5.
This issue has been reported to our Development Team before based on case history. Based on the feedback from our Development Team, NAV is working according to the design intention. The Program Manager’s comments provided were as follows:
“The reason is that the processes are not symmetric. The first one can be interpreted as an administrative error. The second case is both an administrative and a physical flow error.
When receiving, you are starting an administrative chain, that can be using the undo (e.g. creating a negative entry on the posted Whse receipt) (there are also some checks that verify that no consumption of the items received have taken place), In a Warehouse Management System (WMS) with Directed Put-away and Pick enabled environment, you need to go and manually delete the created put-away before being able to undo the posted receipt.
When shipping, you have created a chain of documents that bring up to the posted shipment (sometimes involving a pick document), and these cannot be just reversed. We have designed it so that you have to delete the posted Whse shipment if you want to undo the sales shipment. When trying to undo a sales shipment - The message: "you cannot undo the "line xx" because a Whse shipment line has already been posted", is a warning for someone who is undoing something that is in fact not undoable (if the goods have been sent!). The fact that you have to delete the Whse shipment represents a kind of stressing that it's something important, some physical work has been made and you are undoing it.”
I hope this helps. If you feel that the functionality should be the same in Shipment and Receipt undo processing, I would highly recommend entering a suggestion on Microsoft Connect:
http://connect.microsoft.com/
Thank you and have a good day.
Best Regards
Tom