Skip to main content
Version: 2024

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

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

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

menu Data > Data model > tab Tables

  • go_to_subject Go to Subject (Alt + S): View the table in the screen Subjects.
  • go to overview Go to object in Code overview (Alt + O): View the table in the screen Code Overview.

User interface

menu User interface > Subjects > tab Default

  • go_to_data_model Go to Data model (Alt + S): View the table in the screen Data model.
  • go to overview Go to object in Code overview (Alt + O): View the table in the screen Code Overview.

Processes

menu Processes > Process flows > tab Process flows

  • go to overview Go to object in Code overview (Alt + O): View the process flow in the screen Code Overview.

menu Processes > Process flows > tab Process actions

  • go to overview Go to object in Code overview (Alt + O): View the process action in the screen Code Overview.

menu Processes > Tasks > tab Default

  • go to overview Go to object in Code overview (Alt + O): View the task in the screen Code Overview.

menu Processes > Reports > tab Default

  • go to overview Go to object in Code overview (Alt + O): View the report in the screen Code Overview.

Business logic

menu Business logic > Functionality > tab Deploy

  • go to cp Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality.
  • go to template Go to Template in Functionality (Alt + T): View the template in the screen Functionality.

menu Business logic > Subroutines > tab Default

  • go to overview Go to object in Code overview (Alt + O): View the subroutine in the screen Code Overview.

menu Business logic > Code search > tab Search results

  • go_to_cp Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality.
  • go to template Go to template in Functionality (Alt + T): View the template in the screen Functionality.
  • go to overview Go to object in Code overview (Alt + O): View the table in the screen Code Overview.

menu Business logic > Code overview > tab Deploy

  • go to cp Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality.
  • go to template Go to Template in Functionality (Alt + T): View the template in the screen Functionality.

Quality

menu Quality > Code review > tab Code review

  • go to cp Go to control procedure in Functionality (Alt + C): View the control procedure in the screen Functionality.

menu Quality > Unit tests

  • go to cp 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.

Track changes

Use trace fields

Trace fields are added to alls 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.

trace_fields 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:

  1. Select the object.
  2. 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.

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.

warning

Verify that the meta control procedure that must generate the object does actually generate it.

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:

  1. If necessary, deactivate the prefilter Hide generated .
  2. Select the generated object.
  3. 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.

Was this page helpful?