Why create the same temp-table in multiple places. Encapsulate the logic in a data source and put all logic about security control, updates, relational integrity, etc. there. Any place that needs it, accesses that one source.
Done any reading on OERA? This sort of layering is inherent in the approach. You don't want it in the UI especially since this year's ABL UI might be next year's WUI or you might be sending the data off to some other service or providing it via a web service or sending it to a Java client. If you have put all of the build and update logic in one place, then you can do all of that without touching the data source. Put it in the UI and you have to do it all over again for a different UI and you have the risk that someone will access the data outside of the expected channel and see what it is they shouldn't see.