Setting up Projects
Whenever you want to create a solution with Solution Designer you need to set up a project first. Solution Designer currently supports the following project types:
Service Project
Service Projects
This project type is used to create a single microservice and you decided to implement that service on your own. The creation of a project requires some information on the project's category, type and implementation language. You have two options to create a project:
Create a new project from scratch
Import a Project Template from the Marketplace
Create new Projects
Project Category
Starting with the project category, Solution Designer offers the following categories of projects:
Experience API: Experience APIs refer to a project that will be connected to an external channel. For example a mobile or a web-based application.
Domain Service: Domain services encapsulate the core business logic of a business domain.
System API: Refers to projects that will be integrated to other projects in order to enhance the functionality of the latter.
All options work basically as a flag expressing the overall purpose of the application.
The idea is that, while all of these could easily be incorporated in one big monolith, this would be considered a bad design as any small change would affect the entire project. In other words, by putting each project in the corresponding layer, it allows for a modular design where a small change will affect only the altered project.
Project Type
Solution Designer offers two different project types that support different approaches of development:
Low-Code Projects: Modelling based on Domain Driven Design principles with rich code support for all modelled elements
Pro-Code Projects: Full control over model and implementation with basic code support for build and deploy
Implementation Language
The third information necessary to create a new project is the implementation language of the project. Since both project types generate supporting code, you need to specify the implementation language for the project. Currently the following languages are supported:
TypeScript: Available for both Low-Code and Pro-Code Projects
Java: Available for both Low-Code and Pro-Code Projects (you need to provide a package name for the project)
JavaScript: Available only for Pro-Code Projects
Project Master Data
Finally, you can define the Master Data of the new project as follows:
Acronym: The project's acronym must be unique and must not contain more than 8 characters in capital letters and numbers without special characters (required)
Name: The name of the project (required)
Git provider: A list of all Git providers for which you have an access token (required)
Repository group: All repository groups in the specified Git provider for which you have at least read rights (required)
Domains: Tags to group the projects on the Overview page (optional)
Icon: Name of the icon used on the Overview page (required)
Description: Description of the project. Shown on the Overview page (optional)
Confirming the entries completes the creation of a new project.
Project States
The state of the creation process is shown in the Projects overview. It shows Processing while the project is being created. In this state you can open the project, but you cannot proceed any action. In case of an error, it is also shown on the project in the overview. In this case you can open the project in order to delete it.
If a project was created successfully it is stated as New for the first 24 hours after creation. If its state is Error after creation or import, it means that the creation or initialization of the project on the remote Git repository failed. In this case it cannot be guaranteed, that the project is now ready to work.
Possible reasons for this are:
The remote Git repository is not available at the moment
Invalid Git username and Git token combination defined
The defined Git token does not provide enough permissions to create a new repository
Recommendation:
Ensure that the above mentioned points are set up correctly
Delete the project in Solution Designer
Ensure that the remote Git repository was deleted as well (if necessary, delete it by hand)
Try to re-create the project using Solution Designer. If it still fails, please contact your administrator
Export Projects
To share a project with other teams in the local Marketplace, open the project and navigate to the Overview page and then select the Export capability. To execute that capability, you need to have the role MP_USER. Then you are asked to enter the following information for the exported project:
Marketplace Name: The display name of the project at the marketplace (required)
Contributed By: Name or organization (required)
Marketplace Tags: Tags that allow other users to search for (optional)
Marketplace Description: Description for the project (optional)
Confirming the entries will transfer your project to the local marketplace and it can be reused by others.
Delete Projects
To delete a project, open it in Solution Designer, navigate to the Overview page and select the Delete capability. Then you are asked to confirm the deletion.
When deleting a project, multiple steps are done in order to clean up the project properly. The following list shows the data that is cleaned up while deleting:
Artifacts of the project in the database
Git repository with its data
All deployments of that projects
Cached data related to that project