Folder Structure of the SolutionBuilder based Applications
Goal
After completing this how-to you will have an understanding about the structure of application folder for SolutionBuilder based applications
Introduction to version control
We recommend storing sources for the project in Version Control. If you are already familiar with version control, you can skim or skip this section.
A version control system serves the following purposes, among others.
- Version control enables multiple people to simultaneously work on a single project. Each person edits his or her own copy of the files and chooses when to share those changes with the rest of the team. Thus, temporary or partial edits by one person do not interfere with another person's work.
Version control also enables one person you to use multiple computers to work on a project, so it is valuable even if you are working by yourself. - Version control integrates work done simultaneously by different team members. In most cases, edits to different files or even the same file can be combined without losing any work. In rare cases, when two people make conflicting edits to the same line of a file, then the version control system requests human assistance in deciding what to do.
- Version control gives access to historical versions of your project. This is insurance against computer crashes or data lossage. If you make a mistake, you can roll back to a previous version. You can reproduce and understand a bug report on a past version of your software. You can also undo specific edits without losing all the work that was done in the meanwhile. For any part of a file, you can determine when, why, and by whom it was ever edited.
Development folder with extension sources
We recommend downloading sources to project folder, so sources are on the same level as installation folder.
After getting sources, the project folder may look like shown at the example:
- "UEMServices" folder contains project where all services are implemented
- "UEM CustomControls" folder contains sources for the front-end components
- "Schema" folder contain all scripts for that application UEM
- "Root" was selected as <InstallationFolder> when installing SolutionBuilder platform to development environment
Installation Folder structure
In the installation folder of SolutionBuilder application, there are many folders with dedicate purpose
- "bin" folder - binaries for Engines(Hostcommon, HostScheduler) are placed. Also, you can find "sps.config" file where connection to DataBase is defined. Normally the file should be updated only with Matrix42 Setup Wizard or through the Global System Settings and starting from DWP v.12.1.1 most of the settings were moved from the SPS.config file to the PDRDwpConfigurationClass database table (see also, Advanced System Settings).
- "Certificates" folder contains certificates for modules like SchemaDesigner, Wokflows, Service Desk, License etc.. After adding a new certificate application restart must be performed.
- "Config" folder contains all scripts that describe application structure, default objects, and setting of application. Setup Wizard installs updates out of there.
- "DataGateway" folder contains logs about datagateway process
- "Logs" folder contains server side log of SolutionBuilder and their archive
- HostCommon.log - logs from HostCommon service (Engine activations)
- HostCommonX86.log - logs from HostCommonX86 service (GDI). Since DWP v.12.1.0 the HostCommonX86 is obsolete.
- HostScheduler.log- logs from HostScheduler service
- Matrix42.Services.log - logs regarding api call and SolutionBuilder services
- Matrix42.Setup.log - logs from Matrix42 Setup wizard
- Security.HostCommon.log - logs regarding security in HostCommon
- Security.Matrix42.Services.log - logs regarding security in SolutionBuilder services
- WE.HostCommon.log -logs regarding Workflow Engine in HostCommon
- "Reports" folder - reports are deployed by Setup Wizard from that folder.
- "ServiceRepository" folder - libraries and assets needed for Worklow Activites to be opened in Workflow Studio
- "svc" folder - this is host folder for M42Service application. Inside there is folder "bin" where all dll needs to be placed in order to be user with SolutionBuilder
- "WM" folder - frontend application with configuration. When adding js libraries or control they must be registered here
Schema scripts
Schema scripts are used in SolutionBuilder for delivering changes to other systems when building application DataModel, Structure, User Interface, Localization, Settings, and default objects.
See also, Schema Scripts.
The changes can be delivered as Configuration Packages and distributed through the Extension Gallery.
Another option is running a recording from the Administration Application. When the Record Customization is enabled, every change in Administration will be tracked and generate the correct script for inserting, updating, or deleting.
Every application has its own scripts stored in source control.
To be able to install scripts, you need to perform those steps:
- copy them to <InstallationFolder>\Config (ex. c:\dev\uemconsole\root\config). This can be done when building application
- register scripts in SolutionBuilder
- run Matrix42 Setup wizard for updating the environment
Register scripts in SolutionBuilder
- Open file for edit <InstallationFolder>\Config\Custom.xml (ex. c:\dev\uemconsole\root\config\Custom.xml)
- add link to xml file where every script is defined. For example: uem.xml
- save the file
<?xml version="1.0" standalone="yes"?> <CustomFiles> <Files FileName="Config\uem.xml" SchemaFilesPath="Config\"/> ..... <Files FileName="Config\Platform.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\Pandora.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\Compliance_UUX.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\SolutionBuilder.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\EDM.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\GDIE.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\Alerting.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\Engines.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\WorkflowEngine.xml" SchemaFilesPath="Config\"/> <Files FileName="Config\LCM.xml" SchemaFilesPath="Config\"/> </CustomFiles>