Your topic title might be misleading, so I thought I would clear it up.
BSFNLevel is not the return value. It is the number of calls deep the processing is. For example, lets say you run a UBE called R55UBE.
Let's say the Do Section event calls a business function. When it calls it, the Business Function Level will be 1. If that business function calls another function, that call will be at level 2. It continues like that so you know how deep into the call stack you are.
<font class="small">Code:</font><hr /><pre>
R55UBE
Do Section
BusinessFunction1 (BSFNLevel = 1)
BusinessFunction2 (BSFNLevel = 2)
Do Section
BusinessFunction1 (BSFNLevel = 1)
BusinessFunction2 (BSFNLevel = 2)
BusinessFunction3 (BSFNLevel = 3)
Do Section
BusinessFunction1 (BSFNLevel = 1)
BusinessFunction2 (BSFNLevel = 2)
</pre><hr />
Etc, etc.