Skip to main content
Version: 2026.1

Models

Introduction to models

A model, or application model, is the structured collection of metadata that defines your application. It encapsulates all components needed to generate the end product. See also, Model in the glossary and Models and branches for more information.

Create a new model with a MAIN branch

To create a model with a MAIN branch:

menu Models > Model overview > tab Models

  1. Execute the task Create model Add.

  2. Add a Model name and a Description.

  3. The Branch name is set to 'MAIN' by default. If you follow a different naming convention, you can change this field.

  4. If necessary, change the RDBMS Type. A model can only support one RDBMS type.

  5. Select Execute.

Create model Add a new model

The following configuration setting is retrieved from the Default configuration (menu Maintenance > Configuration).

After creating the MAIN branch, a job will be scheduled automatically to generate its definition. You can view this job in the menu Maintenance > Jobs.

tip

You can also create a new model from the task Switch branch, see Switch to another model or branch.

Switch to a newly created model or branch

After creating a new model or branch, answer the question if you want to switch to it. This prevents working in the wrong branch.

  • If you choose to switch, all open documents will be closed, and your session will be updated to the new model or branch. The Model overview screen will be reopened automatically with the new model/branch combination as the selected row.
  • If you do not switch, the Software Factory keeps all documents open in the context of the original model/branch combination. In addition, a new Model overview screen is opened with the new model/branch combination as the selected row.

To switch to the model or branch at a later moment, see Switch to another model or branch.

model switch Start working in the new model or not

Set model details

After creating a new model, set more details:

menu Models > Model overview > tab Models > tab Model overview

  1. Select whether the model is a Base model. If it needs to be linked to new models by default, select Def. base model. Only the MAIN branch of a base model is automatically linked to a new model.

    Base models are models that are only used by other models. A base model contains the necessary details for the correct operation of a model, a supplement, or an addition, such as a default theme or default translations. Also, Thinkstore models can be used as a base model inside your work model. For more information, see the chapter Base model.

  2. Select whether the model is a Work model.

A new model usually is a work model because you are going to develop it. When you create a new work model, the Software Factory will automatically link default base models to it. Only base model branches without origin or default base models will be linked.

tip

To hide a model, clear the checkbox Work model. Then it will no longer show in tasks for selecting a model or switching to another branch. It will also be hidden by prefilters on the screens.

  1. Windows GUI There are three fields available: Title 1, Title 2, and Title 3. You can enter any information into these fields, which will appear on the splash screen during startup, in the title header, in the list of applications, and on the About screen.

Model overview Model settings

Rename a model

Not available at the moment

At the moment, it is not possible to rename a model or branch because that would cause a loss of history.

Base models

Base models are models that are only used by other models. A base model contains details that are necessary for the correct operation of a model, a supplement, or an addition, such as a default theme or default translations. Also, Thinkstore models can be used as a base model inside your work model.

You can link only one branch of a base model to a branch of a work model.

menu Models > Model overview > tab Branches > tab Base models

This tab provides an overview of all base models and whether they are linked to this branch or not. If necessary, use prefilter Linked linked to view only the linked base models.

To link a branch of a base model to a branch of a work model:

  1. Select the base model.
  2. Execute task Link base model link.
note

If you do not want to use the current MAIN branch, execute task Select previous branch select previous.

When you link a base model branch to a work model branch, it needs to be generated to obtain the model of the base branch.

  1. To generate the definition immediately, reply Yes to the question "Do you want to generate the definition for model [MODEL NAME] > [BRANCH NAME] immediately?". You can also reply No, link other base model branches, and generate the definition after the last one with the task Generate definition generate definition.

More tasks are available:

  • unlink Unlink base model - To unlink a base model branch from a work model branch. Note that components of the base model will be removed from the work model during generation. Only components that are no longer in use are removed. It might take multiple generations before all components are cleaned up.
warning

Never unlink the base models SQLSERVER_DB, DB2_DB or ORACLE_DB from a work model. These base models are required for versioning and executing code.

  • import Merge base models into work models - To import the base models for the selected work model without generating. This is an expert function that can be used for testing new features from a base model in a work model.

Clean up model history data

Over time, the database can grow in size due to a growing list of deleted and archived models and branches, and their history data. To prevent problems with storage, backup, and restoration, you can clean up the history data.

To clean up these history data manually:

menu Advanced > Master data > Software Factory

  1. In the menu, select the task Clean up model history clean up model history.
  2. Optional. Select the checkbox Delete archived branches. Archived branches cannot be unarchived if you delete them.
  3. Select the Specific model and Specific branch for which you want to clean up the deleted branches and models.

Export and import models

Export a model

You can export your own work and base models. By exporting a model, you can share it between different environments. This is a fast and easy way to enrich your models.

Exporting a model only makes sense if it has a branch (a model without a branch is empty).

To export a model:

menu Models > Model overview > tab Models

  1. Execute the task Export model Export.
  2. Enter a Model and Branch name.
  3. Select Execute.
  4. Select a folder and, if necessary, change the name. The default name contains the date and time of the export, the model, and the branch name. Note that .dat is the only allowed extension for importing a model.
  5. Select Save.

The entire model, its base data, and branch are compressed and exported, excluding trace columns and non-default runtime configurations. You can download the export in the pop-up.

Export base data

Export base data if the model you want to export uses base data which is not present in the receiving Software Factory.

note

Usually, you do not need to export base data because the base data is already present in the exported model.

To export base data:

menu Advanced > Master data > Software Factory > Export base data

  1. Execute the task Export base data Export.
  2. Select a folder and, if necessary, change the name. The default name is 'base_data.dat'. Note that .dat is the only allowed extension for importing a model.
  3. Select Save.

Import a model

You can import exported model data into another branch or model. This is useful when you want to reuse a model from another Software Factory or when you want to merge model data into another model. You can import model data into a model without a branch or into a new model that does not yet exist. Furthermore, you can merge imported model data with an existing model to update an existing branch.

note

You can only import a model into another Software Factory if the platform version is the same as the Software Factory from which the model was exported. The only allowed extension is .dat.

To import a model:

menu Models > Model overview > tab Models

  1. Check if it is necessary to import base data before importing the model, see Import base data.
  2. Execute the task Import model import.
  3. Select the Import option:
    • New model - The imported model is a new model.
    • New branch - The imported model is added as a branch of an existing model.
    • Replace complete branch - Adds, updates, and deletes all objects based on the imported model.
    • Merge into branch - Only adds and updates objects based on the imported model. This option does not delete any existing objects.
  4. Select the target Model and Branch.
  5. Upload the .dat file that you want to import.
  6. Select Execute. The model will be decompressed and imported. Trace columns will be completed with the name 'Imported' and the current system date and time.
tip

The parameter merge_into_existing_model is available to execute the task Import model via code or via API. A value of 1 indicates that the model.dat will be merged into the branch and will therefore not delete any objects.

Import a model

Import base data

Import base data if the model you want to import uses base data which is not present in the receiving Software Factory.

note

Usually, you do not need to import base data because the base data is already present in the exported model.

You can recognize this situation when an import fails because of missing objects.

Import model error Example of a domain which cannot be imported because of a missing user-created datatype

To import base data:

menu Advanced > Master data > Software Factory > Import base data

  1. Execute the task Import base data import.
  2. Select the File path of the .dat file you wish to import.
  3. Select Execute.
  4. Import the model again, now that the required base data is present. See Import a model.
note

Base data may be overwritten when upgrading platform versions.


Was this article helpful?