Visual Builder includes powerful business objects creation capabilities that allow you to create tables in a database, expose them through REST interfaces, and define business logic layer – all in a declarative way. A new feature in the latest version of Visual Builder allows you to get a deep insight into the inner working of the business objects layer and trace the execution of logic and database access steps.

The new trace tab is at the bottom of your VB development environment (if your app has business objects). If you'll expand this tab, you'll see a checkbox that will allow you to start and stop tracing. You can also choose whether you want to trace the development, stage, or published business objects. Once you turn the functionality on, we'll collect information about every operation handled by the business objects layer and you'll be able to see all of those on the tracing tab along with the duration of each operation. These statistics are collected regardless of how you access the BOs – whether it is from the development environment, a running app, or the REST APIs they expose.

When you need to get further information on a specific operation you can drill down to the details. This will show you a detailed time diagram of the actions that took place, their order, and their duration. Again you can control the view here to see all the operations or just the ones related to database or groovy code execution. 

You can right click each operation span to drill down to see the details of the specific actions that took place including all the SQL calls to the database with their duration, SQL syntax, and the explain plan used when accessing the database. With this information you might be able to modify your code to improve and accelerate database interactions.

In the demo below we show how to leverage the tracing functionality to get an insight into how two ways of writing the same functionality behave under the covers. To learn more see our documentation for VB BO Tracing.

The main goal of this feature is to help users who are running into slowness in their BO layer to recognize where the bottlenecks are, and help them modify the code or the BO structure and relationships to achieve better performance.