Hello,
So you have implemented the exception CX_BO_ACTION_CANCELLED in your approval method. This exception will be triggered when the user tries to execute the workitem from Transaction SBWP (Condition check for Tcode SBWP)
This should work with no issues. If you are getting an error with activation of Outcome, you can also try the "Condition Check" tab for User decision task in SWDD. Here you can set up some conditions for workitem execution. You can set a variable in the approval method and check its values to complete the execution of workitem.
Regards
sandy