COGI is a very frequent cause of headaches for customers using backflush on production orders.
Some users don't undersntand the importance of fixing the erroneous goods movements and simply delete the entries when it is too hard to fix. This kind of behaviour generally lead to inventory differences and problems on the product costing.
On the standard system there is no authorization object specific to control the deletion of records and there is no log for the deleted or changed entries, therefore, it's very hard to track who, how or why the entries were deleted.
However, there are some alternatives to avoid this kind of issue:
1 - Use method COGI_AUTHORITY_CHECK from BAdI WORKORDER_GOODSMVT to implement your own authorization check for the users.
Here is a very simple example where only the user AUTHORIZED_USER would be authorized to delete records on COGI.
For all the other users, the deletion will not be allowed and an error message will be displayed.
The advantage of this option is that it's very flexible, since you can define your own logic and specify under which specific conditions the deletion will be allowed.
2 - Implement the modification described on note 756547 to hide the delete button.
3 - Implement the a modification to activate the logging of deleted and changed records on COGI. Generally, this is recommended as a temporary measure, to help you to find who is deleting or changing the entries, as may lead to performance issues.
Note note 309050 describes this modification in detail. On the older releases, the modification must be implemented manually, according to the instructions provided on the mention note.
On the latest releases, however, thess modifications were delivered as SAP Notes, therefore, they can be implemented directly on transaction SNOTE. You can find these modification notes below:
2048312 | Logging changing of data records in table AFFW |
2048311 | Logging deletion of data records from table AFFW |
4 - Hide the delete button using a transaction variant
SAP KBA 1926015 describes in detail the procedure to use transaction variant (SHD0) and hide the delete button.
For another frequently asked questions about transaction COGI, check the following note:
1868084 FAQ: Transaction COGI