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
- Click on the Create project
task. The following screen will appear:
Add a new project
Add a Project name and Description.
If necessary, change the Project version.
If necessary, change the RDBMS Type. The default is set in the menu Maintenance > Configuration.
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.
Open the detail tab Project overview to set more details (if necessary).
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.
Only base projects with the status Production are automatically linked to new projects.
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.
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'.
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.
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
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.
If necessary, change the Update status (Development, Test, Acceptance, Production or Inactive). This is the new status of the original project version.
The Project version is incremented automatically. This can be changed.
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
Specify a project folder in the grid, in column Project folder specification.
Project folder specification in the grid
Execute the Export project version
task.
Enter a Project name and Project version.
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
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
- Execute the Import project version task
.
- Select the file path of the model.dat file you wish to import.
- If necessary, change the Project name and Project version.
- 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 project version - See Export a project version.
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.
Application languages
In the Software Factory, languages can be set at different levels:
Setting | |
---|---|
Thinkwise supported languages | Thinkwise 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 version | For 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 language | Universal 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 language | Global 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.
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.
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
- 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.
- To create a base project, see chapter Create a new project with an initial version.
- For more information about base projects for languages, see chapter Application languages.
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 to view only the linked base projects.
To link a base project to a work project:
Select the base project.
Execute task Link base project
.
noteIf you do not want to use the current version, execute task Select a previous project version
.
When you link a base project to a work project, it needs to be generated to obtain the model of the base project.
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
.
More tasks are available:
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.
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.