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]].