Skip to main content

Generic features

The Software Factory offers features that are relevant to all or many objects, and therefore apply to multiple topics covered in this guide.

Generic tasks

Copy an object

You can copy objects in the Software Factory. When you copy an object, the pop-up may contain the following fields depending on the object:

  • From - parameters identifying the source or parent object. These fields are read-only and informative.
  • To - parameters identifying the target object. These fields can be filled or changed. Usually, you only have to complete the last To field, which is used to specify a name for the target object. Any preceding To fields are pre-filled with the same parent as the From fields, ensuring the target object is placed under the same parent as the source object.

To copy an object:

  1. Execute the task Copy [object name] copy.
  2. Enter a new name for the object in the field To [object name].
  3. Select Execute.

copy_control_procedure Example of a copy task with additional options

Rename an object

You can rename objects in the Software Factory. In general, when the task Rename [object name] rename is available, it is not possible to rename an object directly in the form. When you rename an object, the pop-up may contain the following fields depending on the object:

  • From - parameters identifying the source or parent object. These fields are read-only and informative.
  • To - parameters identifying the target object. These fields can be filled or changed. Usually, you only have to complete the last To field, which is used to specify a name for the target object. Any preceding To fields are pre-filled with the same parent as the From fields, ensuring the target object is placed under the same parent as the source object.

To rename an object:

  1. Execute the task Rename [object name] rename.
  2. Enter a new name in the field To [object name].
  3. Select Execute.

rename object Example of a rename task

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.

Generic tabs

Translations

For every translatable object, a tab Translation is available. The visible data in this tab is determined based on the selected object. See also Translations.

Tags

For every taggable object, a tab Tags is available. The visible data in this tab is determined based on the selected object. See also Tags.

Trace

Used to display the trace fields. See also Trace.

Usage

Some objects can be used in multiple places in the Software Factory. Think of a domain (in columns/task parameters/report parameters), a message (in tasks as confirmation), or screen area (in detail tabs/prefilters/cube views etc.). The screens for these objects contain the tab container Usage, in which tabs are displayed showing where the respective object is being used. This can be useful when, for example, you want to make a change to the object and see what impact this might have.

Data

Tables:

menu Data > Data model > tab Tables

  • go_to_subjects Go to Subjects (Alt + S): View the table in the screen Subjects.
  • go to overview Go to Code overview (Alt + O): View the table in the screen Code Overview.
  • Go to Model rights 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 Go to Model rights (Alt + M): View the menu in the screen Menus.

Subjects:

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 Code overview (Alt + O): View the table in the screen Code Overview.
  • Go to Model rights 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 overview Go to Code overview (Alt + O): View the process flow in the screen Code Overview.
  • Go to Model rights 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 overview Go to Code overview (Alt + O): View the process action in the screen Code Overview.

Tasks:

menu Processes > Tasks > tab Default

  • go to overview Go to Code overview (Alt + O): View the task in the screen Code Overview.
  • Go to Model rights Go to Model rights (Alt + M): View the task in the screen Tasks.
  • go to menu Go to menu: Open the corresponding tree view, list bar, or tile menu item.

Reports:

menu Processes > Reports > tab Default

  • go to overview Go to Code overview (Alt + O): View the report in the screen Code Overview.
  • Go to Model rights Go to Model rights (Alt + M): View the report in the screen Reports.
  • go to menu 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 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 Task Go to Task (Alt + O): View the task in the screen Tasks.
  • Go to Data model Go to Data model (Alt + O): View the data model in the screen Data model.
  • Go to Process action Go to Process action (Alt + O): View the process action in the screen Process actions.
  • Go to Subroutine Go to Subroutine (Alt + O): View the subroutine in the screen Subroutines.
  • Go to Report Go to Report (Alt + O): View the report in the screen RReports.

Subroutines:

menu Business logic > Subroutines > tab Default

  • go to overview Go to Code overview (Alt + O): View the subroutine in the screen Code Overview.
  • Go to Model rights 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_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 Code overview (Alt + O): View the table in the screen Code Overview.

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

Code review:

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.

Unit tests:

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.
  • Go to Mock data 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.

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.

  • 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.
  • For more information about Generated and By control procedure, see Identify a generated object.

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

Nearly all objects in a model have a tab called Trace info that contains the group Generation. This group contains the field By control procedure, which shows the name of the meta control procedure responsible for the object. If applicable, this field must be filled using the Dynamic model.

See also When are generated objects deleted.

Trace info with generation by control procedure The control procedure that generated the object

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.

caution

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.

warning

Unlinking a generated object is an expert feature. If you unlink an object from its control procedure, it becomes your responsibility to maintain it. The Thinkwise Platform can no longer maintain it from the base model.

For example, if you have a meta control procedure that adds a column Active to every table, the column Active remains generated when it is being copied. However, 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 article helpful?