There was a task to cost SD order item based on releted purchase order item. No problem..set costing variant with the user exit. There You can search for related PO item via EKKN table. If found, use the value from PO item , recalculate to basic unit . Done.
But…
Purchase order is not created immediatelly in the same period. It may take week or two to have PO item created. I checked first what is the average percentage of material cost. the result was that is about 70% of planned revenue. So item is costed then with this value , 70% of planned revenues. Then there is a zreport, which shows if Po item exists. If PO item exists, zreport recost the SD order item via batch input .
Positive result of the solution: quite small diferencies in planned costs before real PO is created and SD items costed correctly based on existing PO. It can not be costed from material master data, cause average price in material master data is almost zero. If customer “e” stock is in use, sysetm does not update the value of material average price. There is mostly customer “E” stock, and they are getting different discounts for different sales order from their vendor. That is why other type of valuation can not be used.
This solution tok about two months of experiments. If you want to be successful, You need to focus on transactions to be used and correct timing and respect the process.