There is a standard technique for generating and logging errors - CHECKPOINT groups.
Just create a checkpoint group in transaction SAAB. Don't forget to chose "Abort" during background processing for the ASSERT statement.
And place ASSERT in the appropriate place in your BAPI.
It takes some time to learn (in fact, not so much), but it can be very useful.