>but the web service is not getting triggered.
How did you come into this conclusion? If I have understood you correctly the web service is "triggered" since it is raising the system fault exception.
Can't you debug what is going on inside the proxy_test->submit?
Can you compare the parameter "submit" in both cases: when the code is executed through the BADI and when it's executed through the receiver function? Is there a difference within the values inside the parameter?
I don't think that there is something wrong in the "workflow part" (using the event & receiver function module) of your solution. The function gets executed (Z-table gets updated etc.). You could insert the sy-uname into the Z-table to make sure which user ID is used to execute the web service call.
Regards,
Karri