TSM App
Configuration File HAKOM.Config
The HAKOM.Config file contains settings relating to database connections as well as application appearance and behavior such as language, activated plug-ins, etc. The following describes those settings in detail.
The file is found in the installation directory of the Time Series Manager, most commonly under „C:\Program Files (x86)\HAKOM\TSM 3.9\bin“.
The HAKOM.Config file is an XML document split into two main sections under the <HAKOMConfiguration> root: "dbconnections" and "products"
Tag "dbconnections"

Minimum requirement for using the Time Series Manager is a database connection to a schema holding actual time series data (HAKOM_TSM) as well as a schema holding authentication and authorization data (HAKOM_ACL). You may, of course, configure mutiple HAKOM_TSM schemas. These will then be listed in the "Data source" drop-down list in the ZAMS plug-in (if the logged in user has the necessary rights configured in the HAKOM_ACL schema)
Note: When accessing a PostgreSQL database, it is recommended to use the following settings in the connection string:
Pooling = true | Substantially reduces the time required for database requests. |
---|---|
Timeout = 30 | Specifies the amount of time (in seconds) before an attempt to connect is given up on and an error is thrown by the application |
Tag "products"
Settings for individual HAKOM products (such as the Time Series Manager)
Some basic settings of HAKOM Framework may have an impact on TSM behavior. A separate document describing the section "HAKOMFramework" under "products" is available.
Tag "TSM"
Tag "settings"
Tag | Description | Default Value | Possible Values | ||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<LanguageKey> | Controls the language of the user interface for the TSM. | Display language of the operating system |
| ||||||||||||||||||||||||
<LanguageSpecific lang="xx-XX"> | See Tag "LanguageSpecific" | ||||||||||||||||||||||||||
<TemplateValidation> | Used for language independent validation of Excel templates. Cells to validate can be configured as tags with their valid values. Example:
XML
If the tag TemplateValidation does not exist, templates will be validated depending on the configured language. If the tag TemplateValidation is empty, no validation is done. |
| String | ||||||||||||||||||||||||
<ShowInformationDialog> | Control if the task progress window stays opened after processing is finished. If an error occurs during processing the window stays openend anyway. | false | Boolean | ||||||||||||||||||||||||
<AllSheetsChecked> | Controls the default value of checkboxes "all sheets" ("Update" and "Save" sections). | false | Boolean | ||||||||||||||||||||||||
<AllSheetsRead> | Controls the visibility of the checkbox "all sheets" ("Update" section). | true | Boolean | ||||||||||||||||||||||||
<AllSheetsReadChecked> | Controls the default value of the checkbox "all sheets" ("Update" section). | false | Boolean | ||||||||||||||||||||||||
<AllSheetsSave> | Controls the visibility of the checkbox "all sheets" ("Save" section). | true | Boolean | ||||||||||||||||||||||||
<AllSheetsSaveChecked> | Controls the default value of the checkbox "all sheets" ("Save" section). | false | Boolean | ||||||||||||||||||||||||
<DatesAndRasterFromTemplate> | Controls the visibility of the checkbox "period from template". | true | Boolean | ||||||||||||||||||||||||
<DatesAndRasterFromTemplateChecked> | Controls the default value of the checkbox "period from template". | false | Boolean | ||||||||||||||||||||||||
<WithTime> | Controls the default value of the time-checkbox at "Update" section. | false | Boolean | ||||||||||||||||||||||||
<DayStart> | Controls the default value of time if the time-checkbox is unchecked. | 00:00:00 | ISO 8601 time format: [hh]:[mm]:[ss] | ||||||||||||||||||||||||
<DayStartActive> | Controls the default value of time if the time-checkbox is checked. | Value of <DayStart> | ISO 8601 time format: [hh]:[mm]:[ss] | ||||||||||||||||||||||||
<AdaptFactor> | Adapt factor for roll out. | 100 | Double | ||||||||||||||||||||||||
<DescendingChecked> | Controls the default value of the checkbox "descending". | false | Boolean | ||||||||||||||||||||||||
<MissingEmptyChecked> | Controls the default value of the checkbox "missing as null". | false | Boolean | ||||||||||||||||||||||||
<ContinueDays> | Controls the visibility of the checkbox "roll out" and the corresponding button. | true | Boolean | ||||||||||||||||||||||||
<ContinueDaysChecked> | Controls the default value of the checkbox "roll out". | false | Boolean | ||||||||||||||||||||||||
<StateValid> | Controls the visibility of the checkbox "all values valid". | true | Boolean | ||||||||||||||||||||||||
<StateValidChecked> | Controls the default value of the checkbox "all values valid". | false | Boolean | ||||||||||||||||||||||||
<UseSpreadsheetGearFormulas> | Controls if SpreadsheetGear will be used for calculations of Excel formulas. This setting applies to the TSM SOAP Service for reading and calculating saved templates. | true | Boolean | ||||||||||||||||||||||||
<Plugins> | Defines the available plug-ins, which will be loaded at start-up of TSM. Further it can be configured, under which drop-down button the plug-in will be added. To achieve this, the plug-in-tag has to be added to one of the following tags:
If the plug-in won't be added to one of those tags, then the plug-in will be available under "Extensions". Redirections have to be configured as tags with following format: | see <Plugin> see <PluginRedirects> | <Plugin> <PluginRedirects> | ||||||||||||||||||||||||
<Plugin> | A plug-in has to be defined according to the following format:
XML
|
Both under "Administration". | String | ||||||||||||||||||||||||
<PluginRedirects> | For language independent allocation of plug-ins, it is possible to configure a redirection. These redirections have to be listed here. | see <PluginRedirect> | <PluginRedirect> | ||||||||||||||||||||||||
<PluginRedirect> | A redirect has to be defined according to the following format:
XML
A source may not map to two different targets. |
| String | ||||||||||||||||||||||||
<ParallelSavingToDB> | Controls if saving to database will be done in parallel threads. | false | Boolean | ||||||||||||||||||||||||
<CommentAreaInfo> | Controls if additional information in the comment area (row 2 till row 8) will be set. | false | Boolean | ||||||||||||||||||||||||
<KISSAImportPlugIn> | Name of the plug-in to be used for processing a KISS-A template. | String | |||||||||||||||||||||||||
<KISSAImportConnection> | Database connection to be used for processing a KISS-A template. | String | |||||||||||||||||||||||||
<VisploreTraceLevel> | Defines which processing information during view of TSM Visuals diagrams will be logged. In verbose mode in addition to all messages the input and ouput data will be logged as well. | 0 | 0 till 4 https://docs.microsoft.com/en-us/dotnet/api/system.diagnostics.tracelevel?view=netframework-4.7.2 | ||||||||||||||||||||||||
<VisploreTracePath> | Defines the path, where processing information during view of TSM Visuals diagrams will be saved. | .\VisploreTrace | String | ||||||||||||||||||||||||
<VisploreAlwaysIncludeSourceData> | Controls if source data, e.g. of formula time series, will be always transfered to TSM Visuals. | false | Boolean | ||||||||||||||||||||||||
<VisPloreLightStartWithConsole> | Determines whether the console window should be opened when starting the visuals. | false | Boolean | ||||||||||||||||||||||||
<VisploreCanHandleDataEdits> | Defines, if the button to apply changes to time series data is visible in the TSM Visuals. | false | Boolean | ||||||||||||||||||||||||
<MaxDegreeOfParallelism> | Defines the maximum number of parallel threads when reading and saving data as well as importing and exporting master data. | 10 | Integer | ||||||||||||||||||||||||
<ShowOnlyTSMVisuals> | Controls if only TSM Visuals will be displayed in the ribbon menu and all other controls will be hidden. | false | Boolean | ||||||||||||||||||||||||
<ImageResourceAssembly> | A custom resource DLL file can be configured to change the icon, graphic and splash screen of TSM. | String | |||||||||||||||||||||||||
<FlagNames> | List of settings on how flags should be displayed in the context menu Example:
XML
| If these are not set in the HAKOM.Config, the default values for the TSM's set language are used. | |||||||||||||||||||||||||
<FlagVisibility> | Determins if flags are shown
| 1 | Integer, 0-2 | ||||||||||||||||||||||||
<ValidControlInstructions> | Configures which values can be used to control if a column in the sheet should be written to the data base, updated from the data base or ignored. Example:
XML
|
| String | ||||||||||||||||||||||||
<SetCellEmptyIfValueIsNaN> | Controls wether values read which do not evaluate to a valid number (i.e division by zero, etc.) should result in an empty cell | false | Boolean | ||||||||||||||||||||||||
<AskBeforeSaving> | Determines whether an additional confirmation is required to save data | false | Boolean | ||||||||||||||||||||||||
<VisploreDiagrams> | Contains the diagrams of the TSM Visuals, which shall be displayed by the Visuals ribbon.
XML
| see <Diagram> | <Diagram>-Tags | ||||||||||||||||||||||||
<Diagram> | Defines a diagram that shall be displayed by the Visuals ribbon. A diagram has to be defined according to the following format:
XML
|
The Available attribute of all diagrams is set to "true" by default. The IncludeSourceData attribute of all diagrams is set to "false" by default. The DisplayName of the diagrams can be found in the table under Tag "LanguageSpecific". | |||||||||||||||||||||||||
<ShowErrorsOnWorksheetRightClick> | Controls whether error messages that may occur when right-clicking in Excel should be displayed or suppressed. | false | Boolean | ||||||||||||||||||||||||
<VisploreSenderPortRange> | Defines the range of ports that can be used to transmit data from TSM to Visuals. | 51101-51500 | Integer Range | ||||||||||||||||||||||||
<VisploreReceiverPortRange> | Defines the range of ports that can be used to transmit data from Visuals to TSM. | 52101-52500 | Integer Range |
Tag "LanguageSpecific"
The tag <LanguageSpecific> is listed under the tag <TSM> in the section <settings>. Language specific settings are defined here. The "lang" attribute specifies the language for which these settings apply. Possible values are "de", "en" and "ru".
Tag | Beschreibung | Standardwert | Mögliche Werte | ||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
<Templates> | This tag may contain multiple <Template> tags. | see <Template> | <Template>-Tags | ||||||||||||||||||||||||||||||||||||||
<Template> | Path to templates used for opening new workbooks or new worksheets. The configuration of several templates is possible.
XML
|
| String | ||||||||||||||||||||||||||||||||||||||
<DefaultRaster> | Defines the preselected value of the drop-down list "Interval" of the TSM-mask. | 1h | Name of a <Raster> tag | ||||||||||||||||||||||||||||||||||||||
<DefaultPagingRaster> | Controls the default value of the interval drop-down list for back and ahead navigation in the ribbon menu. | Template | Name of a <Raster> tag | ||||||||||||||||||||||||||||||||||||||
<DefaultUnit> | Defines the preselected value of the drop-down list "Unit" of the TSM-mask. | DB | Value of attributes "Work" or "Power" from <Unit> tag. | ||||||||||||||||||||||||||||||||||||||
<Units> | Defines the items of the drop-down list "Unit" of the TSM-mask. | see <Unit> | <Unit>-Tags | ||||||||||||||||||||||||||||||||||||||
<Unit> | Defines an item of the drop-down list "Unit" of the TSM-mask. A unit has to be defined according to the following format:
XML
|
| |||||||||||||||||||||||||||||||||||||||
<Rasters> | Defines the items of the drop-down list "Interval" of the TSM-mask. | see <Raster> | <Raster>-Tags | ||||||||||||||||||||||||||||||||||||||
<Raster> | Defines an item of the drop-down list "Interval" of the TSM-mask. An interval has to be defined according to the following format:
XML
The listed negative IDs are available as options for intervals. If a positive ID is used, then this value is interpreted as seconds and in this manner it is possible to freely define intervals in the HAKOM.Config. Here is an example of a five-minute interval:
XML
When using milliseconds, this functionality is also available. However, please note that the value specified under ID is interpreted as milliseconds. The above example would look like this if milliseconds were used:
XML
|
If milliseconds are activated, the following intervals are used instead of 1sec and 1min:
| |||||||||||||||||||||||||||||||||||||||
<TimeSeriesExportTemplate> | Defines the path of the export-template for master data export. | ..\Data\en\MasterDataExamples.xlsx | String | ||||||||||||||||||||||||||||||||||||||
<VisploreDiagrams> | Using the tag <VisploreDiagrams> within <LanguageSpecific>, the display name of the diagrams can be changed specifically for that language. | see <Diagram> | <Diagram>-Tags | ||||||||||||||||||||||||||||||||||||||
<Diagram> | With the following entry the display name of a diagram can be changed:
XML
|
|
Details
Configuration of list entries (Extend="true"/"false")
For the settings of the TSM, default values are set. Default values can be overridden by simply entering the respective tag with the desired value in the HAKOM.config.
To make it more comfortable with list entries, you can specify if you want to replace or extend the default list by means of an optional attribute (Extend)
This is shown by the example of the drop-down list "Unit" of the TSM-mask:
The selection list has the following units for selection by default:
This drop-down list can be edited via the setting <Units> (the units "template", "DB" and "none" are implemented separately).
If this list is to be replaced, the following entry must be made in the HAKOM.Config:
<HAKOMConfiguration>
<products>
<TSM>
<settings>
<LanguageSpecific lang="en">
<Units Extend="false"> <!-- Extend="false" specifies that the default values of the list should be replaced by the following ones. -->
<Unit Work="NewUnit" Power="NewPower" />
</Units>
</LanguageSpecific>
</settings>
</TSM>
</products>
</HAKOMConfiguration>
After a restart the drop-down list looks like this:
As you can see, the default values are no longer included.
If the list is to be extended, the following entry must be made in HAKOM.Config:
<Units Extend="true"> <!-- Extend="true" specifies that the drop-down list should be expanded by the following values. -->
<Unit Work="NewUnit" Power="NewPower" />
</Units>
After a restart the drop-down list looks like this:
As you can see, the default values and the specified values are included in the list.
Support of milliseconds
To activate time series with intervals less than one second, the setting InternalTimeUnit must be added or adjusted
For more information, refer to Framework v3.8.2: Operators - Configuration (en)
<HAKOMConfiguration>
<products>
<HAKOMFramework>
<settings>
<InternalTimeUnit>2</InternalTimeUnit>
</settings>
</HAKOMFramework>
</products>
</HAKOMConfiguration>
possible values:
0 (default), seconds, beginn: 1972-01-01T00:00:00+01:00
1 seconds, beginn: 1970-01-01T00:00:00Z
2 milliseconds, beginn 1970-01-01T00:00:00Z
If the configuration does not contain this tag, the default value 0 will be used.
Raster Adjustment
In order to display the raster correctly in the user interface, the settings under <Rasters> must also be adjusted:
<HAKOMConfiguration>
<products>
<TSM>
<settings>
<LanguageSpecific lang="de-DE">
<Rasters>
<Raster Name="1ms" ID="1" />
<Raster Name="10ms" ID="10" />
<Raster Name="100ms" ID="100" />
<Raster Name="1sec" ID="1000" />
<Raster Name="1min" ID="60000" />
</Rasters>
</settings>
</TSM>
</products>
</HAKOMConfiguration>
This setting must be made explicitly for each language to be supported (e.g. "en-EN", "ru-RU").
In addition, a change must also be made to the database. The necessary changes can be found here: .Installing HAKOM TSM Database.