By default after a service order is saved, there is a distribution lock set, which prevents you from editing this order in status transferring. Click edit button you will meet with error message below until it has successfully been transferred.
introduce the step how to avoid this distribution lock. Nevertheless there is still BDOC and an inbound CSA queue automatically generated. The purpose of CSA queue has already been well explained by Rohit Sharma in this thread:
In case you really would like that for a given transaction type, no BDOC and inbound CSA queue should be generated for whatever reasons, you can suppress this behavior by enhancement on function module CRM_ORDER_SAVE_OW.
In this function module, the BDOC and CSA queue will be created by function module CRM_ORDER_UPLOAD_SINGLE only when ALL the THREE condition in IF are fulfilled.
The second condition, lv_send_bdoc is controlled by a switch.
So the solution would be:
Create a new enhancement on function module CRM_ORDER_SAVE_OW:
Insert one line below:
Suppose you would like that for transaction type ZSRV, no BDOC should be generated, then the source code of run method:
DATA lv_process_type TYPE crmt_process_type.