Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 13 Next »

In this section:

Upgrade to Version 9.0 and Higher

“Illegal type in constant pool” Error

Description

This error can appear for result matrixes and is caused by a new security feature introduced in JDK 17, which does not allow combining different class version numbers.

How to Avoid This Issue

Upgrade to the latest Pricefx 9.0.x version where a workaround has been implemented that is adding JVM parameters to open up security manager to access those fields.

A permanent solution will be available in one of the next releases.

SHA-1 Issue in CRM Integrations

Description

As the Hurricane version runs server on Java JDK17, SHA-1 hash function has been deprecated for security reasons and is no longer supported. Customers with a Salesforce CRM integration who still use SHA-1 for SAML can get the following error:

How to Avoid This Issue

Use SHA-256 for the connected application (Pricefx) as shown below:

Code Name of Role PA_VIEW_ROLLUPS Changed

Description

The code name of the View Rollups user role has changed from PA_VIEW_ROLLUPS to PA_ROLLUPS_RO.

How to Avoid This Issue

If you maintain user roles outside Pricefx, you will have to make an update reflecting this change.

Backward Compatibility Issues with ResultMatrix​

Description

In Hurricane 9.0 Java package of ResultMatrix class has been changed: ​net.pricefx.server.dto.calculation => net.pricefx.formulaengine.scripting.portlets​

  • The interface made in the original location is backwards compatible​, but inner classes e.g. ResultMatrixStyledCell and properties like entries are not.

  • As a result, import net.pricefx.server.dto.calculation.ResultMatrixStyledCell crashes.

Impact

  • This issue affects specific projects that started with version lower than Hurricane 9.x and were upgraded to 9.x.
    It affects only a minority of projects which use some specific patterns in the code (usage of strong typing, importing fully qualified class names etc.).

  • Projects started with version 9.x are not impacted​.

How to Prevent This Issue

  • If you use the functionality of ResultMatrixStyledCell, entries, getEntries() etc., test it properly. For example, if the Groovy logic uses ResultMatrix in a way that is not compatible, there will be an error in the logic (e.g. dashboard will not display or quote calculation will fail).

  • If you have IMs reading ResultMatrix data, test the functionality.

  • In some cases, the issue can be fixed if you re-save faulty logics and – if needed – the libraries they depend on.

  • In other cases, you may have to modify the logics (e.g. correct type name).

Fix

  • There will be a patch to solve the backward compatibility for cases known so far.

  • This patch will be released with the regular monthly minor release 9.3, and possibly as part of 9.2.x as well.

Note

The recommended way to create ResultMatrix is via api.newMatrix() (not by new ResultMatrix()).

Upgrade to Version 9.1 and Higher

“Too many new instances” Error

Description

In a shared instance, it is necessary to limit the resource usage in a calculation logic (the number of object instances) and this limit is set in pricefx-config.xml with the default being 500:

<maxInstances>500</maxInstances>

In version 9.1.0, a bug about verification of the instance count was fixed: objects created via methods of the api binding were not actually triggering an error when the limit was reached.

This change may cause some calculation logics stop working and ending in an error.

How to Avoid This Issue

Upgrade to version 9.1.3 where this bug fix is reverted. Your logic will work again even if the instance count limit has been exceeded.

A permanent solution for this issue will be decided and implemented in the 10.0 version.

New LineID Created with Revision

Description

There has been a change to prevent items that have been duplicated in a revision of Quote, Rebate Agreement, etc. showing as duplicated also in the original version. In version 9.1, when a new document revision is created a new lineID is generated for each item.

If you work with lineIDs and rely on the fact that they stay the same in document revisions, it can break your solution.

How To Avoid This Issue

Upgrade to Pricefx version 9.1.5 or 9.2.1 – these versions contain a fix that keeps the lineIDs in a revision the same as in the original document.

Upgrade to Version 9.3 and Higher

Functions Retuned by Intercepted Methods Became Asynchronous

All functions that are passed as params to intercepted methods have become asynchronous in version 9.3. This is a breaking change which can have impact on existing interceptor code.

This change affects only React interceptors. Interceptors created by the Pricefx team have been updated and are available for download.

Original code:

export const quotesDetailOpen = ({ quoteAPI, api: { notify } }) => {
  const clicOutputResult = quoteAPI.getHeaderOutputResult('outputName');
  notify.info(clicOutputResult);
}

The code must now include the async / await keywords to handle promises correctly.

Updated code:

export const quotesDetailOpen = async ({ quoteAPI, api: { notify } }) => {
  const clicOutputResult = await quoteAPI.getHeaderOutputResult('outputName');
  await notify.info(clicOutputResult);
}
  • No labels