Versions Compared

Key

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

Version:

2023

2024-

R2 SR3

R1 (5.

3

4.

11

0)

Release date: 29 30 April 2024

Highlights

  • Filtered Values: Filter available selectable values in any feature based on value in “controlling” feature and highlight violations in Language variants on selectables: Validate selectable translations in grid and item editor

  • Filtered Values Setup: Create, Edit, Delete, Export and Import configurations for Filtered Values

  • Active Languages: Administrators can now manage active languages

  • New Action commands:

    • SELECT.API: Supports calls to REST and SOAP protocols

    • READ.FILE: Read any file type into a file stream

    • SELECT.XLIFF & IMPORT.XLIFF: Export and import using XLIFF format

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

  • Action management improvements

  • Environment Definition: Manage multiple environments

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-R2-SR3 R1 (5.34.110).zip
View file
namePerfion 20232024-R2-SR3 R1 (5.34.110).msi
View file
namePerfion 20232024-R2-SR3 R1 (5.34.110).exe

Release Notes

2023-R2 SR3 (5.3.11)
2023-R2 SR2 (5.3.4)

Release note title

Release note

Improved performance in Perfion API when selecting items based on the id of some selectable feature value

Performance of the Perfion API has been improved in 2 areas:

  1. When doing queries using clauses with non-inheritable features

  2. When doing clauses that matches a selectable-feature value using its Item ID (or Item IDs). It could be a statement like this:

    Code Block
    <Clause id="Color.id" operator="=" value="1234" /> <!-- 1234 is item id of the Color-item "Black" --

Other clauses are not affected.

2023-R2 SR2 (5.3.3)

Release note title

Release note

User Administration - Indonesian(IND) language counts as extra language

A bug where the Indonesian(IND) language counts as extra language in the user administration is fixed

Load time of large configurations in WebClient has been reduced significantly

Load time of large configurations in WebClient has been reduced significantly.

Sorting multivalue features did not save correctly

When attempting to sort a multi-value feature via the Windows Client grid, the sort order would not be saved correctly. This happened when sorting was the only change. This has now been fixed.

Opening view formula in grid shows calculated value

Previously the view formula editor did not auto calculate the formula value on opening the editor.
This is done now.

Windows client selector proper row count when filtered values filtered

The row count in the Windows client selectors was not correct when filtered values filtering is active.
This has been fixed.

Filters on Search- and Table-features erroneously always matched no items

Right-clicking on a value of a Table- or Search-feature, making a filter always created a filter criteria that did not find anything. This was caused by an error in the Perfion API not properly constructing the SQL for such criteria. This has been fixed.

Filtered Values configuration - edit configuration does not fail in closing ribbon display options

An error occurred if entering ribbon display options when editing an existing Filtered Values configuration. The error occurred if trying to abandon the ribbon display options mode.
This has been fixed.

Dashboard widget - Fit text size to content

The text size in a count widget will decrease to fit the size of the widget content.

Issue with special characters in SMTP remote connections

If in an SMTP (mail server) remote connection, the password contained an equals character '=', Perfion could parse the connection string incorrectly, causing the connection to not work properly. This has now been fixed.

2023-R2 SR1 (5.3.2)

Release note title

Release note

Export from grid could sometimes fail with an 'Object reference not set to an instance of an object'

Export from grid could sometimes fail with an 'Object reference not set to an instance of an object' when either selecting or deselecting languages to export. This has been fixed.

Accepting an item without Supplier Key-feature set, will now give proper error message.

Accepting an item without Supplier Key-feature set. will now give proper error message. Before you got a null value exception.

Views from Supplier Portal are now available in Search Selector above grids.

Views from Supplier Portal are now available in Search Selector above grids. There are 4 such views: Expose, ExposeReadOnly, Mandatory and AutoApprove.

Perfion API will stop query execution on client disconnects.

Previously the Perfion API would continue query execution of selects, even if the client disconnected. Now, the Perfion API will cancel query execution if the client disconnects and thus release resources to process other requests.

Significantly optimized speed for "Global Search" in web-client

In most cases Global Search (available in Web Client) has had its performance significantly optimized. The optimization  works best in installation searching in many features on larger amounts of data. 

In Table Designer ensure units, captions etc. are present when expressions are used

An error was present in the Table Designer where feature variants like units, captions etc. was not shown when expressions for non-localizable features was using these variants - e.g.: using expression @FormatMultiValues({Value}({Unit})) for a multi value non-localizable feature would not show the unit.

This error has been fixed.

Image and File URLs returned from the eCommerce API is not URL encoded

The eCommerce API could previously return invalid URLs when using the new Image/File endpoints. The issue could be seen if the file name in Perfion contained spaces or other special characters. This has now been fixed by correctly encoding URLs.

Grid compare stage

A bug when using staging and compare are fixed

Removing active languages error

Removing a active language did not remove languages from users. This bug are now fixed.

Intermittent error 'API Update Failed'

When doing updates in Perfion users could see an intermittent error 'API Update Failed'. This error was caused by multiple users, a Trigger, or an Action, trying to update the same item at the same time. This issue has been resolved.

Possible to update unique value feature in Web client

Updating a unique value feature which is part of a configuration failed in the Web client when validating config choices as 'Exclude from copy' was not present as required for unique value features. The error has been fixed by adding config choice 'Exclude from copy' when adding a unique value feature to a configuration.

Can create new products-setting on Suppliers now respected by API

In previous versions of Perfion a Supplier was allowed to create new items in the Supplier Portal, despite that he was not given the right "Can create new products". This has been resolved. 

Perfion API could refuse to delete SupplierItem

The Perfion API could refuse to delete Supplier Items. It happened since the API mistakenly tested whether the Ids were part of any configuration (as Item Dependent items). Supplier Items can never be used in such a way, so the check has been fixed. 

Web report error when using language parameter with multiple values

Web reports failed when using language parameter containing more than one language.

This has been fixed.

'Sync with AD' may mark users as inactive in Perfion

User may incorrectly be marked as inactive when Perfion synchronizes users with Microsoft Entra ID (Azure AD). This has been fixed.

Unique-constraint on selectable feature made it impossible to copy/paste values

In previous versions of Perfion you could not copy/paste a feature value from a selectable feature being marked as unique to the same feature on another item. Instead you got a "unique constraint"-error message. This has been resolved.

Issues in Number default values in Feature Configuration

When changing a number feature default value in a Feature Configuration, the number was incorrectly saved if it included a decimal point.

This has been resolved

Web client import users can see all logs

When a user has the right to import data and view import logs the user can now see all logs for also other users.

When opening a "Selectable item" inheriting its configuration Item Editor would not show all values

When opening a "Selectable item" inheriting its configuration from another feature, i.e. opening a "Related product" inheriting its values from "Product", the Item Editor would not fetch all values (specs) from the Item. This has been fixed. 

Importing SupplierItems could in some cases cause importer to fail

Importer could in rare cases throw a null-value exception during import of selectable, localizable value singles. This has been fixed.

ECommerce API now supports getting and updating entities using their Perfion Id

All of the following methods GetProducts, GetCategories, GetSites, UpdateProducts, UpdateCategories and UpdateSites now supports filtering entities by their Perfion Id using the "PerfionIds"-parameter. See documentation for more information.

Dashboard Widget management

Validation added to the Dashboard Widget management.

ReportServer may not return correct filename of generated reports

When using the ReportServer (report.ashx), it would not return the filename of the generated report unless the request included 'action=save'. This has now been fixed.

Perfion API: In-operator in clause now throws error if not supplied at least one value

Using the IN-operator in Perfion now throws an understandable error message, if it is not supplied with at least one value. In previous versions of Perfion the clause has either been ignored or you got an error message back from the SQL-server that was quite hard to understand.

Monthly scheduling did not work

If you scheduled a Task to run using "Monthly"-scheduling it did not run at all unless scheduled in UTC-time. This has been fixed.

Incorrect handling of filenames containing periods (.)

If a binary asset (an image or file) contained one or more periods (.) in the filename, the filename would be incorrect when downloading binaries from grid via the Perfion web client. This has now been fixed.

Proper Query Analyser Grid count when using maxCount in Perfion SELECT

Paging is disabled in the Query Analyser Grid and when maxCount was used in the SELECT clause the grid count was not correct. This has been fixed.

Import/export of configurations extended with support for default values

On import/export configuration also import/export possible default values

In Windows grid do proper right click after move item to a parent

In the Windows client an error occurred if right clicking an item after move to a parent. This has been fixed.

Deleting all roles from user threw error

When you in the Windows-client deleted all roles on a user you would, in previous versions of Perfion, get an error. This has been fixed.

Logging in using a Group Id gave strange error message

When you in previous versions of Perfion tried to log in using a Group Id, say "Admins", you would get a strange error message. This has been fixed, so you now simply get a "User was not found" as you would if the id was unknown.

Extra view added to SupplierPortal-views

A view named “ExposeReadOnly” has been added to the Supplier Portal-views. Features in this view are treated special by the Supplier Portal. If a feature is in “ExposeReadOnly” its value in Standard Items will be shown to the Supplier giving some information of the product the Supplier is about to fill out. As the name implies, the Supplier cannot change the value of a feature in this view. A feature cannot be both in “Expose”- and “ExposeReadOnly”-view.

In XLIFF import choose among active Perfion languages if more than one Perfion language found

When doing XLIFF import some target languages gives hit on more than one Perfion language due to same culture name used. When this happens choose target Perfion language among active Perfion languages.

If max number of allowed suppliers is exceeded Perfion will enter "locked mode"

If max number of suppliers allowed in license is exceeded, Perfion will enter “locked mode” in which only an admin may lock in and only is allowed to either change license or reduce number of suppliers. Either by inactivating them or remove access from Supplier Portal.

Allowed number of Suppliers are now restricted by license

Maximum number of suppliers are now restricted by license. The interface creating organizations will prevent you from creating more than allowed.

Typing more than 200 characters in Company Name would cause SQL-error

In previous versions of Perfion, typing a Company name longer than 200 characters would give an error message when saving company. Now Company name edit-box is limited to 200 characters.

Reduced number of deadlocks using PTable Updates reduced

Under heavy load the API Update statement could fail due to a so-called deadlock. Deadlocks happen when other database requests holds or wants to hold the same resources. In such situations the database is forced to choose one or the other as a so-called deadlock victim and fail it. The Perfion API Update-statement is now capable of, in case it is chosen as the deadlock victim, to retry the update up to 3 times after it fails if problem persists. 

2023-R2 (5.3.1)

Release note title

Release note

Reduced number of deadlocks using PTable Updates reduced

Under heavy load the API Update statement could fail due to a so-called deadlock. Deadlocks happen when other database requests holds or wants to hold the same resources. In such situations the database is forced to choose one or the other as a so-called deadlock victim and fail it. The Perfion API Update-statement is now capable of, in case it is chosen as the deadlock victim, to retry the update up to 3 times after it fails if problem persists.

Application Server - Logging

Start and stop logging are added to actions executed via Application Server. This will make it possible to see time used to each action.

Action - Execute.Action

If an Execute.Action is called with an empty table, the action will fail. The bug is fixed to handle empty tables.

2023-R2 (5.3.0)

Release note title

Release note

Saving user without any roles checked caused Perfion to throw error

When you in the Windows-client removed all roles on a user, you would, in previous versions of Perfion, get an error. This has been fixed.

Fast Typing Caused Reverse Order of Digits in Number Feature

Previously, typing multiple digits for a number feature could reverse their order, e.g., inputting "12" might yield "21". This primarily occurred for the initial feature value. The issue has been resolved.

Error When Using HAVING Clause with Remotes in a Perfion Query

When using the HAVING clause together with remotes in a Perfion query, an error could occur. This has been fixed.

Feature names in item editor omitted ampersand

When opening the Item Editor in the Windows client, feature names containing ampersand would be shown incorrectly. This has been fixed.

Formula Handling Error in Grid Clears Resolved Values with Item-Dependent Features

We've addressed an issue in the grid. Previously, when a formula with item-dependent features encountered an error, it would clear resolved values for rows with correctly expressed formulas. This behavior has been corrected.

Join.* commands in Action altered DataTable datatypes

The Join.* commands previously converted DataTable datatypes to strings. The datatype is now retained.

Table Designer's enhanced Save prompt on Cancel

When cancelling in the Table Designer, users are now prompted to save their changes. Previously in Perfion, cancelling would immediately close the designer, risking the loss of any unsaved modifications.

Validation not functioning for Multivalue Selectables in Item Editor

In the Item Editor, validation rules were not checked for Multivalue Selectables. As a result, no yellow (warning) or red (error) border was shown around incorrect values. This issue has been addressed and corrected.

New user role introduced

A new user role “Can manage actions in web client” has been introduced.

Application Server - Import behavior update

Imports via the Application Server are now executed as the ordering User, not as Admin.

Perfion API defaults to "EN" for unspecified localizable sorts

Previously, when ordering by a localizable feature without specifying a language, the Perfion API would default to the "EN" language. The expected behavior is for the API to order by the first language mentioned in the languages attribute. This issue has been addressed and corrected.

Added Title and Ignore columns to Actions

Actions now features two additional columns: Title and Ignore. The new Ignore flag replace the ‘--’ method, and existing Actions have been updated to utilize this new flag.

Perfion connector for SAP Business One

A new ERP add-in for SAP Business One is now available as part of the Boyum SAP Business One Usability Pack. The add-in enables users to view Perfion data embedded in SAP Business One.

Dashboard access update

User Access on the Dashboard has been divided into two separate sections: User Access and Group Access.

Actions now orderable

For improved usability, Actions can now be arranged in a specific order on the left side.

Actions - Select.XML and Select.JSON enhancements

The {{Select.XML}} and {{Select.JSON}} actions now always add all mappings to a column in the output datatable. Previously, only mappings that matched nodes in the XML/JSON file were added.

User roles stored in database

The User roles in the database are changed, so all roles are represented in the database if the user/group has the role. All roles are removed if the user/group did not have the role.

Dashboard Widgets update

The ampersand (&) character is now correctly displayed in Dashboard Widgets.

Active language list

It is now possible to add and remove active languages under the Admin → Users and Groups → Current Active Languages.

Insert API guery

The API now validates the parent item, and it is no longer possible to create items with a normal item as the parent.

API Update query can update ParentId and Brand

The API Update query can now update ParentId and Brand type. A change of ParentId will move the Item to the new ParentId.

Stressing the Perfion API with queries having remotes could cause error

When issuing many concurrent queries using remotes or related values (or both) it could cause the API to fail with an error message like this: "Collection was modified; enumeration operation may not execute". This issue has been fixed. 

Remotes keyvalue feature auto-selection

Remotes required the keyvalue feature to be part of the select in order to be resolved. This has been changed so a possible missing keyvalue feature will be automatically selected as part of the remote resolving.

Actions introduces JOIN.RIGHT command

A new command JOIN.RIGHT added to Actions to make it easier to join and continue with the joined result. 

Introduction of READ.FILE in Actions command

The new READ.FILE Actions command has been introduced, allowing users to read a file into a Stream for further processing in subsequent Action steps.

Item triggers - "Any Language" option for localizable features

Users can now select the "Any Language" option for localizable features in Item Triggers.

Incomplete multi-valued string exports to XLIFF

When exporting multi-valued strings to XLIFF format, the file would only contain the first target value if the user chose to include existing translations. This has now been fixed.

Item trigger support for localizable features in Information Groups

It is now possible to use localizable features via information groups in Item Triggers.

Introduction of 'SELECT.API' in Actions command

The 'SELECT.API' Actions command has been added, facilitating HTTP requests, such as API calls.

Exporting issue with identical source and target language to XLIFF

If a user tried to export the same source- and target language to XLIFF, the system would shown an error. This has now been fixed so that you can export the same source- and target language successfully.

 Actions - Execute.Action.Loop enhancement

The {{Execute.Action.Loop}} now sends the entire row from the looping table to a datatable named “FromTableRow”, populated with a single row.

 Error When Choosing Inactive Language during XLIFF Export

Previously, when exporting to XLIFF, users could choose an arbitrary language as source and target. Choosing a language that was not active in the system, would result in an error. Now, only active languages are shown.

Action commands for writing files now support encoding parameter

The Action commands WRITE.FILE, WRITE.CSV and WRITE.FIXEDWIDTH now supports a @Encoding parameter allowing the default encoding (UTF-8) to be overwritten.

New Perfion Actions commands for importing and exporting XLIFF translations

Two new Perfion Actions commands, 'IMPORT.XLIFF' and 'SELECT.XLIFF', are now available for importing and exporting XLIFF data.

License update downloading now supported in Perfion

Perfion has introduced support for downloading license updates through the License Management dialog and scheduled tasks. Once set up, available license updates can be downloaded automatically

Release note title

Release note

Import of Lobster generated Excel files via IMPORT.EXCEL command fails

Previously, Perfion had an issue with correctly loading Excel files generated by Lobser. This has partially fixed in 5.3.9 but unfortunately imports using the IMPORT.EXCEL command could still fail. This has now been fixed.

2023-R2 SR3 (5.3.10)

Release note title

Release note

Import Action - Performance optimization

The Import Action had some performance issues.

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.

2023-R2 SR3 (5.3.9)

Release note title

Release note

Import of certain Excel files could fail with message "Unable to read import file. Please check that it is in the correct format."

Import of certain newer Excel format could fail with message "Unable to read import file. Please check that it is in the correct format.". This has been fixed by attempting to convert the Excel file to an older format that are suitable for import.

2023-R2 SR3 (5.3.8)

Release note title

Release note

Binary imports may freeze when running on the Perfion Application Server

Running binary imports on the Perfion Application Server could cause the import to freeze, requiring a restart of the Application Server. The issue could occur because of locks in the database, causing the application server to wait indefinitely for the locks to be released. It will now time out after 5 minutes.

2023-R2 SR3 (5.3.7)

Release note title

Release note

Perfion could fail to retry in database deadlock situations

If the database cancelled an operation due to a potential deadlock, Perfion would fail to retry the change. This situation would surface as a NullReferenceException in e.g. the Item Trigger log. This has been fixed, so that Perfion correctly retries.

2023-R2 SR3 (5.3.6)

Release note title

Release note

Binary imports may freeze when running on the Perfion Application Server

Running binary imports on the Perfion Application Server could cause the import to freeze, requiring a restart of the Application Server. Inter-thread communication has been refactored, so that locking is more unlikely to occur.

2023-R2 SR3 (5.3.5)

Release note title

Release note

Feature Data Import could sometimes be slow, even when importing the same data

Feature Data Import could sometimes be slow, even when importing the same data. Analysis shows that the issue is caused by the execution of a sub-optimal query plan on the database. An extra index has been added to the table in question, to help SQL Server make a better execution plan.

Improved performance in Perfion API when selecting items based on the id of some selectable feature value

Performance of the Perfion API has been improved in 2 areas:

  1. When doing queries using clauses with non-inheritable features

  2. When doing clauses that matches a selectable-feature value using its Item ID (or Item IDs). It could be a statement like this:

Code Block
<Clause id="Color.id" operator="=" value="1234" /> <!-- 1234 is item id of the Color-item "Black" --

Other clauses are not affected. 

Remove not used column 'Has Violations' and menu item 'Show Violations' in Filtered Values configurations

In Filtered Values configuration the column 'Has Violations' is not used and menu item 'Show Violations' are not used. These have been removed.

With logging enabled, eCommerce API queries could return incorrect error information.

When querying the eCommerce API with logging enabled, the API could return an incorrect error message if an error occurred. This would especially happen if the supplied logon credentials to the API was invalid. This issue has been fixed.

Action Command DOWNLOAD.FTP

The DOWNLOAD.FTP return a memory stream and this is now set to Position = 0

Users may be unable to logon to the Perfion Webclient if multifactor authentication is configured.

When trying to access the Perfion Webclient, users could experience an error causing the browser to show an extra Windows login prompt. This issue could show if multifactor authentication is configured. This has now been fixed.

Proper enable of 'Replace' in grid menu when inherited values exist

An error was present of disabling 'Replace' menu item in grid when selected cell column had inherited values. This has been fixed.

Perfion API commands Delete and Insert could be done as Reader

The Perfion API commands Delete and Insert could be done through the API despite that the user was reader (i.e. did not have Edit-access to any language). Inserts would only work, if no features were assigned a value. Update commands were not allowed, since they by nature assigns at least one feature value which is prohibited without any edit access to any language.

This has been fixed so that all data modifying API-Commands (Insert/Update/Delete) now require the user to be an editor, i.e. capable of editing at least one language or non-localizables.

Statistics and Index maintenance could fail on custom objects

If a database contained custom (customer-created) indices or statistics, the scheduled database maintenance job could fail if the objects contained certain characters such as dashes. This has now been fixed.

Running the 'Sync AD users' scheduled task fails due to missing assembly reference

When running the 'Sync AD users' scheduled task, it would fail with a message that a reference to Microsoft.Kiota.Abstractions was missing. This has been fixed.

Freeze column in grid is only cleared if view/columns are changed

A previous fix cleared the freeze column in grid when the grid was refreshed. This has been changed so the freeze column is only cleared if changes are made to grid columns - e.g. by choosing new view or add/remove grid language.

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.