Subsequent issues if saving CRM business transaction is suppressed with ORDER_SAVE BADI.
As you know, it is possible to prevent saving a CRM business transaction by issuing do_not_save exception in BADI ORDER_SAVE implementation.
However, there might be subsequent issues like:
- BSP error CX_BOL_ENTITY raised at class CL_CRM_BOL_ENTITY method GET_ROOT. It happens when the mandatory field check is activated. If you try to save a business transaction with empty mandatory fields, the BSP error may occur.
- You make some changes in an existing business transaction, after pressing save button, message issued indicates the document cannot be saved (due to the BADI implementation). However, the changed value is still shown in WEBUI. That is confusing because end user may think the changes they made are saved successfully.
If you meet symptoms like above, please check your BADI implementations. To prevent saving the CRM order, you should use the method CHECK_BEFORE_SAVE in BADI ORDER_SAVE, and raise exception do_not_save in the implemented method to prevent the saving. If you use other methods, for example PREPARE, there would be the wrong system behavior.