Perfion Windows Client - Version 5.3

Version: 2023-R2 SR3 (5.3.11)

Release date: 29 April 2024

Highlights

  • Filtered Values: Filter available selectable values in any feature based on value in “controlling” feature and highlight violations 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

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

Related guides:

Windows Client - Installation Guide

Release Notes

2023-R2 SR3 (5.3.11)

Release note title

Release note

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

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

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

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

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

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

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:

<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.

2023-R2 SR2 (5.3.4)

Release note title

Release note

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:

    <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

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

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

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

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.