Versions Compared

Key

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

If you encounter issues while working with the IntelliJ IDEA plugin, please report them. Internal people can report to Jira JIRA in PFAUT project. Partners or customers can raise a ticket to the Support portal. If possible, add a screenshot or attach the IDEA the IntelliJ IDEA log file to the message. The log file is located at Help > Show Log in Files/Explorer/Finder; idea.log is the current log file.

Table of Contents
maxLevel2
minLevel1
outlinefalse
typelist
printablefalse

Why Auto-completion Is Not Working?

...

Make sure Groovy API Library Is Added to Project

The Groovy API library must be part of the project, since it contains Pricefx interfaces/classes which are used by IDEA for auto-completion.

  1. Open the project in IntelliJ IDEA.

  2. Open the Maven tool window and click the Reload button. If you don’t see Maven tool window, right click the root folder and select Pricefx > Generate pom.xml.

  3. Click Local Maven Project in the popup that appears.
    This will add Studio: net.pricefx:groovy-api library in External libraries and auto-completion should work from now.

  4. Go to File > Invalidate Caches, select Clear file system cache and Local history and Clear VCS Log caches and indexes and click Invalidate and Restart.

Logic 'elements' Folders Must Be Marked as a 'Source'

...

Folder

Did you mark the logic elements directories as 'Source'?
Image Removed

Pricefx Framework must be added to the project

Have you added the Pricefx Framework support? You should Studio Upgrade Instructions for the Project Libraries when a major Studio or PFX versions are released.
Image Removed

Re-activate GDSL script execution once it crashes

GDSL is IntelliJ's native DSL Groovy-based language for defining additional auto-completion rules. We do not know why but sometimes the GDSL execution crashes (typically when switching branches) and then IDEA stops the auto-completion for all projects. Once this happens, navigate to External Libraries > Pricefx API > logic-core.jar > PFXIdeaPublicGroovyAPI.gdsl in the project tree. If the auto-completion has crashed, then a yellow popup with the 'Activate back' button appears. Note that it may take couple of seconds to appear. Once you click 'Activate back', the auto-completion is enabled again.
Image Removed

After clicking 'Activate Back', you can also purge the IntelliJ cache: File > Invalidate Caches / Restart > Invalidate and Restart. This should force IntelliJ to rebuild caches for the API documentation.

Date suffix needs to be removed from Groovy Library name for 'libs' to work

The auto-completion of methods in 'libs' (resp. legacy 'lib') does not work when the Groovy library is in a folder that is not a valid Java package name (= by default it has the date suffix "+YYYY-MM-DD"). In that case, simply rename and remove the suffix part if you do not have a logic with different validFrom. This is safe to do, the package tool does not use this information; it reads the 'validAfter' information from logic.json.

Element names not unique

For cases when auto-completion does not work for referring elements either within the same logic or in 'libs' (resp. legacy 'lib'): if you use two elements of the same name in the project, IDEA does not know which Class should be evaluated. Avoid having elements of the same name, so e.g. add a suffix "Utils" to the names of the Groovy library elements.

Auto-Completion Works in General, but Not for Filter Class

Do you have element called "Filter" in one of your logics? Try to give it another name as described in Naming Conventionssource? To do that, open the Maven tool window and click the Reload button. If you don’t see Maven tool window, right click the root folder and select Pricefx > Generate pom.xml. Click Local Maven Project in the popup that appears.

...

Auto-Completion Works in General, but Not for Some Classes

If the auto-completion does not work for Filter or if you you have an element called "Filter" in one of your logics, rename it as described in Naming Conventions. Alternatively explicitly add import com.googlecode.genericdao.search.Filter.

Why the ctrl+click in code navigates me to a completely different element?

Make sure the element name is unique within a project, see related article:

https://pricefx.atlassian.net/wiki/spaces/KB/pages/697696257/Naming+Conventions#Unique-Element-Names-Within-Projects

How to Ensure Studio Uses the Latest Groovy API?

Each Studio version is bundled with a certain version of Groovy API. Make sure you are using the latest Studio to have the latest Groovy API. For details see Upgrade Studio Project Libraries.

Cannot Upgrade Studio

If you have not switched to JetBrains MarketPlace yet, follow these steps: https://pricefx.atlassian.net/wiki/spaces/KB/pages/1679196175/Install+Studio#Remove/Reinstall-Plugin.

PKIX Path Building Failed: SunCertPathBuilderException

If you get a following exception:

“net.pricefx.restapiclient.PfxClientException: PKIX path building failed: sun.security.provider.certpath.SunCertPathBuilderException: unable to find valid certification path to requested target”

your computer cannot connect to Pricefx backend via SSL.

Troubleshooting steps:

  1. Make sure you are using the latest supported IDEA version (as listed in the release notes). This will ensure that the latest certificate store database is used.

  2. Go to the Pricefx partition using the web browser. If the browser displays a problem with the certificate, check the error message. If the certificate expired, contact Pricefx Support via helpdesk.

  3. If your company requires that a proxy server is used, set up the proxy server also in IDEA. See https://pricefx.atlassian.net/wiki/spaces/KB/pages/1679196175/Install+Studio#Install-Plugin.

  4. If you still cannot connect, your certificate store may be outdated (for older computers). In that case visit the Pricefx partition using the web browser. Export the certificate using the browser and import it to the IDEA certificate store in Preferences > search “Server Certificates”.

  5. If you are trying to connect to a partition on your localhost server with SSL enabled, you might need to generate a certificate that includes Subject Alternative Name (SAN) referencing the localhost domain name. An example using openssl:

    Code Block
    languagebash
    openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout privatekey.key -out certificate.crt -subj '/CN=localhost' -extensions san -config <(echo '[req]'; echo 'distinguished_name=req'; echo '[san]'; echo 'subjectAltName=DNS:localhost,IP:127.0.0.1')

    Use that certificate in your Apache config and import it to the keystore of the JVM used to run Idea. It is usually located in the <Idea directory>/jbr/lib/security. Copy the certificate.crt there and run:

    Code Block
    languagebash
    keytool -keystore cacerts -importcert -alias certificate -file certificate.crt

    If asked about a password, the default is “changeit”.
    Restart Idea/PFX Studio and Apache and you should be able to connect to the localhost server’s partition.

IntelliJ IDEA General Troubleshooting

If IntelliJ IDEA is behaving strangely, the last chance is to remove the project related config files:

...

  1. To invalidate caches, go to File > Invalidate Cache / Restart > Clear file system cache and Local History and Clear VCS Log caches and indexes and confirm Invalidate and Restart.

  2. Close IDEA.

  3. In the

...

  1. MacOS, delete IDEA config files of the project:

    • Browse to the project folder.

    • Find the .iml file in the project root and delete it.

    • Find the .idea folder in the project root and delete it.

  2. Reopen the project in IDEA.

...

Code Reference Info: 
https://www.jetbrains.com/help/idea/viewing-reference-information.html

Install Older Version of IntelliJ IDEA

Verify in the Pricefx Studio Release Notes that you use a supported IntelliJ IDEA version.

Note that Pricefx Studio has been known to have some issues with IntelliJ 2021.3, so try installing 2021.2 or another version and see if that fixes the issue.

Older versions of IntelliJ: https://www.jetbrains.com/idea/download/other.html