This articulation talks about a custom process of restricting goods movement for standard material without cost estimates. This documentation is prepared based on the project experience with minor issues here and there during the Test phase – Test data preparation and execution where had heavily reply on Purchasing and Controlling team for support. There was also strong urge to publish this article with proper information as my previous attempt was rejected at SDN.
For a CGS Client which I have been associated to operating in Geographies across Europe, In recent past there is business requirement of the Client to capture actual cost of the Standard Material procured internal or externally and prevent material posting for the standard material where in Material Costing is not performed. In the past, it was observed that the CGS client were facing big problems with material movements for Standard materials which did not have a proper cost estimation. And this subsequently lead to price variances and errors during invoicing. So in nutshell, CGS Client decided to implement business requirement where in material postings for Standard materials without cost estimate is disallowed. The basic idea would be to include functionality of restricting goods movement is achieved based on Customer exit where in Business logic is adapted in the system.
Technical Approach on how to restrict Material Movement if Material Costing is not done:-
The following Customer function exit is used and suitable business logic is embedded in “Include – ZXMBCU01” so that whenever those set of logic is not satisfied then material stock posting is prevented.
EXIT_SAPLMBMB_001:- Customer Function Exit in the Case of Updating a Material Document
Detailed functional Description of the approach:-
Creation of Custom table: – ZPLANT_COSTING with the following fields like:-
1:- Company Code
3:- Activation date
This table as a matter of fact, provides a splendid flexibility in controlling which Plant would not be liable for Costing process so as to prevent material stock posting with respect to activation date. This table must be maintainable without transport in the system. This is to ensure that if the Go-live for a Roll-out project is not completed yet, we can still do a stock data takeover without having a costing run (this is the usual procedure during Cut over activities – fallback strategy).
Flowchart of business Logic:
Check 1:- Check the material type and price control field. The check should only work in case of material type = STD (MARA-MTART) and price control = S (MBEW-VPRSV). If the material type = STD and the price control = initial, it will automatically block.
Check 2:– Second check if the plant of the stock movement is included in a new validation table – company code, plant and activation date and also check if SY-DATUM is lower or equal activation date.
Check 3:- Finally check if material has a released costing (MBEW-KALKL = ‘X’), This check is applicable to Receiving Plant and issuing Plant as well, If material does not have a released costing, error message = ‘Material MATNR/WERKS has no valid costing’ is displayed and abort posting.
Process on setting up Material Costing:-
1:- Material Master: – Material master created with All the relevant views i.e. with respect to Sales,Purchasing, PP, FI and CO. This process highlighted in the documentation doesn’t cover BOM related material scenario into account. For BOM related Material, it is utmost necessary to create production BOM and Routing. The Classification view of Material master is very much essential from derivation rule prospect if the material is batch managed and once the class type in classification tab is set correctly, Controlling related derivation rule are aligned in the system.
2:- Creation of Material Cost Estimate with Quantity structure: CK11N
3:- Price Update in CK24
4:- Release price update for Material
5:- After maintaining the costing related process for the Standard Material based on plant, Material Stock Posting can be done without any hindrance!
Last but not the least, please feel free to share your thoughts or comments on this documentation!