Skip to Content

Modifying source business objects

In Vinyl, Source Rules created in the Business Logic Layer are intended to be Business Objects that act as an exact copy of the underlying table, with all its associated Columns, from the Data Layer. In order to present any table data on a Page in Vinyl, it must first reside in an object in the Business Logic Layer.

Source Rules are created for most tables in a Data Source as a means to work with the underlying data and present it on the Application UI Layer. For example, a Category (Source) object will contain all of the Columns that the Category table has available to it. Source objects should be named following Jitterbit naming methodology, which is TableName (Source). When a Source Rule is generated from the Data Later via an Accelerator, it is automatically named following Jitterbit methodology.

A Source Rule contains (or selects) all Columns in the underlying table, and all Columns are set to Target their corresponding Columns from the table.

Generally speaking, Source Business Objects should not be modified to include information that is not fundamentally part of the underlying Target table. A Vinyl developer would expect that an object named TableName (Source) is designed to include all the underlying table Columns from the Table, and no additional Tables, Join information or calculated values. If there is a need to add any of this type of information to a Source Rule, best practice is to copy the Source Rule, rename it appropriately, and then modify the Business SQL to contain just the logic required by the new Rule.


Be cautious when creating Business Objects to not use extraneous Columns that are not needed by the Rule, as this can, at times, lead to performance issues.

If you are adding in a Column for display purposes only, simply combining information from existing Columns into a new Column, you could modify a Source object in this scenario. For example, the Employee table from the Northwind data source has a FirstName and LastName Column, but no FullName. If you're intending to display the FullName column from the Application UI Layer, you could modify the Employee (Source) object to include a Concat function that strings together the FirstName and LastName fields into one singular FullName new Column. Note that this new Column requires an Alias value and should not have a Target value set as there is no corresponding Column value in the Data Source to write data back to.