release notes

Release notes Indicium (2021.2.14)

Related products: Indicium Service Tier
Release notes Indicium (2021.2.14)

Hello everyone,

In this sprint, we've added standard computations and the possibility to change log file names. We also made a minor change to the system flow's end date.

You can read the Indicium user manual to read about Indicium's features.

We'll keep you updated regularly about Indicium's progress.

 

Indicium Universal

 

Edit logfile name and level

Community idea

It is now possible to edit the log file name and the path. This can be useful if you are running multiple instances of Indicium next to each other or if you don't like the current name.

To change a log file name, add the PathFormat to the Logging:ErrorLog segment in Indicium's appsettings.json:

{
"Logging": {
"ErrorLog": {
"PathFormat": "YourOwnName-{Date}.txt",
"LogLevel": {
"Default": "Error",
}
}
}
}
  • Replace the content of FileName with a name of your own choosing (YourOwnName).
  • If no {Date} is specified, Indicium will add it.
  • If file extension .txt is not specified, Indicium will add it.

We also introduced the possibility to edit the minimal log level. The default log level is 'Error'. This feature can be useful if you need more information.

The log level of other logging namespaces can be overridden by adding a key and value to the Logging:ErrorLog:LogLevel section. Some keys cannot be modified and will always be set to level 'Information'.

{
"Logging": {
"ErrorLog": {
"LogLevel": {
// Log Information level messages to the error log.
"Default": "Information",
// Log Debug level messages if the namespace of the logger starts with 'Microsoft'.
"Microsoft": "Debug"
}
}
}
}

 

DB2 iSeries data provider

It turned out that, compared to the old iSeries driver, the new DB2 .NET Core driver has compatibility issues with certain column types. These column types are:

  • XML
  • DBCLOB.

Both these column types throw errors about not being able to perform the required CCSID conversion.

While we still recommend using the newer driver over the iSeries driver due to vast performance improvements, for customers encountering this issue, we are introducing a way to run the iSeries driver using the plugin system that certain report types also utilize.

Please note that since this means data now needs to travel between process boundaries from the plugin to Indicium, this method might degrade performance in some situations compared to Indicium versions that previously used this driver directly. The most noticeable situations are:

  • Selecting large data sets.
  • Downloading file data stored in a database storage column.

To switch to the old iSeries driver, set the DataProviders:DB2:Mode configuration setting to iSeries. The number of plugin workers spawned can be modified using the DataProviders:DB2:WorkerCount setting. The default number is 3.

For example, using appsettings.json:

{
"DataProviders": {
"DB2": {
// Switch to using the old iSeries driver.
"Mode": "iSeries",
// Only spawn one plugin worker process instead of 3.
"WorkerCount": 1
}
}
}

 

Getting the number of rows without data

With this release it is possible to do a $top=0&$count=true OData query. This makes it possible to get the number of records in a table without getting actual data.

 

Application id and alias in the session context

Community idea
The application ID and application alias (available from IAM version 2021.1 or higher) are now available in the session context. If you want to know the application alias or application ID in the database, you can use the following statements:

  • To retrieve the application ID:
    select SESSION_CONTEXT(N'tsf_appl_id')
  • To retrieve the application alias (available from IAM 2021.1 or higher):
    select SESSION_CONTEXT(N'tsf_appl_alias')

This will return the application ID or application alias that was called.

 

Standard computations

Standard computations are a great way to extract data from a column without the need to store them in a different column with a default expression.

For example, if the computation Year is called, the computation will return the year of the supplied dates. Or, if you want to get a part of a column value, you can use Substring to retrieve it.

The following computations are added:

Computation Input Output Example
Date Date DateTime Date $apply=Compute(Date(columnname) as Alias))
Time Time DateTime Time $apply=Compute(Time(columnname) as Alias))
Isoweek Date DateTime Int $apply=Compute(Isoweek(columnname) as Alias))
Weekday Date DateTime Int $apply=Compute(Weekday(columnname) as Alias))
Year Date DateTime Int $apply=Compute(Year(columnname) as Alias))
Month Date DateTime Int $apply=Compute(Month(columnname) as Alias))
Day Date DateTime Int $apply=Compute(Day(columnname) as Alias))
Hour Time DateTime Int $apply=Compute(Hour(columnname) as Alias))
Minute Time DateTime Int $apply=Compute(Minute(columnname) as Alias))
Second Time DateTime Int $apply=Compute(Second(columnname) as Alias))
Ceiling Int Numeric Decimal Int $apply=Compute(Ceiling(columnname) as Alias))
Substring Varchar Nvarchar Char Nchar Varchar $apply=Compute(Substring(columnnameStartindexLength) as Alias))
Concat Varchar Nvarchar Char Nchar Varchar $apply=Compute(Concat(FirstColumnSecondColumn) as Alias))

 

Changed

  • The end date of a system flow is now always filled in, regardless of whether the flow failed or succeeded. This way, the freed-up slot is available for a new instance of the system flow. The log is available in IAM, in the menu Analysis > Scheduled system flows > tab Schedule log.

 

Be the first to reply!