Skip to main content
Version: 2022

Project overview

Introduction to projects

  • The Project overview screen shows a list of all projects in the Software Factory development environment and allows you to create new projects and project versions.
  • The Project versions tab page lists all versions of the selected project and allows you to modify the generic settings for these versions.
  • The Branches tab page shows all branches of the selected project.

Create a new project with an initial version

To create a project with an initial version:

menu Projects > Project overview > tab Projects

  1. Click on the Create project Add task. The following screen will appear:

1537192957680 Add a new project

  1. Add a Project name and Description.

  2. If necessary, change the Project version.

  3. If necessary, change the RDBMS Type. The default is set in the menu Maintenance > Configuration.

  4. Press Execute.

    The following configuration settings are retrieved from the Default configuration (menu Maintenance > Configuration).

    • The Project folder, which is the location on disk that is used for temporarily storing program objects for the Functionality modeler, project version exports (model.dat files), GUI theme exports, and the Deployer manifest.
    • The Sub name group (optional). If no sub name group is selected in the default configuration, a new sub name group will be created for this project. For more information on sub names, see Naming.
    • The Company name and application Title are used in the splash screen at your application's startup.

After the project has been created, a job will be scheduled automatically to generate its definition. You can view this job in menu Maintenance > Jobs.

  1. Open the detail tab Project overview to set more details (if necessary).

  2. Select whether the project is a Base project. Select Def. base project if it needs to be linked to new projects by default.

    Base projects are projects that are only used by other projects. A base project contains certain details that are necessary for the correct operation of a project, a supplement, or addition, such as a standard layout or a requirements model. Also Thinkstore projects can be used as a base project inside your work project. For more information, see chapter Base project.

note

Only base projects with the status Production are automatically linked to new projects.

  1. Select whether the project is a Work project. A new project usually is a work project since you are going to develop it. If you wish to archive a project, you can deselect this checkbox. Then, the project will no longer show in the ribbon and be hidden by prefilters on the screens.

  2. When Multiple live versions is checked, it is possible to have more production versions. By default, only one project version can have the status 'Production'.

  3. The Notification email address is used to send notifications to the development team about the start and finish of definition and source code generation. Make sure that the notification settings are set in the Default configuration screen to receive emails.

Project detail Create a new project

Create the next project version

After deploying a project version, further development is always done in a new project version. This enables the Software Factory to analyze the differences between these versions and perform an automatic database upgrade to the new version.

To create the next project version:

menu Projects > Project overview > tab Project versions

  1. Copy the current version to the new version using the Copy project version task. The new version will be exactly the same as the old version.

  2. If necessary, change the Update status (Development, Test, Acceptance, Production or Inactive). This is the new status of the original project version.

  3. The Project version is incremented automatically. This can be changed.

note

The default increment for a project version (a hundredth, a tenth, or a whole number) can be set in the menu Maintenance > Configuration > tab Configuration > field Project version increment.

Export and import projects

It is possible to export and import your own work and base projects in the Software Factory. By exporting a project, you can share it between different environments. This is a fast and easy way to enrich your projects.

Export a project version

menu Projects > Project overview > tab Project versions > tab List

  1. Specify a project folder in the grid, in column Project folder specification.

project folder specification Project folder specification in the grid

  1. Execute the Export project version Export task.
  2. Enter a Project name and Project version.
  3. click Execute.

The complete project version model will be exported excluding trace columns and non-default runtime configurations. The project will be compressed, named model.dat, and written to the selected project folder.

Import a project version

note

You can only import a project in another Software Factory if the version is the same as the Software Factory the project was exported from.

menu Projects > Project overview > tab Project versions > tab List

  1. Execute the Import project version task import.
  2. Select the file path of the model.dat file you wish to import.
  3. If necessary, change the Project name and Project version.
  4. Click Execute.

The project will be decompressed and imported. Trace columns will be filled with the user name 'Imported' and the current system date and time.

Project version overview

The Project version tab page shows a list of project versions for the selected project.

Project version status

menu Projects > Project overview > tab Project versions > tab List

The status of a project version indicates the stage, or environment, the project version is in. The Copy project version task allows you to update the status of the previous project version. A new project version is created with the status Development.

The following statuses are available:

  • Development - The project version is being developed.
  • Test - When the development phase is completed, the project version can be tested.
  • Acceptance - During the acceptance phase the users can become acquainted with the system and detect any final errors.
  • Production - When the system is accepted, it is put into production. The project version can no longer be modified once it is put into production.
  • Inactive - The project version is no longer used in any of the environments.

Project version tasks

menu Projects > Project overview > tab Project versions > tab List

Besides the copy and rename tasks, several other tasks are available on the Project version tab page.

  • Create branch - Used to create a new branch of a project, based on the selected project version.
  • Correct foreign key casing - Because incorrect casing may cause problems in the user interfaces or service tier, this task is provided to correct the casing if necessary.
  • Locate invalid XML character - Some characters, such as the 0x0A linefeed character, can cause problems when serializing the model to XML. These (control) characters, which are often not displayed, can be located using this task.
  • Retrieve number of rows - Used to query the number of rows for all tables in an end-product database. This number is stored in the NO_OF_ROWS table tag and can be used to automatically enrich the model. For example by changing the look-up control or screen type of an entity based on the number of rows in the database, to optimize the performance or user experience.
  • export Export project version - See Export a project version.
  • import Import project version - See Import a project version.

Project version defaults

menu Projects > Project overview > tab Project versions > tab Form

  • Database storage location

    • Project folder specification - This is the location on disk that is used for temporarily storing program objects for the Functionality modeler, project version exports (model.dat files), GUI theme exports, and the Deployer manifest. It should always be available to Indicium. Thinkwise advices to use a UNC path here.
  • Task

    • Enable for empty subject - To enable the table task when no records are present on the screen. Adjusting this setting afterward will not change the existing rows. It will only affect the default value for new rows.
  • Report

    • Enable for empty subject - To enable the table report when no records are present on the screen. Adjusting this setting afterward will not change the existing rows. It will only affect the default value for new rows.
  • Data

    • Use domains - Enabled by default. When you disable it, all tables will use standard data types instead of the user-defined data types for the domains. Disable it when, for example, you wish to use SQL Data Synchronization to synchronize data between Azure databases since this tool cannot process user-defined data types. If you change this option, all tables need to be rebuilt. They will automatically be set to status 'changed' and added to the data conversion (and therefore to the upgrade script).

Platforms

menu Projects > Project overview > tab Project versions > tab Platforms

Lists the available platforms (Windows, Web and Mobile) for this project and the default theme and menu per platform.

1537439487199

Application languages

In the Software Factory, languages can be set at different levels:

Setting
Thinkwise supported languagesThinkwise supports a basic set of languages. New languages outside this set can be added in the Master data:
Advanced menu (right-click on the Default menu): menu Master data > Model > Application languages
Windows GUI Here, you can also set a flag icon, visible for the user when they select a language from the ribbon.
Application languages for a project versionFor all Thinkwise-supported languages, a base project with GUI translations is available in:
menu Projects > Project overview > tab Project version > tab Base projects
- An overview of the languages in a project version is available in menu Projects > Project overview > tab Project versions > tab Application languages.
- Translation objects are generated for all application-specific terms and need to be translated in every specified language.
- To add a new language, link its corresponding base project. See chapter Base projects.
- All GUI labels and messages are added and translated for all linked Thinkwise-supported languages.
- Translations for database errors and warnings are available in a base project for English, German, and Dutch (DB2_MSG_TRANSL, ORACLE_MSG_TRANSL, SQLSERVER_MSG_TRANSL). Each supported database platform contains their own errors. Only base projects with the same database platform as the work project will be shown.
Fallback languageUniversal GUI The fallback language is applied when a user uses a language that is not available for the application. The fallback language can replace the selected language when starting the application via IAM and when starting the application directly on the Software Factory. A language can, for example, be available if the application is started via IAM but not if it is started directly on the Software Factory. In that case, the fallback language is used in the Software Factory.
- To set the fallback language for a project version:
menu Projects > Project overview > tab Project versions > tab Form > tab Project version
- To set the default fallback language for a new project:
menu Maintenance > Configuration
Login languageGlobal translations are used for the login process in web applications, when a user's identity and application language are not yet known:
IAM > menu Settings > Global translations

File storage locations in the Software Factory

menu Projects > Project overview > tab Project versions > tab File storage locations

The Thinkwise Platform provides multiple options for storing files like documents and photos. For more information, see File storage types.

It is possible to deviate from the intitially configurated file storage location type. For example, the Software Factory writes its code files to disk (default) but this can be switched to AWS. Then, if a system flow contains a Write file connector using the reconfigured file storage, Indicium would write it to AWS S3.

note

File storage locations cannot be switched from or to storage type "Database".

  • For each project version, you can set the initial file storage location in menu Projects > Project overview > tab Project versions > tab File storage locations. Here, you can create or update the file storage locations used by your application. For more information, see File storage types.

  • For each runtime configuration, the base file storage location can be configured in the Software Factory: menu Maintenance > Runtime configurations > tab File storage locations. For more information, see the Runtime configurations manual.

  • The file storage location can be overridden in IAM: menu Authorization > Applications. See File storage location settings in IAM.

File storage - allowed extensions

menu Projects > Project overview > tab Project versions > tab File storage location > tab Extension whitelist

For each file storage location, it's possible to create a whitelist with allowed file extensions. This list can be used to limit the file types that can be uploaded.

Extensions whitelist Whitelist for allowed extensions in file storage

OAuth servers

OAuth 2.0 is the industry-standard protocol for authorization. It can be used to connect to other applications like Google, Facebook, Github, etc.

The OAuth servers that are created here, can be used in process flows to create a secure connection for HTTP-connectors to use.

menu Projects > Project overview > tab Project versions > tab OAuth servers

OAuth server options

menu Projects > Project overview > tab Project versions > tab OAuth servers > tab Form > area Options

In the Options area, you can specify the following settings:

Options area Options area

  • Client - The public Client ID.
  • Client secret - A string used by the OAuth client to authenticate to the authorization server. It is essentially the application’s password and must be sufficiently random.
  • Request refresh token - Request an additional token to allow refreshing the access token when it expires.
  • Prompt - Specifies how the user is prompted for authentication:
    • Consent - opens a consent dialog after the user signs in, asking the user to grant permissions.
    • Login - forces the user to enter their credentials, negating single-sign on.
    • Select account - sends the user to an account picker where all accounts remembered in the session will appear.
    • None - does not present any interactive prompt to the user. If the request cannot be completed silently via single-sign-on, an error is returned.

Override OAuth server settings

  • To override these settings for development or testing purposes in the runtime configuration: menu Maintenance > Runtime configurations > tab OAuth servers.
  • To override these settings in IAM: menu Authorization > Applications > tab OAuth server configurations.

Database storage locations

menu Projects > Project overview > tab Project versions > tab Database storage locations

For SQL Server, the file locations for the database can be set here. When empty, the default server settings are used. For more information, see Database files and filegroups.

Printers

menu Projects > Project overview > tab Project versions > tab Printers

Here, you can configure and edit the available printers for the project version selected in tab Projects.

Base projects

Base projects are projects that are only used by other projects. A base project contains details that are necessary for the correct operation of a project, a supplement or an addition, such as a standard layout or a requirements model. Also, Thinkstore projects can be used as a base project inside your work project.

You can link only one version of a base project to a version of a work project.

menu Projects > Project overview > tab Project versions > tab Base projects

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

To link a base project to a work project:

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

If you do not want to use the current version, execute task Select a previous project version select previous.

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

  1. If you want to generate the definition immediately, reply Yes to the question "Do you want to generate the definition for project [PROJECT NAME] > [VERSION] immediately?". You can also reply No, link other base projects, and generate the definition after the last one with task Generate definition generate definition.

More tasks are available:

  • unlink Unlink base project - To unlink a base project from a work project. Note that components of the base project will be removed from the work project during generation. Only components that are no longer in use are removed. It might take multiple generations before all components are cleaned up.
  • import Merge base projects into work project - To import the base projects for the selected work project without generating. This is an expert function that can be used for testing new features from a base project in a work project.

Quality dashboard

menu Projects > Project overview > tab Quality dashboard

Here you can monitor the quality of this project. For more information, see: Quality dashboard.

Runtime configurations

It is possible to use different file storage locations for different runtime configurations. This allows you to, for instance, specify different locations for your development, test, acceptance and production environments. For more information, see runtime configurations.

Was this page helpful?