A business object is the view through which an application reads and changes the rows of one table. Its name is the name of the main table followed by `_v`, such as `itgen_tables_v` for the table `itgen_tables`. In Invantive Studio the business objects of an application are listed under the application as "Business Objects". A business object joins the main table with every table it refers to, directly or indirectly. Each column is named after the alias of its table and the column, such as `apn_code` for the code of the application of a table. A screen therefore shows the code and description of a referenced row without a second query. The joins are described by the [[Invantive Studio/Repository/Applications/View Elements|view elements]] and the columns by the [[Invantive Studio/Repository/Applications/View Columns|view columns]] of the business object. ## Changing Data A row is inserted, updated or deleted by a statement on the business object. Invantive Studio generates triggers on the view which pass each row to the generated table logic, in this order: - The partition and the identity are set and the access rights are checked. - The audit columns are filled. - The action rules marked to run before the change are executed, followed by the before-hook of the [[Invantive Studio/Repository/Concepts/Hook Package|hook package]]. - Foreign keys given as codes are translated into identities, and flag and date values are checked. - The row is written to the table, and its [[Invantive Studio/Repository/Concepts/History|history]] is recorded. - The action rules marked to run after the change are executed, followed by the after-hook. - The error rules are checked against the row as it now stands. A rule that fails raises an error, and the change of that row is undone. ## Reporting Views A view whose name ends in `_r` is a reporting view. It is read-only and usually combines several business objects for a list, a report or a choice list. Its SQL text is written in the repository as the "Hard Coded Definition" of the view. ## Point in Time For every business object a twin exists with the same columns that shows the data as it was at a chosen moment. See [[Invantive Studio/Repository/Concepts/Point in Time|Point in Time]].