Black Cat 16.1 – Release Notes


This document summarizes the main improvements and fixes introduced in the Pricefx Unity minor release version.

Version

Black Cat 16.1.0

Release date

February 27, 2026

Release type

Minor

In this document:

Improvements

Description

Component

ID

With the new application property priceGridItemOmitMappedCalculationResults, mapped results in a Live Price Grid can now be excluded from the calculation results to reduce database footprint.

Core

PFUN-22081

A Copy button is now available for Copilot's replies, allowing for one-click copying of the response.

GenAI - Frontend

PFUN-28695

When creating a Price List or Live Price Grid, an information alert is now displayed if the target date is in the past.

Price Setting

PFUN-28981

Drop-downs on blocks now include a search box, making it much more convenient to select items from long lists.

Formula Designer, Strategy Designer

PFUN-30121

Administrators can unlock documents from the Rebate Agreements and Compensation Plans list pages.

Rebates, Sales Compensation

PFUN-30143

In the Calculation Grid, it is now possible to save user preferences for the view.

Price Setting

PFUN-30326

In the Data Table chart configuration, the 'Other' tab is now hidden.

Dashboards

PFUN-30484

In Price Setting Types, tabs are now displayed conditionally based on user view permissions.

Price Setting

PFUN-30622

The InputMatrix input builder now supports tracking of previous, default values and values changed by the logic.

Accelerator Tracking, Groovy API

PFUN-30667

It is now possible to hide the 'Default' option in Price Lists and Live Price Grids using toggles in Configuration > Defaults for Price Lists and LPGs.

Price Setting - Price Lists

PFUN-30802

Percentage formatting is now available for columns in the result Analytics query table.

UI - Table

PFUN-30822

Mass edit is enabled for Attribute Extension columns in Price Lists and Live Price Grids.

Price Setting

PFUN-32095

It is now possible to add a meta description for system fields in Datamarts.

Agents

PFUN-32246

The Meta Description is now editable from the bottom action bar.

Agents

PFUN-32419

In Bar & Line charts with 'Color by Group' enabled, you can now set a specific chart type (Bar, Line, or Spline) for each group.

Dashboards

PFUN-32623

Import changes for updates and deletions now contain a typedId of the target row.

Import Manager

PFUN-32965

When fetching changes in Import Manager, the response now includes the current database value for the changed cell.

Import Manager

PFUN-33047

Support for messaging colors is now available in Custom Forms.

Custom Forms

PFUN-33080

System information has been moved from User Settings to a new About page.

Unity

PFUN-33081

It is now possible in a header logic to get information about the current review sub-step, including its label, user group, and the items for review.

Agreements & Promotions - Backend, Quoting - Backend

PFUN-33100

In Import Manager, when adding a new row to a downloaded Excel file for an object that already exists, the change is now correctly processed as an update instead of a creation.

Import Manager

PFUN-33147

Advanced Configuration Options values can now be saved in JSON format and edited in the JSON editor, which provides (among other advantages) built-in validation.

UI - Configurator

PFUN-33180

In the JWT configuration, it is now possible to select multiple roles.

Unity

PFUN-33182

The 'Direct Import' option is now available again for Product, Customer and Seller Extensions, and for Company Parameter tables.

Import Manager

PFUN-33200

For the Data Table chart type, the chart configuration sider now uses tabs for easier navigation.

Dashboards

PFUN-33407

The sider settings and the Data tab table in a Data Table chart are now synchronized and persist in the portlet.

Dashboards

PFUN-33411

Conditional formatting rules from the Formatting tab are now applied to the Data Table chart.

Dashboards

PFUN-33413

It is now possible to add, modify or delete Bill of Materials (BoM) data using api.addOrUpdate() or api.delete().

Master Data - BoM

PFUN-33423

The Integration Manager import job uses the targetTypedId to find the target object for update and delete operations.

Import Manager

PFUN-33429

Date constant was added in the toolbox for formula lookups.

Formula Designer

PFUN-33857

It is now possible to set a label for a condition type when adding it to an agreement via the CLIC additems endpoint.

Agreements & Promotions, Agreements & Promotions - Backend, Rebates, Sales Compensation

PFUN-33994

A new endpoint enables users to read all MCP roles and tools without specific permissions.

GenAI - Backend

PFUN-34014

Bug Fixes

Description

Component

ID

In a dashboard drill-down chart, the x-axis labels and bars disappear after exiting the drill-down view.

Dashboards

PFUN-20995

Filtering by 'Integration status' in a Calculation Grid causes an error.

Price Setting - Calculation Grid

PFUN-23728

When autosave is turned off, the attachment count on the listing page incorrectly shows "0" after adding attachments and saving.

Quoting, Rebates, Agreements & Promotions, Sales Compensation

PFUN-25521

In Calculation Grids, it is not clear which field is required when no output element is selected.

Price Setting - Calculation Grid

PFUN-26220

A "Maximum call stack size exceeded" error occurs when selecting an item in a table while it is still loading.

Unity

PFUN-27111

In a Custom Form/Header logic, using setUserGroupView() or setUserGroupEdit() with a list of user group names exceeding 255 characters does not produce an error and the restriction is not applied.

Groovy API

PFUN-29456

An empty layout does not appear when navigating to a step with incorrectly defined tabs; instead, the layout from the previous step remains visible.

Optim - Frontend

PFUN-30414

Clicking a product in the Product Quick Search portlet that links to a non-existent document causes an error.

Price Setting - Backend

PFUN-30610

In Custom Forms, alert and warning messages from the header logic are always displayed as green success messages and a critical alert is displayed twice.

Custom Forms

PFUN-30905

In Import Manager, newly added products are not detected when reviewing an import if the product table contains more than one million rows. Fix: The Import Manager still restricts fetching to 1M rows, but now all changes on rows beyond that threshold are displayed (only unchanged rows over 1M are ignored) and the default view has been updated to show Changed rows.

Import Manager

PFUN-31218

Updating an overridable field in a Calculation Grid item does not start a dirty recalculation job.

Price Setting - Calculation Grid - Backend

PFUN-31340

The application crashes when navigating from the Data Scope tab in an Agent to a Price Analyzer chart.

Actionable Insights, Analytics - Charts

PFUN-31848

Filtering by 'Created By' or 'Last Updated By' columns in any Condition Record Set throws an 'Invalid filter' exception.

Condition Records

PFUN-32015

In Detection Rules, a long rule is not fully visible on the screen.

Agents

PFUN-32037

In Import Manager, it is possible to change the value of a business key via mass edit.

Import Manager

PFUN-32067

Attribute Extensions are empty in the calculation context on the second and subsequent passes of a calculation. Fix: Added support for the call api.currentItem("attributeExtension___Ax2").

Backend - General

PFUN-32129

When using Attribute Extensions in a Live Price Grid, the exported file does not contain values for the attribute extension columns.

Price Setting - Backend

PFUN-32135

A DMField input with setClearMissingInDM(true) does not clear its value when the list of available options becomes empty.

UI - Inputs

PFUN-32263

Changes to system inputs in the header are not saved when using the Enter and Tab keys to navigate between fields.

Quoting, Rebates, Agreements & Promotions, Sales Compensation

PFUN-32534

Some translations for Condition Record status values are missing.

Condition Records, Price Setting

PFUN-32570

Sorting by the 'Action' column on the 'Schedule' tab in Modelers/Agents results in an error.

Agents

PFUN-32624

When duplicating a record in a Company Parameters table with autogenerateKeysInPP enabled, the system creates a new record with a random value in a key field instead of showing a validation error. Fix: Keys are autogenerated only when the columns are defined as read only.

Master Data - Company Parameters

PFUN-32664

It is possible to import decimal values into a column of the integer type in the product master.

Import Manager, Master Data - Products

PFUN-32697

The Import Manager review screen performs poorly because of missing typedId in ImportChange objects.

Import Manager

PFUN-32893

Mass Edit and Mass Delete are allowed without a filter being set. Fix: Mass Edit and Mass Delete buttons are disabled if there are more than 10000 rows to be edited or if all picked rows are "New" rows.

Import Manager

PFUN-32958

The Import Manager does not properly validate filenames, which allows for path traversal.

Import Manager

PFUN-33034

In advanced filters on the Items tab, filtering does not work for the input types Customer, Seller, and TimeUserEntry.

Quoting, Rebates, Agreements & Promotions, Sales Compensation

PFUN-33115

Certain complex input types (e.g., INLINECONFIGURATOR, MULTITIERENTRY) in Advanced Filters on the Items tab display more operators than they should.

Quoting, Rebates, Agreements & Promotions, Sales Compensation

PFUN-33116

In the advanced filters on the Items tab, filters with the input type 'OPTIONS' do not display the correct values in the selection dropdown.

Quoting, Rebates, Agreements & Promotions, Sales Compensation

PFUN-33117

When adding an approver to a workflow, the user is able to confirm the action without selecting a user. Fix: Added UI validation that enforces required users or groups for watcher/approver steps and ensures the requested number of approvals matches the selected approvers.

Workflow

PFUN-33191

The Activity Log for an inline configurator only shows the last edited input instead of all changes. Fix: Configuration inputs updates are now logged as one block for the whole configurator-update instead of "per input".

Quoting - Backend, Rebates - Backend, Agreements & Promotions - Backend, Sales Compensation - Backend

PFUN-33262

In the "Restrict values" column setting, newly added columns are not displayed after refreshing the page.

Quoting, Rebates, Agreements & Promotions, Sales Compensation

PFUN-33285

The Calculation Inputs section in the header of a newly created Price List repeatedly refreshes.

Price Setting - Price Lists

PFUN-33314

In the Summary tab of a Live Price Grid, the 'Group By' product attribute dropdown does not show all available attributes.

Price Setting - Live Price Grids

PFUN-33357

Notifications for Import Manager imports are not sent to the user.

Import Manager, Notifications

PFUN-33378

When the decoupleOX application property is set to false, Query API incorrectly uses attribute metadata from object extensions (PXAM) for key fields instead of from the master tables (PAM).

Query API

PFUN-33392

In a Pricing Plan revision, clicking on a Manual Price List in the Document table redirects to the price lists overview instead of the Manual Price List's detail page.

Price Setting

PFUN-33444

In a pie chart, the legend displays even when the "Show Legend" option is disabled.

Dashboards

PFUN-33458

Under certain conditions, logging in or out puts the user into a login loop.

Authentication

PFUN-33498

In Import Manager, deleting rows from a Company Parameter of the 'range' table type is not correctly reflected in the UI.

Import Manager

PFUN-33532

The modal for adding a bound system is missing a translation.

UI - General React

PFUN-33541

When a non-existent token is present in the theme storage, the application renders affected colors as transparent.

UI - General React

PFUN-33547

On the Import Manager review page, filtering by numeric values incorrectly shows no results after a short time.

Import Manager

PFUN-33599

When grouping a list by a date/time column using options such as 'By Week' or 'By Quarter', the group names display incorrect values.

UI - Table

PFUN-33602

An Import Manager job takes too long to start because events are incorrectly emitted during the change detection phase.

Import Manager

PFUN-33713

Processing of SAML metadata from an IdP fails because the KeyInfo element is not found.

Core

PFUN-33718

When an Aggregation Filter is applied to a measure that uses index/rank-style window expressions (such as PERCENT_RANK, CUME_DIST, PERCENTILE, NORMALIZE, or ROW_ID), the query cannot be executed.

Analytics - Backend

PFUN-33788

A user who is a member of the correct User Group cannot approve a workflow step.

Quoting - Backend, Rebates - Backend, Agreements & Promotions - Backend, Sales Compensation - Backend

PFUN-33864

In Condition Records, filters do not load data and get stuck in a loading state.

Condition Records

PFUN-33903

A custom default preference for a Price List is not always applied, and the layout randomly changes upon opening or refreshing the page.

UI - Preferences

PFUN-33904

On the Condition Record Sets screen, the 'Create' button is available for users who only have the 'View Records' role.

Condition Records

PFUN-33936

In Import Manager, the change detection incorrectly identifies valid records as duplicates after a mass edit.

Import Manager

PFUN-33959

Hot Fixes

The following hot fixes have been released for the 16.1 version:

16.1.1 PR

Released on March 20, 2026

Improvements

Description

Components

ID

The Query API now supports querying for JobStatusTracker objects.

Query API

PFUN-29640

The Query API now respects user permissions and access rights when querying data.

Query API

PFUN-30357

The Query API now supports querying Claim Line Items.

Query API

PFUN-32292

Two new API methods, api.streamKVs() and api.streamKVsPayload(), are now available for efficiently accessing multiple KV store rows at once.

Unity

PFUN-33154

The handling of lightweight Custom Fields triggered by a mass action is improved to reduce processing time.

Core

PFUN-33454

Users can see and fetch only their own snapshots via the /dashboard.fetchscheduledresult/ endpoint.

Dashboards

PFUN-34141

In the Query API for Custom Forms, the method rootUN is renamed to rootUniqueName.

Query API

PFUN-34156

Bug Fixes

Description

Components

ID

Long-running Analytics calculation Data Loads fail due to a premature idle-in-transaction timeout.

Analytics - Backend

PFUN-24371

When importing a model object, the current step is not defined.

Agents

PFUN-32216

A user without the WF_ADMIN permission cannot approve or deny a Rebate Record from the Rebate Records screen.

Rebate Records, Rebates - Backend

PFUN-33616

In Quotes, a duplicated folder cannot be expanded when a column is filtered.

Quoting

PFUN-33730

The locked "Default pricing logic" field in a Price Setting Type is editable in the related Price List.

Price Setting, Price Setting - Price Lists

PFUN-33908

A contract remains locked after it has been recalculated.

Agreements & Promotions

PFUN-33948

When switching dashboards, portlet data from the previous dashboard is sent to Copilot.

GenAI - Frontend

PFUN-34012

In Copilot, changing the number of items to display per page in a table's full view does not resize the table.

Copilot

PFUN-34033

After a full recalculation of a Rebate Agreement, the calculation "Results" section for individual Rebate Records is empty.

Rebate Agreements

PFUN-34045

A transaction is kept open in the Price Builder database.

Backend - General

PFUN-34064

In the Live Price Grid configuration wizard, the logic name is displayed instead of its label.

Price Setting - Live Price Grids

PFUN-34106

Product image thumbnails do not render in the Live Price Grid simple view.

Price Setting

PFUN-34168

Users with the 'View Rebate Agreements' role cannot see the Approve/Reject option in workflows.

Rebate Agreements

PFUN-34225

A Collaboration workflow using .withCalculateOnReviewDone() does not return the agreement to the Draft status after the review step is completed.

Agreements & Promotions - Backend, Workflow

PFUN-34229

The api.writeKVBulk() method fails with an error when the number of statements exceeds the batch limit.

Backend - General

PFUN-34268

A validation error appears when creating a duplicate of an already deleted record in Agents meta data.

Agents

PFUN-34269

The API method .getHelper().getItemsForReview() does not work as expected for duplicated quotes or agreements.

Agreements & Promotions - Backend, Quoting - Backend, Workflow

PFUN-34309

When Copilot is enabled on all pages, it cannot be opened on certain pages after being used elsewhere.

Copilot, GenAI - Frontend

PFUN-34320