Autocomplete completes a minimal model into one that can be generated. It typically saves a factor five to ten in the work of describing an application. ## What Autocomplete Needs Autocomplete starts from these parts of the model: - The application. - The tables. - The columns of the tables, including the reference columns but without the standard columns. - The natural keys and their columns. - The names of the business objects and the reporting views. - The attribute rules. - View elements that cannot be derived, numbered from 900 upwards. ## What Autocomplete Adds From them autocomplete derives the rest: - It removes what an earlier run of autocomplete added to the application. - It adds an `id` column and a primary key `<prefix>_<alias>_pk` to every table that lacks them. - It adds the [[Invantive Studio/Repository/Concepts/Standard Columns|standard columns]] and a unique index `<prefix>_<alias>_uk_orig` on the original system reference. - It adds a list-of-values view for every column of a [[Invantive Studio/Repository/Concepts/Code Domain|code domain]], with a relation to it. - It adds a referential constraint and a reference index for every column named `<alias>_id` or `<alias>_id_<role>`, using the three letters of the alias to find the table. - It creates a [[Invantive Studio/Repository/Concepts/Business Object|business object]] for every table, holding every table the main table refers to, directly or indirectly. Every row that autocomplete adds carries "Autocompleted". The behaviour is controlled by settings of the application and by the code domains of the application. A column that a business object takes from a joined table gets the role label of the referential constraint, or else the label of that table, in front of its own label, such as "Application Code". From release 28.0 such a column keeps a label entered on it, together with what stands in front of it, so that two joins to the same table can be told apart, such as "From Application Code" and "To Application Code" of a referential constraint. Up to and including release 27.0 autocomplete replaced that label.