Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

Version:

2023

2024-R1-SR3 (5.

2

4.

5

3)

Release date: 01 September 202321 August 2024

Highlights

  • Actions: Execute in context​. Execute action in context of item(s) in grid or categorizer​.

  • Actions: FTP​. It is now possible to use Actions with different variations of FTP.

  • OData​: OData remotes now support services that only return minimal metadata.​

  • Formulas​: Formula expression features no longer needs to be part of query​. Formula expressions can contain remotes and related values.

  • Watermarking: All endpoints will now apply watermarks according to configuration.

  • Active Directory Integration​: Added “simple” integration option and Group prefix.Language variants on selectables:

    • Validate selectable translations in grid and item editor

    • Edit translations via “Open selectable item”

  • ‘Default values’ and ‘Copy’ are now allowed together

  • Action management improvements

  • Multiple environments:

    • Manage environments

    • Individual connections for each environment

See more info in the features presentation (on the front page of the Knowledge Base) or refer to the release notes.

Windows Client

The Perfion Windows Client has to be installed/upgraded for all Perfion users

View file
namePerfion 20232024-R1-SR3 (5.24.53).zip
View file
namePerfion 20232024-R1-SR3 (5.24.53).msi
View file
namePerfion 20232024-R1-SR3 (5.24.53).exe

Release Notes

2023
2024-R1-SR3 (5.
2
4.
5
3)

Release note title

Release note

Queries using hierarchical operators could be slow in some cases

As a part of 5.2.4, the performance of queries using hierarchical operators (mainly using "{" and "}") was improved. This improvement, however, could have the exact opposite effect. This slow down also affected ECommerce API-methods when using Variants, since they also need to be structured hierarchically. This performance slow down has been fixed.

2023-R1-SR3 (5.2.4)

Release note title

Release note

Non-ASCII characters in filename for Binary Import 

When importing binary files via an URL, the filename of the imported file could be incorrect if it contained non-ASCII characters. This has now been fixed.

Incorrect response from Perfion Image- and File API when asset was not found

The Perfion Image- and File API could return an incorrect status code 400 (bad request) if the requested asset was not found. This has now been fixed so that a more correct status code 404 (not found) is returned instead.

Dashboard use “Having” in the filter

In some cases the Dashboard opened an empty grid if the Dashboard was using “Having” in the filter.

Main Grid jumps

Sometimes the Main Grid jumped when editing values in the grid. This has been fixed.

Scheduling trigger could show incorrect start- and end times

When configuring the Run From and Run To on a scheduling trigger, the system could show incorrect information on the overview, depending on the selected time zone on the trigger. This has now been fixed.

Execute Actions via Applications server

Some Actions was falling with “No user is logged in“ if Language is used in the conncetion string like “PerfionUserID=Admin;PerfionPassword=;PerfionLanguage=DE”

Actions - User roles ignored when executing actions

When a user has access to execute an Action, the Action will have access to all needed data and functions. Eg. an user have access to Actions but does not have access to run the Importer. The user can still execute an actions which uses the Importer.

User management - Readers can not have Admins permissions

If a user is member of the group Admins, the user needs to be an editor. If the user is a reader, and then is added to the Admins group, the user will be changed to an editor.

Bugfix of report export to properly use jpg format

When exporting using report the exported file data and file name for images was not done properly for images original being of format jpg/jpeg. When exporting using other option than original (e.g. high, medium, low) the exported file and filename was png - this should be jpg if original file is jpg/jpeg.

This has been fixed.

In Hierarchy Of on Basevalue in Searches

It is now possible to use In Hierarchy Of on Basevalue in Searches.

The 'edit publication' dialog now supports resizing

Previously it was not possible to resize the new/edit publication dialog, making editing of the XML (advanced mode) a bit difficult. The dialog may now be resized.

ERP Add-in for Microsoft Navision 2017 or newer now supports login based on User Principal Name

The ERP Add-in for Microsoft Navision 2017 or newer now supports login based on User Principal Name. By using this new capability, the Navision add-in can now be activated by Perfion users that are synchronized from Azure AD. 

Bugfix of Query Analyser showing proper total count on index usage

When option index was used in Query Analyser the total count was not correct - it showed the count of the returned rows and not the total count of the query.

This has been fixed.

Only the first of multiple cluster remote features using the same remote connection was returned from API

We have fixed an issue where only the first of multiple cluster remote features using the same remote connection was being returned from API. The feature that was returned was dependent on the order of the features in the configuration. The issue has now been fixed, so that all requested cluster remotes are being returned correctly in the API result.

Dashboard - Filter with only Having clause

It is now possible to use Filter at Dashboards with only Having clauses.

Dashboard - Order Widgets

It is now possible to order and reorder Widgets on Dashboards

Using System.Collections.Generic classes in Actions script

When trying to use certain classes in the System,Collections.Generic namespace in Actions scripts, the Action would fail with a message that the System.Core assembly needs to be referenced. This is now fixed.

Speed of hierarchical queries in the Perfion API has been improved

The speed of hierarchical queries in Perfion API has been greatly improved. The improvement is mainly seen when dealing with many items and deeper hierarchies. This improvement also applies to the ECommerce API. 

2023-R1-SR2 (5.2.3)

Release note title

Release note

Image resize defaults to “Fit”

A bug is fixed so the Image endpoint resize use “Fit” as default.

2023-R1-SR2 (5.2.2)

Release note title

Release note

Configurable OData metadata in OData remotes.

When configuring a OData remote connecting to SAP Business One, it could fail if the endpoint does not support requests for full OData metadata. Now, it is possible to configure the level of metadata, minimal or full, when configuring the OData connection.

Bugfix of Windows Client handling selectable default value deleted

When a selectable value used as default value in a feature configuration was deleted an error in the Windows Client occurred after restart and editing the feature configuration.

This has been fixed so only valid selectable values are used in the Windows Client and when deleting selectable values possible default value usage is also deleted.

Action Import

An error in Action Import removes references to EXECUTE.ACTION when reimport an Action.

Bugfix to Perfion Web Client report parameter handling

Perfion Web Client can now handle reports containing parameters of type input="Perfion.LookUp.Languages".

Timeout of 'Fix Invalid Images'

Previously, the 'Fix Invalid Images' would timeout after approx. two minutes. This has now been extended to one hour.

Actions - Export with templates

It is now possible to use the same export column more the ones in a export template.

Bugfix in Table Designer of proper empty cell usage and query language usage

When a table design contains an empty cell (no elements) and fixed width cell containing selectable with image feature value shown using @FormatValue then the row height would be wrong using the images original height. This has been fixed.

When a table design uses a datasource query having one language which is not the Windows Client users language then the language specific values like feature captions were not used correct when visualizing the table design in the Windows Client. This has been fixed.

Also a minor fix of proper datasource refresh when refreshing the table design visualization has been done.

SELECT.PERFION table mapping now supports excluding path information for binaries

Previously, when using Table output format in the SELECT.PERFION action command, the value for binaries (images and files) would contain path information. A new parameter @ExcludeBinaryRelativePath has been added, to disable this behavior.

OData remotes now correctly loads multiple pages

In certain situations, an OData remote would not load all data correctly causing remote columns to incorrectly show a blank value. This has now been fixed.

OData remotes now supports disabling SSL server certificate validation

When configuring an OData remote, it it now possible to disable validation of the server SSL certificate. This may, for instance, make it possible to use self-issued certificates on the server and still allow Perfion to connect using an encrypted connection. 

2023-R1-SR1 (5.2.1)

Release note title

Release note

Grid operations were slow if many reports.

Certain grid operations were slowed (by seconds) if many Reports were stored in the database. Examples of such operations were right click menu and copy. This performance degradation has been removed. 

Certain features were being disallowed in Feature Data Import

Certain feature names were mistakenly being disallowed to import data into. Most notably, you could not import into any of the features used by the ECommerce API even features made to be configured on Products. This bug has been corrected. 

Search Filters with TreeView

A bug in Search Filters with TreeView is fixed so it did not throw an error

Incorrect languages when running a report

When running a report from the Web client, the languages could be incorrect if the underlying superquery had a languages setup different than the default EN.

This has been resolved

Import feature configuration could take a long time

Import of feature configurations could take a long time to complete on larger databases, even for small imports. This has now been fixed and imports can complete much faster that previously.

View Image and Save Image As are now available for readers

Previously, the View Image and Save Image As menu items was not available for Readers in the right-click menu. This has now been fixed.

Use of ImageUrl in the Perfion Image Control component in report designer

We have fixed an issue where the Perfion Image Control component in the report designer could fail to load an image via the ImageUrl setting, if the url was not identifying a .png image. The ImageUrl can now point to other supported image formats as well.

Bugfix of proper initial/first show of section scene

When the first section has a filter search scene as first scene and a category scene as the second scene the intial show of the section when starting the Perfion Windows Client did not show the search result after a search. Toggling the section from/to first section did fix the problem as a workaround. This has been solved so toggling is not necessary.

Certain string values would incorrectly show ellipses's in grid

We have fixed an issue where certain string values would show ellipses's (three dots) in grid, even though the column have enough space to show the entire value.

Bugfix in grid of proper freeze handling

When view or categorizer was changed in grid a possible freeze column was not properly handled - a wrong column could be chosen as frozen column.

This has been fixed so freeze state is cleared in grid view on view/group change and on categorizer change

Timeout checking for unique values increased to 15 minutes.

On large Perfion installations, users could experience timeouts when enabling unique values on a feature. The timeout checking for unique values has thus been increased to 15 minutes.

Dashboard - Count widget

The counting is now correct if the Dashboard use “Having” in the filter

'Execute Action' menu items are now sorted by name.

Previously, the menu items under 'Execute Action' in the main ribbon was not sorted correctly. This has now been fixed.

Grid - Selectables is now selecting the active value in the popup

Selectables in the Grid is now selecting the active value in the popup.

Bugfix of proper refresh of localizable inheritable feature

When updating a parent value for a localizable, inheritable feature where another language has child values breaking the inheritance the child values where cleared in the grid requiring a refresh to show proper db value. This has been fixed so other language values breaking inheritance are left untouched in the grid.

Data Web Service can now update read-only features

Perfion API allows update of read-only features - this can now be done using the Data Web Service.

Bugfix of properly show and handle formula features with wrong expressions

A formula expression present in data which could not resolve correct would result in exception in grid and difficult of correcting.

This has been corrected so validation of formula expressions are done both in grid and item editor showing bad feature data with red rectangle around as for other validation errors. The formula feature with wrong data can now be entered and the expression can be corrected without having to clear the feature value first.

Main Grid jumps

A bug sometimes the Main Grid jumps when editing values in the grid. This has been fixed.

Main Grid - Size of the Mulitiselect popup

A bug resized the Muliti Select popup in some cases. The size should now be correctly stored and reused for each feature

Allow drag-drop parent item on category when child item already has category

After user confirmation allow drag-drop parent item to category when children have existing category value.

Selectable in grid loose focus

In some cases a Selectable in grid loose focus in the popup.

Bugfix of cleaning up old values on single, localizable selectable restore of old values

Ensure proper restore of single localizable selectable values ensuring only current value is present in db

Perfion will not allow AD login if number of licensed users are at limit.

Previously, Perfion did not correctly validate available user licenses when new Perfion users needed to be created as part of the AD integration. This has now been fixed so that new users will not be able to login if there are no available licenses.

ItemTriggers - Execute action on error

Execute action on error is now working in actions executed via Item Triggers.

Actions - Filter and Order added to GET.FILELIST and FTP.FILELIST

The Filter and Order parameters is added to the Action commands GET.FILELIST and FTP.FILELIST.

Applications Server clean-up old logs

In some cases the Application Server did not clean up all logs from Item Triggers. The Clean-up routine optimized.

Scheduling was not handling changes related to Daylight Saving Time correctly

The Perfion Scheduler could make an incorrect task execution schedule when crossing the changes between Daylight Saving Time and Normal Time. This has now been fixed so that changes from Normal- to Daylight Saving Time and back is handled correctly.

Point-of-Interest could be overwritten

We have fixed an issue where the Point-of-Interest on images in the Windows Client could be reset to center image. The issue would happen if a user open the Point-of-Interest dialog and click OK without updating the position.

API - Include Swap Relation Direction in the result set

It is now possible to include Swap Relation Direction in an API result. Se the API documentation for more information about the syntax.

Report Server API enhanced with report parameters

The Report Server API used for generating Perfion reports has been enhanced with support for report parameters as defined by the super query of the reports.

Furthermore a new HTTP POST endpoint has been added for generating reports in same way as the Report Server API but with parameters as body of the POST in order to support larger number of report parameters.

2023-R1 (5.2.0)

Release note title

Release note

Table Designer style setting update not clearing Translation settings

When editing and saving Table Designer style settings without switching to the Translation settings tab the Translation settings were cleared.

This has been fixed so Translation settings are kept properly.

OData remotes could fail to get all data when using paging

We have fixed an issue where an OData remote could fail to read all data from the remote system, when using paging. The issue was caused by the way that the '@odata.nextLink' was interpreted. This has now been fixed.

Reports running action

Reports with action can now be executed via the API or the Application server. 

Proper auto adjustment of row height for large texts in Table Designer when row height used

Now large texts can be shown in Table Designer cells if no constraint on height - also when other rows have fixed row height; i.e. the cell height is auto-adjusted to show all text for rows having no constraint and not auto-adjusted for rows having fixed height when rows are in same table design.

Incorrect file extension when exporting to Word format via ReportServer

When exporting a report to Word format via the ReportServer API, the file would be returned with a '.word' extension. This has now been fixed so that the file is returned via the correct '.docx' extension.

Select Remove Variants support in JSON queries

Previously, you could only select specific remote variants via XML queries in the Perfion API. This has now been extended so you can also use JSON queries.

Multi Factor Authentication logging

Some more logging added to the Multi Factor Authentication Email sending for error handling.

Application server status icon change

The Application server status icon now reflects the last completed job,
meaning that old failed jobs will not color the icon orange if the last job has succeeded.

Action - Appearance order by name

The Action Appearance is ordered by name in the Execute Action menu

Queries selecting clustered remotes failed if user had no read permit for them

Queries selecting clustered remotes failed to work, if the user executing the query had no read-permits to read it. This affected the Perfion API and the Web Client. This has been fixed.

Furthermore Perfion has been optimized so that only remote features that the user has read-access to (according to the security group assigned to each remote) are read. 

Bugfix of validating formula in Formula Editor

When an invalid formula expression is inserted in the Formula Editor the Formula Editor could breakdown in an exception on both refresh formula in Formula Editor and when closing Formula Editor.

This has been fixed so validation of formula expression is done as part of refreshing formula and as part of closing Formula Editor.

Proper auto adjustment of row height for large texts in Table Designer

Now large texts can be shown in Table Designer cells if no constraint on height; i.e. the cell height is auto-adjusted to show all text.

Filter Designer gave error when selecting a default value for selectable feature

In previous versions of Perfion you got an error when selecting default value for a selectable feature in the Filter Designer. This has been fixed. 

Bugfix of proper translation of Azerbaijan language

The culture info for the Azerbaijan language has been updated in the database so proper language code is sent to the translation service. Though the translation service DeepL does not support translation of Azerbaijan language - only Google Translate does.

Proper translation for languages having special culture info

For languages having special/complex culureinfo (e.g. en-nz) wrong language code was sent to the translation service. This has been fixed so lookup of proper culture info language code is performed before sending to translation service.

Bugfix in Filter Designer of ensuring proper caption of filter members

The caption shown for features in filter members in Filter Designer was sometimes in different language than current system user language. This has been fixed.

Users with no delete right for a base feature were able to delete items of that type

The Perfion API allowed a user with no delete rights to some base feature to still delete items of that feature. The issue also affected the Web Client while the Windows Client worked. This issue is now fixed. 

NAV Add-In could fail to authenticate user when using PerfionID

We have fixed an issue where the NAV add-in could fail to authenticate correctly, when configured to use a Perfion username only. An error message would be shown, telling that the Index was out of Bounds, and the Add-in would not show the data as expected.

Unique Values in import

It is now possible to import duplicate values and set the “Keep the first occurrence of records with duplicate keys” in Unique values features.

Dashboard - Has Value shows also Has Not Value items

The Dashboard is only showing Items with values if a widget with “Has value” and Count is selected.

Proper translation of norwegian culture language nynorsk

An error occurred if norwegian culture language nynorsk was chosen and DeepL was chosen as translation service.

This has been fixed so translation is obtained - though the translation language used is bokmål as DeepL does not support nynorsk translations.

Search Filter - Booleans can now filter on any type

Booleans in Search Filter can now filter on True, False, Neutral and Any. The old check box/slider is replaced with radio buttons

Performance of database indexes

A few indexes have been changed for performance optimization:

IX_Specs_SpecType_Item and IX_SpecsIX_ItemId_SpecType is dropped and IX_SpecsIX_ItemId_SpecType_Language is added.

OData connections now correctly trim whitespace in URI

Previously an OData remote could fail to load data if the URI contained whitespace characters. This has now been fixed so that any whitespace is automatically trimmed before calling the endpoint.

Optimization to cleanup of outdated jobs and job loggings

Due to performance/time-out problems in cleanup of outdated jobs and job loggings an optimization has been implemented.

Support for bosnian language added

Support for bosnian language added. Requires db upgrade.

OData remotes now also support JSON media type with minimal metadata

Previously OData remotes required the OData service to deliver full metadata descriptions in the responses. Some OData services are not capable of delivering this, which would cause the remotes to fail to load the data. This has now been fixed so that, when using JSON OData services, only minimal metadata are required.

Item Trigger - New column in ActionImput and more info in the log

In the Item Trigger a new column ChangeType is added to the ActionInput table Coalesced and the Application Server mark actions as “Merged” if the actions is executed in the same action.

Feature definition import error fixed

The feature definition import had an error when trying to import a new feature with enabled unique values property. This issue was fixed.

Scheduler task name handling updated

The scheduler task name was limited in size, but the UI allowed to enter more characters than technically allowed. Therefore, part of the task name could be cut off when saving or editing the task. This issue was fixed by limiting the length of the task name to 100 characters in the UI.

Actions - Executed via the Applications server

Actions executed via the Applications Server or triggered via Item Triggers are from 2023R1 executed by the user who ordered/triggered the action 

License management window updated

The license management window in Perfion did not allow to exit Perfion after an unsuccessful attempt of loading of Perfion license. After this update, the user will now have a choice to continue loading another license file, or to exit Perfion.

Feature data import updated to validate key feature values

Feature data import uses simple feature validation rules to validate all incoming feature data which is configured to be validated, but the key feature values were excluded from this validation. Now validation will also be applied to the key feature.

Richtext editor - reintroduce of paste as plain text

During latest update of the Richtext editor the button 'Paste as plain text' was removed.

The functionality has been reintroduced - the current 'Paste' button can be toggled to paste with formatting (default) or paste as plain text (toggled using new 'Paste as text' toggle button).

All Import logs can be viewed by users havning import permissions

Previously users having import permissions could only view import logs for their own import sessions. This has been changed so a user having import log permissions can view all import logs - though they can only stop their  own import sessions.

Message-column in Task- and Job-Log has been extended

The available number of characters in the message-column for both Task- and Job Log Entries were sometimes too small to hold the message. They have both been extended from 200 to 400 characters.

In assistance the tables holding Task Log, Job Log and ActionsQueue Log have all been given a right click menu "Show in external editor...", which will open the clicked log entry in the default text editor. 

Media service multi-file ZIP download

Perfion media service was updated to support multi-file ZIP download. The new features:

  • Instead of 1 binary file/image ID now one can define multiple IDs separated with comma (,) or semicolon (;).

  • If more than 1 binary file/image ID is defined the service will automatically add all requested files/images to the ZIP archive for download. Alternatively one can also demand a single file/image to be downloaded as ZIP archive by specifying a new "action" parameter value "zip" in request URL, e.g. action=zip.

  • The updated media services accept POST type requests where one can define binary image/file IDs in the request body message instead of defining them in URL parameters. If IDs are defined in both places, then IDs will be combined.

  • A new parameter "UseBinaryIdAsFileName" was added which allows to control how the files/images will be named when served by the media service. Using this parameter together with parameter "FileName" one can now chose to use file/image original name, custom name or use file/image ID as a name. In case the service will return multiple files/images where some will have duplicate names, those duplicates will be automatically renamed by adding a suffix to the end of the file name.

Actions - SELECT.CSV and SELECT.FIXEDWIDTH file encoding

A new parameter @Encoding is added to the commands SELECT.CSV and SELECT.FIXEDWIDTH. It is now possible to define which encoding the commands should use.

ECommerce API: GetConfiguration-response extended

The abbreviations and help texts are from now on being added to the GetConfiguration-response. 

New options to exclude feature definition from Perfion API query results

A new option _ExcludeFeatureDefinitions_ has been implemented in the Perfion API, to allow for more lean API results. Setting this option will exclude the feature definition element in the API response. Default is, as previously, that the feature definitions are included in the response.

Perfion Query now supports querying all active languages

New wildcard designator '*' for languages is implemented for Perfion Query to query all active languages.

Actions - Query with curly brackets and parameters

If a Query use parameters and curly brackets, the curly brackets need to be escape. Use double curly brackets like: <Clause id='*{{ID*' operator='=' value='*{=$Color}*' /> to escape the curly brackets.

REST API - New endpoints for Execute Action and Get Version

Two new endpoints Execute Action and Get Version added to the REST API.

User Admin - User roles

New Perfion Users is created without any roles, the administrator must add all the roles the user needs directly or by groups.  Former a new Perfion User was created with 6 default roles. 

Simple Active Directory integration

Before it was only possible to handle membership in Active Directory(AD).
Now it is possible to use a simpler integration by clicking the checkbox in settings. The simpler integration only creates one group in the AD and membership is now handled in Perfion like normal users.

Formulas works in grid, API and reports without used features being present

Formulas using features now can be used without the requirement previously of features used to be present; i.e. the formula features can be used without including features in query.

Possible to set prefix for groups created in AD

It is now possible to set a custom prefix for the groups being created in Active Directory by Perfion.

Perfion API supports remote feature columns using json

When using the json syntax in a Perfion API specifying columns for a remote feature was not supported. This can be used now. The returned column values are returned in a new json property called 'remoteValues'.

Furthermore wildcard '*' can be used as column to specify all columns should be returned.

Also a new query option 'expandClusterQueries' can be used to auto expand all clustered features in query to include all columns.

Remotes and related values can now be used in formulas

The handling of formulas have been extended with support for remotes and related values in formula expressions.

Watermarked image handling updated in media services (breaking change)

The watermarked image service will only serve watermarked images. Before, it was serving watermarked images conditionally based on watermark range parameter.
Other image services (image and uncached image) will return watermarked images only if image resolution matches predefined watermark range parameter. Before the update watermarked images were not served when requesting the original image. Image caching for watermarked images was also improved.

Memory leak in Perfion Application Server

The Perfion Application Server could seem to leak memory when using script tasks within Actions. This has now been fixed.

Perfion API Service no longer require .NET 3.5

The dependency on .NET Framework 3.5 has been removed. It is no longer necessary to install the .NET 3.5 runtime on the servers running the Perfion API services. 

Actions - new FTP commands and option for binary stream in soem SELECT and WRITE commands

Four new commands for FTP (FTP.DOWNLOAD, FTP.UPLOAD, FTP.DELETE and FTP.FILELIST ) is added to Actions. The FTP commands support: File transfer protocol (FTP), File transfer protocol secure (FTPS) and Secure shell file transfer protocol (SFTP).  The download command return a PBinaryStream which now can be used directly with e.g. SELECT.EXCEL. The upload takes an PBinaryStream from e.g. WRITE.EXCEL and upload this to the FTP server. WRITE.EXCEL can now generate PBinaryStream directly from the command. See the documentation for more information.

Feature Definition - Remote query field is disabled

In some cases, the Remote field was not correctly enabled. This was fixed.

Actions - Write Excel, Csv and fixed width files

A new parameter @WriteFileIfInputIsEmpty is added to the commands Write.Excel, Write.Csv and Write.FixedWidth. If the input to the commands is empty, the parameter can control if you would like to write an empty file or not.

Feature Definition - Key feature

The Remote Features in the drop down list of Key Features is removed. 

Number of Channels in license is now checked for

Maximum number of channels in license is now checked whenever inserting a new channel. If number of channels is exceeded, Perfion will refuse to insert a new channel. 

Use of Perfion API now requires correct license

The use of the Perfion API, including the eCommerce API, now require that the license include these options as enabled.

Perfion Office Add-in now supports authentication to Perfion API

Previously, the Perfion Office Add-in did not support proper authentication with the Perfion API. This meant that the Add-in would fail to connect, if the API was configured to require authentication. This has now been fixed so that it's possible to configure the connection including a username and password

DPI parameter on ImageServer will no longer resize images

Previously, the DPI parameter for the Perfion Image Server endpoint would resize the original image according to the requested DPI setting. Because of rounding issues related to conversion between pixels per centimeter and pixels per inch, the resulting DPI setting on images could be show unexpected results. We have changed the meaning of the DPI setting, from previously resizing the image to only being a metadata setting. It is now possible to request an image in a specific size and with a specific DPI setting.

Error when using View Item Relations with more than three features selected for the Compact View.

If more than three features were selected for the Compact View, the Perfion Windows client would show an error when using View Item Relations. This has been fixed

ParseNumber could return incorrect results when string contained multiple numbers

The ParseNumber scripting function in Actions could return incorrect results when string contained multiple numbers. An example would be 60 g/m2, where the expected result would be 60. This has been fixed.

Whitespace in Remote Connection templates

Some of the Remote Connection templates contained incorrect white space characters between the property name and the equal sign. These has been removed.

Remote Connections are now sorted by name

Previously Remote Connections did not have a particular order when shown in the Windows client. The connections are now sorted by name.

Application Server running on 64bit operation systems

Previously, the Perfion Application Server was configured to prefer to run as a 32bit process. This has been updated so that it now runs as a 64bit process if possible.

Empty error message if @CONTEXT parameter is invalid when using the WRITE.EXCEL command

If the Mode or Direction elements of the @CONTEXT parameter was invalid, Perfion would show an empty error message. This has been fixed so that a more meaningful message is shown.

System Task for update license will now retry failed requests

Previously the 'Update License' system task, which by default checks for a new license every Sunday night, would only perform three consecutive retry attempts if the request failed. The task will now perform additional retries.

Import of Actions could be slow, when overwriting existing Actions

When importing Actions in Perfion, in certain situations it could slow to remove existing Actions that should be re-imported. This has been optimized.

2024-R1-SR2 (5.4.2)

Release note title

Release note

ECommerce API: Attributes can now be output from Multi-value features

It is now allowed to decorate multi value output with values coming from multi value features. That is useful when you want to output Images or Attachments with for example titles and captions. See more in documentation.

ECommerce API: Fields holding multiple values can now be output individually

In previous versions of Perfion, features holding multiple values where, in the ECommerce API when mapped to a Field, output using sub-elements named Value:

<Field name="MultiValueLocalizable" culture="en-US"> <Value>Value A</Value> <Value>Value B</Value> <Value>Value C</Value> </Field>

Except when the multi value only held one value, where it would be output as an attribute named value:

<Field name="MultiValueLocalizable" culture="en-US" value="My only value" />

Now you can use the method-parameter OutputMultiValueFieldsIndividually to output each value as a separate field. The parameter is supplied to fx. GetProducts like this:

<Execute method="GetProducts"> <Parameter id="Channel" value="Channel A" /> <Parameter id="OutputMultiValueFieldsIndividually" value='true' /> </Execute>

And the result is now output with a separate Field-element per value, regardless of how many values there are (except if there are no values, in which case nothing is output):

<Field name="MultiValueLocalizable" culture="en-US">Value A</Field> <Field name="MultiValueLocalizable" culture="en-US">Value B</Field> <Field name="MultiValueLocalizable" culture="en-US">Value C</Field>

Spanish UI language is added to the windows client

Spanish UI language is added to the windows client

Application Server now utilizes fewer concurrent connections

We have optimized the way connections are used in the Application Server. In heavy load environments it could reach the default maximum allowed (which is 100 connections) causing jobs to fail with timeouts.

Perfion Application Server now supports configurable logging

The Perfion Application Server now supports configuring logging via the application configuration file, to support logging to e.g. console or a file on the server running the application.

Restore previous values from Log

It is now possible to restore previous values from the Log on Multi-selectable features without removing all other values in the multi feature.

Modify and Delete buttons disabled for languages of users from AD with advanced setup

It will no longer be possible to Modify or Delete languages from users created from AD with an advanced setup, using context (right click) menu

Actions - Moving groups and commands

It is now possible to move groups and commands to other action when the groups and commands is in a group.

Actions - SystemVar in FROM and TO column

The SystemVar was missing support for the FROM and TO columns.

Fixed problem with selecting base feature in filtered values when controlling feature is also selected

It will be now possible to change base feature when the controlling feature is also selected

Removed warning before adding value for a field of a parent

There will no more warning before adding a value to a field that belongs to a parent

Dashboard - Has/Has not values

Selecting a “Has value” in the dashboard chosen in some cases “Has no value”

Fixed issue with channel deletion

Deletion of a channel from the web client will no longer end with an error

Removed image/file url length limitation

Removed image/file url length limitation

Upcoming runs of the schedule trigger will no longer be empty in some cases

Schedules with a date set far back in time will no longer display no upcoming runs.

Query string moved from url to request body for saving search

Searches with long queries will no longer fail to save

Execute Actions in context of an item

The Execute Action dialog picks up one item id per cell. This is changed so it only picks one per row.

2024-R1-SR1 (5.4.1)

Release note title

Release note

Import of .psd files could fail when using URLs as image source

When running an import including binaries, Perfion could fail to import Adobe Photoshop files (.psd) when using URLs as image source. This has been fixed.

Issue with Selectable Localizable value updates

Having a selectable, localizable and multi value feature, could sometimes end up, saving data incorrectly.
This has been resolved.

Perfion Queries - Must have a <Query> element i root

The Perfion Queries Must have a <Query> element i root and e.g. From and Where elements at the first level after root.

Got an error when trying to edit localizable base value in ItemEditor

If you edited the value for another language than the primary language, the ItemEditor would either not store the value on save or gave a null-value exception when entering the editor. This has been fixed.

Supplier Portal shows any Expose Read Only-features when no Supplier Items are linked to a Standard Item

In previous versions of the Supplier Portal, it shows any Expose Read Only-features when no Supplier Items are linked to a Standard Item. That made sense in previous version of the Supplier Portal where two views only were used to get q query result. But it should have been dropped when it was made possible to query “any” feature/view in the Supplier Portal. This have been fixed, so that the “Expose Read Only”-features are no longer added when there are no linked items found.

Export Report Data: Image quality picked was not taken into account

In the web client, when exporting report data, the user can choose from 3 image qualities (Low, Medium and High). In previous Perfion-versions, this choice was ignored by the Application Server. This has been fixed, so the picked quality is indeed taken into account.

E Commerce API - Error messages

Added error message when the eCommerce Api is not licensed.

Possible to set localized selectable number value when decimal separator is ','

Previously it was not possible to set a localized selectable number value when decimal separator for windows user was ',' and when the value was empty. This has been fixed.

Server Error processing HEAD requests for images

The Perfion Image Server could return a http status 500 (Internal Server Error) when handling HEAD requests for images. This has been fixed.

Selecting 'Any Language' is only allowed on the Item Trigger definition

Previously, users incorrectly had the option to choose 'Any Language' when configuring Conditions and Activities for Item Triggers. This has been fixed, so that users no longer are presented with the option to select 'Any Language'.

Supplier Portal search for readonly selectable value functions

Previously it was not possible to search for readonly selectable values in the Supplier Portal. This has been fixed.

Importing images using Urls did not read filename from headers

When importing images using a Uri in the Import-file, images were not named according to Disposition Header Values. This has been fixed.

API tester tool - Json formatter

The API tester tool will now format json results

Calculation and application of Related Sort Order has been optimized

Previously, calculation and application of related sort order was slow on large categories of items. This has been optimized and will not perform better.

'Widget Management' could show an error when closing the dialog.

The 'Widget Management' dialog could show an error when closing the dialog, if one or more widgets had multiple titles per language. This has been fixed.

Perfion could fail to retrieve watermarked images during high load

Perfion could fail sometimes fail to retrieve images during high load. A fix has been implemented to allow for better concurrency of requests for images that are already cached.

Feature validation on localized features

The Feature validation on localized features was only working on the main language. This is fixed so all localized values are validated.

Proper usage of CSS settings for sub reports

When CSS settings was changed for a sub report the changes was not reflected in the rendering of rich editor feature values. This has been fixed.

In Windows Client Filtered Values now functions using scene selector as pop-up selector in grid

If a Filtered Values filtered feature was setup as a scene selector (defined as a section) and the feature was edited in grid for an item the scene selector did not properly use the context of the item being updated. This has been fixed.

Filtered Values import of configurations now functions when importing using ID

Filtered Values import of configurations did not function using ID import format. This has been fixed.

Outputting related products using two (or more) different features would only output same relation once per product

In the ECommerce API, setting up two RelatedProduct-mappings from two different identity inheriting features and putting the same product “A” in both features, then “A” would only be output for the first mapping. Same issue was there for categories, but it is quite unusual to have more Related Categories. These two issues have been fixed.

No error on selecting all data in grid and copy to clipboard

Previously when selecting all data with CTRL-A in grid and afterwards copying to clipboard with CTRL-C an error occurred. This has been fixed.

Filtered Values - update/check whole chain of configurations on changes

When a chain of Filtered Values configurations exists the whole chain of configurations is now checked/updated upon changes.
E.g. if the Filtered Values chain of configuration is Material controlling color and Color controlling Country then changing Material might clear the Color value and clearing the Color might clear the Country value.

Sorting of feature within Feature configuration

Perfion supports sorting features within Feature configuration, but when trying to sort the changes was not correctly stored and thus users would not see the effect. This has been fixed.

Export and import logs show duration for proper step

Previously the export and import logs shown in the Windows client where showing duration for the previous step. This has been fixed so the logs show duration for the correct step.

Using keybord shortcut CTRL+ENTER in a multiline editor for search in grid does not insert new line

Previously when entering the keyboard shortcut CTRL+ENTER in a multiline editor in search in grid a new line was added. This has been fixed so the command does not insert a new line but only performs the search.

Proper headers in grid with correct language specific unit

Headers in grid was not showing correct unit for other languages than the current users system language. Other languages showed the system language unit even though translations for other languages existed. This has been fixed.

When copying a report the custom data xml is copied properly including xml schema

When copying a report the custom data was not properly copied as the xml schema information was missing. This has been fixed so schema information is stored as done for inserting new report and updating existing report.

Possible to update selectable date value in grid

An error occurred when updating a selectable date value in grid. This has been fixed.

Ordering of multi-value selectables was not correctly saved

If a user tried to re-order a multi-value selectable feature, the changes would not be identified and saved correctly. This has been fixed.

Refresh of base feature in Feature Data before showing pop-up menu

Previously the pop-up menu in Feature Data was not showing based on newest base feature data. This has been fixed.

Grid - Column width

The minimum column width fore booleans are increased.

In grid blinking remote filtering warning changed to non-blinking

Previously when remote filtering was used a warning red blinking text 'remote filtering enabled' was present. This has been changed to non-blinking.

Column Chooser in Windows Client shows all features if show all configured features chosen and no configuration exists

When choosing to show only configured features in Column Chooser not all features where shown if no configuration exists; e.g. related values where not shown. This has been fixed, so all is shown.

In reports the visibility of a table designer component can now be toggled

Previously the visible checkmark for a table designer component in Reports did not function. This has been fixed so the visibility now can be toggled as for other report components.

In Windows Client grid paging control - only possible to write numbers

Previously it was possible to write non-numbers in input field for number of records to fetch in one page for a grid. This has been fixed so only numbers can be entered.

2024-R1 (5.4.0)

Release note title

Release note

Action - Add Contains to ScriptVariable

It is now possible to use Contains on ScriptVariable like var.Contains( “@TestVar“ ).

Action log messages was truncated to 200 characters

Previously any Action log messages would be truncated to 200 characters, potentially removing important context information from the messages. This has now been extended to max. 4000 characters instead.

Actions - Execute.Script

The Execute.Script can use code parts from Perfion code base. The NameSpace available in actions is Perfion.Actions. Other NameSpaces are not available anymore to ensure backward compatibility.

API Having clause includes Like and Match operator

It is now possible to use Like and Match in having clauses and in filters with Remotes/Related Values.

Better support of SVG files

Perfion will convert any image format to a raster format to support generating different sizes previews and renditions via the ImageService. Previously, Perfion did not properly handle SVG files, resulting in the generated raster images being of too low quality. This has now been fixed.

Branding feature has been removed from Perfion

Branding feature has been removed from Perfion. In case your installation has "Branded" items, these will be reckoned as normal items in this version. 

Column choose throws error on certain characters

In previous versions of Perfion the column chooser in the win-client would throw an error when typing certain special characters like ' (quote) and \ (backslash). This has been fixed. 

Concept for Environment Definitions added to settings

The Environment Definition make it possible to create and manage environments which is a prerequisite for e.g. storing individual connection strings for each environment.

ConstructedFileName can now be output without fetching files

The ConstructedFileName is output as part Image- and Attachment-elements when the OutputKind is set to Image(File, '<some filename template>') or Attachment(File, '<some filename template>'). This also means, that a file named "<ConstructedFileName>" will be stored in a folder controlled by the Setting "OutputFolder". From this version of Perfion, you can get a ConstructedFileName without fetching and storing any file simply by Setting "OutputFolder" to blank.

Copy Action in Perfion Windows Client

The Perfion Windows Client now supports copying an entire Action, including its definition. A new menu item 'Copy Action' is available in the right-click menu in the Actions section.

Create Copy of item(s) in grid also copies unique selectable values

A fix has been made to copying items ensuring unique selectable values for an item are also copied.

Database transaction isolation level changes

To minimize the amount of database locks used when reading and writing data to the database, Perfion now uses the Read Committed Snapshot feature of SQL Server. This is an optimistic locking mechanism, where SQL Server will take a copy of the data targeted for update, allowing other users to read the existing data without further locking. Note that the copy will, per default, be placed in the tempdb, so this change may result in more load and disk usage in the tempdb.

DevExpress components updated to version 2023.1.6

Perfion uses a third-party component library, DevExpress, for generating reports (amongst other things). This library has been updated to version 2023.1.6.

Do not show hanging dropdown box in grid

When a localized selectable is updated in grid it was possible to get in a situation where the dropdown box was hanging in the grid. This has been fixed.

Dynamics NAV Add-in - link features are clickable

In the Dynamics NAV Add-in it is now possible to click at a link feature and open a browser.

eCommerce API configuration could contain incorrectly named 'Nice' view

When querying the eCommerce API configuration including the _Nice _view, the configuration would incorrectly contain a quotation mark after the name (_Nice"_). This has been fixed.

Error parsing 'Ignore' column when importing Actions.

When importing Actions into Perfion, the import could fail to parse the value of the 'Ignore' column. This has been fixed.

Error when using formulas including remotes

Perfion could in some cases show an error when trying to resolve formulas that includes remotes. It would typically happen when the remote did not return data for the rows in question. This has now been fixed.

Export data from grid in same order as grid data order

Previously when exporting data from grid the exported data was in another order than the order of the data in grid. This has been fixed so data is exported in same order as data appears in grid.

Feature Configuration -  Default values and copy is allowed together

At Feature Configuration it is now possible to set Default values and copy at the same feature.

Filtered Values supports multiple levels of configurations

It is now possible to make chains of Filtered Values configurations where controlling feature in one configuration can be filtered feature in another configuration.

Global Search allows Match operator

A bug is fixed so Global Search can use Match operator

Incorrect XML export of Actions

When exporting Actions in DataTable/XML format, the ignore column would be incorrectly exported as a string. This would lead to issues when trying to re-import the Actions. This has now been fixed. Ignore is now exported as a boolean.

ISINVALID filter operator enabled in grid filter

The ISINVALID filter operator used in a Perfion query to get all items having invalid values of a feature was only enabled in the Perfion API. It is now enabled in grid filtering.

Item Trigger Activity - system would incorrectly calculate days from now to be added

When using the Update value in 'Date feature' to '+- days' from now” trigger activity, the system would perform an incorrect calculation between minutes and days when editing the value. This has now been fixed.

Item Triggers - Update Formula features

It is now possible to update Formula Features via Item Triggers.

Mapping in SELECT.PERFION now supports '.childCount'

Previously mapping in the SELECT.PERFION Action command did not support mapping of .childCount. This has now been fixed.

New API option

A new API option “IncludeVisibleChildCount” is added. This includes a ‘VisibleChildCount’ attribute value for each Item in the result-set, with the number of child items that have the Item as their parent and included in the result set.

New scheduled system task for clean-up of binaries

Previously, administrators had to click the "Cleanup Binaries" button in the Settings dialog, to force Perfion to remove orphaned and other binaries marked for deletion. We have now introduced a new system task, enabling administrators to run binary clean-up on a schedule.

New type "Conatant" added to Remote Connections 

A new type “Constant” is added to the Remote Connections

Open item-menu not available on multi-value selectables in Item Editor when value is inherited

When any feature value is inherited from its parent, it should be read only on the child. But users should still, on selectables, be able to "Open item" in the context menu of the control. In previous versions of Perfion that was not possible on multi-value selectables, but it has been fixed in this version.

Perfion API IN statement with mere then about 10.000 elements

It is now possible to have many elements in a API IN statement.

Perfion API: In-operator in clause now return empty result if not supplied at least one value

Using the IN-operator in Perfion now returns an empty result, if it is not supplied with at least one value. In previous versions of Perfion the clause throws error message.

Perfion Client API now uses similar database connection string configuration as the Perfion API

Previous, the Perfion Client API used a database connection string configuration, based on appSettings. Instead, it now use a connectionString element, similar to the Perfion API configuration.

Perfion XML API now supports inserting- and updating features to whitespace

Previously, when using the Perfion XML API for inserts and updates, users was not able to insert- or update feature values only containing whitespace characters (one or more spaces for instance). This has now been fixed.  

Possible to copy and paste images in Supplier Portal

When copying and pasting images in the Supplier Portal an error occurred. This has been fixed.

Possible to show localized selectable values in grid and Item Editor

A new checkbox has been added to the grid language menu for enabling show of localized selectable values in same way as for explicit localized values.

A new checkbox has also been added to the Item Editor for enabling show of localized selectable values for other languages than current user language.

PTable-performance increased for Insert/Updates/Deletes

Optimized updating of data through PTable. The most significant performance increase will be seen when updating or inserting multiple values in the same Query.

The performance of the Supplier Import will be increased similarly, since it relies on the PTable to update database.

Report designer could show an “Invalid cast“ error in Formatting Rule Sheet Editor.

The Perfion Report designer could show an “Invalid cast from ‘System.Decimal’ to 'System.Drawing.Font'“ error message when working with the Formatting Rule Sheet Editor. This was caused by an error in the DevExpress component library Perfion uses. We have updated the DevExpress component library, fixing this issue.

Restart Perfion required when updating current users languages

When a user changed own languages in 'Users and Groups' admin the users language list was not updated so e.g. Item Editor did not reflect the updated language list.

The update of the users own languages list requires a restart of Perfion, so a mandatory restart of Perfion is now enforced.

SELECT.ODATA could fail when reading more pages, due to invalid authentication

When using the SELECT.ODATA Action command, the command could fail to retrieve dataset that spanned multiple pages. The command would get a new authentication token for each subsequent call to the OData source, which could cause the server to not being able to correlate the requests and thus fail the request.

SELECT.PERFION did not correctly support mapping of metadata on selectable formula features

When using SELECT.PERFION, attempting to map feature metadata (e.g. ID or ModifiedDate) on selectable formula features, users would get an error. This has been fixed.

Shopware license now visible within License Management

Previously, the License Management overview would not show whether the license contained the Shopware Connector license option. This has been fixed.

Supplier portal configuration

Categories in the Supplier Portal are displayed in a flat list.

Supplier Portal search of read-only features

The Supplier Portal can now search on exposed read-only features when the search filter contains exposed read-only features.

Support for EntraID guest accounts for logging into Perfion

Previously, Perfion incorrectly retrieved information about guest accounts in EntraID (previously Azure AD) leading to such users being unable to access Perfion through single-sign-on. This has now been fixed.

Swap Relation Data can now be fetched for all features in configuration

Before this version of Perfion, the only way to fetch data for a Swap-relation-feature was to do the following:

Code Block
<feature id='MySrd' type='Relation' />

This would fetch data for the Swap Relation Table (SRD in the following).

You could include a view, and that would be used for fetching that specific relation:

Code Block
<Feature id='MySrd' type='Relation' view='Family' />

Without a view only the base value for the MySrd-feature is fetched.

Now two select-options have been added:

Option 1: IncludeConfiguredSwapRelations

Code Block
<Query>
  <Select languages='EN' options='IncludeConfiguredSwapRelations' >
    <Feature id='*' view='Item'/>
  </Select>
  <From id='ProductDefaultValues' />
  ...
</Query>

This will make Perfion fetch SRD for all SRD-features in the Item-view for the configuration of the Product-feature. Note that this can be combined with the explicit select of individual SRD-features. Using the option to fetch SRD will always make Perfion use the Config-view when fetching SRD-features.

Option 2: OnlyShowSwapRelationMarkers

Adding this option will make the Perfion API fetch the same SRDs as it otherwise would (explicitly selected or selected from configuration using the option), but instead of outputting the data, it will only output a marker that indicates that the feature holds data for the specific item.

Example: Instead of outputting the data as shown here:

Code Block
<Product ...>
  <MySrd type="table">
    <MySrd id="123" parentId="0" ...>
      <Value seq="0">SRD1</Value>
    </MySrd>
    <MySrd id="234" parentId="0" ...>
      <Value seq="0">SRD2</Value>
    </MySrd>
  </MySrd>
  ...
</Product>

this will be output instead:

Code Block
<Product ...>
  <MySrd type="table" data="1" />
  ...
</Product>

If some item (here Product) does not hold any data on the SRD-feature, nothing will be output for it for that product. This is just as is the case for all other features in Perfion.

The office add-in is deprecated

The office add-in is deprecated from 2024-R1

Timeout is now configurable on 'Delete old log entries' system task

Previously it was not possible to configure the database timeout on the 'Delete old log entries' system task. This is now possible. For existing tasks, the system will use a default value of 5 minutes.

Using Filter dialog to add new filter now can handle ISINVALID operator together with id selection clause

When defining a new filter using the Filter dialog the filter handling would breakdown if id clause was specified using '_FeatureValidation' or '_FilteredValues' - e.g. using the WHERE clause '<Clause id='*._FeatureValidation' operator='ISINVALID'/>'.

This has been fixed.

Webkit - Report endpoint

The endpoint in Webkit is changed from /Perfion.Report?id={itemId}&reportid={reportId} to /Perfion/Report.ashx?id={itemId}&reportid={reportId}

Wexo Shopware connector has been removed from Perfion license

Previously the Perfion license check included licensing of the Wexo Shopware connector. This meant that the "checkmark" had to be set within the Perfion license for this check to validate correctly. This requirement has been removed. The Wexo Shopware connector may now be licensed fully outside of Perfion.

When copying a report template the rich editor styles and table designer styles are also copied

When copying a report template the rich editor styles and table designer styles where not copied to the new report template. This has been fixed.

When defining a new supplier item the supplier identifier is always set

Previously the supplier handling did not ensure the supplier identifier was always set. This is enforced always now.

When moving item to parent ensure Filtered Values are properly handled

A special corner case existed of item having a value for  a controlled Filtered Values feature was not allowed to be moved to parent having both controlled and controlling feature values; i.e. the item value was not be used, both values are to be inherited from parent. This has been fixed.

When using Simple AD integration, users were not required to be member of the Perfion AD group

When using Simple AD integration, users were not required to be member of the Perfion AD group that is meant to be used for restricting which users could logon to Perfion. This has been fixed. Users now needs to be member of the Perfion AD group to be able to successfully logon.

Windows Client can now fully delete an Action

Previously, if a user deleted an Action in the Windows Client, the action definition (the items on the right side) was not correctly deleted. Instead, the items would be moved into the untagged category and had to be cleaned up separately.  This has now been fixed. Deleting an Action will now correctly delete the entire definition.