Generic features
Generic features
The Software Factory offers features that are relevant to all objects, and therefore apply to multiple topics covered in this guide.
Generic tasks
Copy an object
If you should be able to copy an object including its underlying objects, the task Copy [object name] is provided.
Depending on the object, the task contains one or more from parameters, identifying the source object. These parameters are informative and therefore read-only.
The same concept applies to the to parameters: one or more may be available, identifying the target object. These parameters can be filled or changed. Usually, you only have to fill the last to parameter, which is used to specify a name for the target object. This cannot be the same name as the source object. Any preceding to parameters are pre-filled with the same parent as the from parameters, ensuring the target object is placed under the same parent as the source object.
Example of a copy task with additional options
Rename an object
If you should be able to rename an object, the task Rename [object name] is available.
Depending on the object, the task contains one or more from parameters, identifying the source object. It may also contains a parameter showing the parent object. These parameters are informative and therefore read-only.
You must fill the to parameter to specify a new name for the object.
Go to a related screen for an object
In several screens, tasks are available to help you go quickly to the corresponding object in another screen. When executing such a task, you will automatically be navigated to the newly opened screen. A filter will be applied to the object, so you will not be distracted by the other objects that are present.
Data
Tables:
menu Data > Data model > tab Tables
- Go to Subjects (Alt + S): View the table in the screen Subjects.
- Go to Code overview (Alt + O): View the table in the screen Code Overview.
- Go to Model rights (Alt + M): View the table in the screen Tables.
User interface
Menus:
menu User interface > Menus > tab Menus
- Go to Model rights (Alt + M): View the menu in the screen Menus.
Subjects:
menu User interface > Subjects > tab Default
- Go to Data model (Alt + S): View the table in the screen Data model.
- Go to Code overview (Alt + O): View the table in the screen Code Overview.
- Go to Model rights (Alt + M): View the table in the screen Subjects.
Processes
Process flows:
menu Processes > Process flows > tab Process flows
- Go to Code overview (Alt + O): View the process flow in the screen Code Overview.
- Go to Model rights (Alt + M): View the process in the screen Process flows.
Process actions:
menu Processes > Process flows > tab Process actions
- Go to Code overview (Alt + O): View the process action in the screen Code Overview.
Tasks:
menu Processes > Tasks > tab Default
- Go to Code overview (Alt + O): View the task in the screen Code Overview.
- Go to Model rights (Alt + M): View the task in the screen Tasks.
- Go to menu: Open the corresponding tree view, list bar, or tile menu item.
Reports:
menu Processes > Reports > tab Default
- Go to Code overview (Alt + O): View the report in the screen Code Overview.
- Go to Model rights (Alt + M): View the report in the screen Reports.
- Go to menu: Open the corresponding tree view, list bar, or tile menu item.
Business logic
Functionality:
menu Business logic > Functionality > tab Deploy
- Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality.
- Go to Template in Functionality (Alt + T): View the template in the screen Functionality.
- Go to Task (Alt + O): View the task in the screen Tasks.
- Go to Data model (Alt + O): View the data model in the screen Data model.
- Go to Process action (Alt + O): View the process action in the screen Process actions.
- Go to Subroutine (Alt + O): View the subroutine in the screen Subroutines.
- Go to Report (Alt + O): View the report in the screen RReports.
Subroutines:
menu Business logic > Subroutines > tab Default
- Go to Code overview (Alt + O): View the subroutine in the screen Code Overview.
- Go to Model rights (Alt + M): View the subroutine in the screen Subroutines.
Code search:
menu Business logic > Code search > tab Search results
- Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality.
- Go to template in Functionality (Alt + T): View the template in the screen Functionality.
- Go to Code overview (Alt + O): View the table in the screen Code Overview.
Code overview:
menu Business logic > Code overview > tab Deploy
- Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality.
- Go to Template in Functionality (Alt + T): View the template in the screen Functionality.
Quality
Code review:
menu Quality > Code review > tab Code review
- Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality.
Unit tests:
menu Quality > Unit tests
- Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality. Only available if the unit test has a linked control procedure.
- Go to Mock data: View the data set in the screen Mock data.
Track changes
Use trace fields
Trace fields are added to all objects to see who added a row or who made the last change.
When a new row is added, the Added and Modified fields are filled. Initially, the insert date/time and update date/time are the same and contain the (database) date/time of the last field edit.
When an existing row is changed, only the Modified fields are filled with the date/time of the last field edit.
By default, all trace fields are shown on the form in a separate tab Trace info, and the Modified fields are shown in the grid. There are exceptions to this behavior.
Example of a tab containing trace information
View an object's history
Historical overviews are available on a large number of screens in the Software Factory. For example, in:
- menu Business logic > Functionality > tab Control procedure
- menu Data > Data model > tab Tables
- menu User interface > Messages
These overviews are based on temporal tables. They include each point in time that a row was created, updated, or deleted. This offers insight into a row's status in the various model versions. All changes are in the model's timeline, making it also visible if no changes have been made in a model version.
Changed columns are shaded yellow, and rows that have been added, changed, or deleted are marked.
To see the history of an object:
-
Select the object.
-
Activate the history with the CTRL+H.
- Tab Form contains the object's query fields if present. These are not shown in the list to maintain readability.
- You can recognize an object or code that has been generated by AI by the magic wand icon.
- Tab Associated work contains an overview of the work items linked to this object. See the Work overview guide.
Use CTRL+H to see the history and linked work items for an object
Generated objects
Identify a generated object
The field Generated by control procedure is present for almost all objects in the model. It shows the name of the meta control procedure that is responsible for the object, and how it is maintained.
It should not be confused with the checkbox Generated, which indicates that the object will automatically be deleted and re-created when generating definitions. This field is available for a limited set of objects, such as tables, columns, domains, tasks, reports, and screen types.
If available, by default, both fields are shown on the form in a separate tab Trace info.
Both fields can be filled by using the Dynamic model.
Copy a generated object
When you copy an object that has been generated by a control procedure, the object and its underlying objects will remain generated. This means it will be read-only. It can still be managed by the Dynamic model. In most situations, this behavior is desired, but in some cases, some objects may be deleted after generating the definition for your branch.
Verify that the meta control procedure that must generate the object does actually generate it.
Unlink a generated object from its control procedure
You can unlink a generated object from its control procedure. If an object is no longer linked, it is no longer read-only and can be changed.
For example, if you have a meta control procedure that adds a column Active to every table and you copy a table, the active column remains generated. But when you change the table to a view, you can choose to unlink the column Active and make it read-only.
The task for unlinking a generated object is available for every object that can be generated.
To unlink a generated object from its control procedure:
- If necessary, deactivate the prefilter Hide generated .
- Select the generated object.
- Execute the task Unlink generated object (Ctrl + U) from the context menu or the ribbon.
The task is not available in the taskbar because it is an expert feature that you should only use if you fully understand the Dynamic Model.
Tags
A tag is a freely definable property that can be linked to rows of a table and can be provided with a value. They provide information that is not available in the Software Factory's meta model.
You can use tags administratively or in a meta control procedure (dynamic model) to manipulate your model. For example, to indicate whether a table is deprecated or should not contain mutation columns.
Tags are available for most entities in the Software Factory, for example, tables, tasks, reports, and roles.
Overview of tags for a branch
Some examples where you can add or edit tags:
- An overview of all tags within a model: menu Models > Model overview > Models > tab Model tags.
- An overview of all tags within a branch: menu Models > Model overview > Branches > tab Branch tags.
- Tables: menu Data > Data model > tab Tables > tab Table tags.
- Columns: menu Data > Data model > tab Tables > tab Columns > tab Column tags.
- Tasks: menu Processes > Tasks > tab Default > tab Task tags.
- Reports: menu Processes > Reports > tab Default > tab Report tags.
- Roles: menu Access control > Roles > tab Form > tab Role tags.