It may seem intimidating, but once you do it once - you may even start to use this method going forward, until you get to Functions. Because now you can just call CODE-CreateRMA from ANY BPM and as long as you pass in the right variables, you can create an RMA.
INCLUDING Customizations.
When someones tries to invoke a fake BPM from a Customization, I always tell them just invoke a UBAQ, viola! no hijacking of Update or anything.