This is the documentation for Clover Club 12.0.
Documentation for the upcoming version Rampur 13.0 can be found here.
FAQ
In this section, you will find the answers to the most frequently asked questions (FAQ).
Contents:
- 1 How to debug Unity in SFDCÂ
- 2 How can I configure SFDC with several PFX instances?
- 3 How can I find out which Unity version I am using?
- 4 How can I access different versions of Unity?
- 5 How can I switch to the Classic UI? (applies to versions lower than 10.0)
- 6 Can I use multiple tabs like in the Classic UI?
- 7 How can I hide a main menu item?
- 8 How can I hide Customer user input field in the Quote header?
- 9 How can I change the default number of lines in product picker?
- 10 What is the difference between Table and Simple Table view?
- 11 How can I make table view the default view?
- 12 Can I set the default view in the Quote header?
- 13 How can I hide the root row in Quote or Agreement/Promotion detail table view?
- 14 Can I add a chart to Quote header?
- 15 How is the interface language set?
- 16 How routing works when a user logs into Unity
- 17 How can I import products to a Quote in bulk?
- 18 How can I configure links in email templates to point to Unity when I use SAML SSO?
- 19 How can I edit a Quote after it was submitted and approved?
- 20 How can I automatically recalculate Quote after clicking 'Confirm Changes' in pop-up configurator?
How to debug Unity in SFDCÂ
Q: I need to open a support ticket because Unity doesn't work. (e.g., SSO doesn't work).
A:Â We always need to see screenshots with the javascript console open. The verbose mode must be enabled. When we don't have access then it is not possible to say what is wrong.
How can I configure SFDC with several PFX instances?
Q: I need to configure SFDC with 4 PFX instances which should connect in quoting.
A: This is configured and managed in Salesforce. There must be a Connected App configured for each PFX partition. It means 4 connected apps, each placed on a different Opportunity Layout. Then the right Opportunity layout is shown based on logged in user role and group.
How can I find out which Unity version I am using?
Q: How do I know which version I am using and on which servers are my Unity modules running?
A: Go to User menu > User Settings. In the Unity and Backend sections, you can find all the necessary information.
To find out if you are using a production or staging version, you need to go to PFX Classic UI Configuration > External Systems > SAML Configuration > section Relay States > value in column RelayStatesURL.
How can I access different versions of Unity?
Q: Can I connect to different versions of Unity and how do I do it?
A: There are two scenarios:
Unity integrated with SFDC (or C4C or MS Dynamics)
The admin of each partition can control, which version of Unity will be used. This can be done using the RelayStateURL parameter in Pricefx Configuration.Standalone Unity
The user will typically be provided with a link like www.pricefx.eu/app/ to access the Unity login page. Then all partitions on the server will have the same version of Unity, as /app/ points to the latest version.
For development/testing purposes, we also allow users to use URLs for accessing specific versions. For example:
How can I switch to the Classic UI? (applies to versions lower than 10.0)
Q: If I want to display the Pricefx Classic user interface, for example to access features that are not yet available in Unity, how can I do it?
A: You can do it via the Switch to Classic UIÂ user menu option. You make the option available in the menu by enabling the feature flag showSwitchToClassicUserMenuLink
. It is disabled by default. Note that this option is only available in the standalone Unity application.
Can I use multiple tabs like in the Classic UI?
Q:Â Is there a plan to implement a tabbed view in Unity that's similar to Classic? I usually maintain multiple tabs at a time and flip back and forth between analytics and Quotes, Agreements/Promotions and Rebates.
A: There is no plan for introducing tabs in Unity. Instead, you can open different modules/pages in multiple web browser tabs.
The reason why we opted for browser tabs is that this approach has a positive impact on performance. With in-app tabs, all the data from all the tabs is present in the Document Object Model of the page which can cause problems with growing memory consumption. If multiple browser tabs are used, the DOM of each page is simpler and browsers often handle different tabs as separate processes.
How can I hide a main menu item?
Q: We are not using Agreements/Promotions, so I'd like to remove the Agreements & Promotions module from the main menu.
A: Use the mainMenuExclude
 feature flag. To hide the Agreements & Promotions module, set the flag's value to ["promotion-manager.index"].
See the whole list of possible values.
How can I hide Customer user input field in the Quote header?
Q: I want to hide the Customer input field in the Quote header. How can I do it?
A: You can make this setting in three different places:
In the Configuration section (go to Administration > Configuration > Quoting General Settings) and disable the option Add customer input to root item.
In the Quote header logic, using the setRenderInfo method.
On the Administration > Feature Flags page, disable the feature flagÂ
showCustomerInput
. This setting overrides the previous two.
How can I change the default number of lines in product picker?
Q: By default, the product picker displays only 50 lines per page, which I find inconvenient. Can I change the default setting?
A: Yes, you can. Go to Administration > Feature Flags and change the value of the productPickerPageLength
 flag. The maximum accepted value is 300.
What is the difference between Table and Simple Table view?
Q: On the Items tab of the Quote detail page, there are three different views to select from. What are the differences?
A:Â The main differences among the different table views are the presence of folder structure, how the input parameters are displayed and finally performance.
Tree View:
Folder structure with drag&drop functionality.
Global filtering by product name and ID (only in Ember version).
Easy to view and compare calculation results.
Supports approx. 500 records (depends on the number of columns).
Table View:
Folder structure (but without drag&drop).
Calculation results in a drop-down under each line item.
Global filtering by product name and ID.
Good as a default view as it offers the possibility to view all relevant content.
Supports approx. 500 records (depends on the number of columns).
Simple Table View:
List-based line item view.
Column quick filters and a global product filter.
Calculation results displayed in a modal window.
Convenient for data changes and item comparison.
In-line product images.
Pagination for Quotes with a large number of items.
Supports approx. 1000 records (depends on the number of columns).
How can I make table view the default view?
Q: I want to display the table view as default for every user. How can I do it?
A: Go to Administration > Feature Flags and enable the property showTableView
.
Can I set the default view in the Quote header?
Q: I would like to be able to set the view type (tree or table) for individual Quotes, not only globally. How can I do it?
A: It is possible to configure a drop-down menu in the Quote header logic, which will enable the user to select the preferred view type for that particular Quote.
This is an example header logic that configures the drop-down menu and passes the selected value to the Quote output:
if (quoteProcessor.isPostPhase() && quoteProcessor.getQuoteView().label == "Items Display Settings") {
String[] views = ["TREE_VIEW", "TABLE_VIEW"]
def views_labels = [
"TREE_VIEW" : "Tree View",
"TABLE_VIEW" : "Table View"
]
quoteProcessor.addOrUpdateInput(
"ROOT",
["name": "defaultview",
"label": "Default View of Items",
"type" : InputType.OPTION,
"valueOptions" : views,
"required" : true,
"parameterConfig" : [
"labels": views_labels
]
]
)
def view = quoteProcessor.getHelper().getRoot().getInputByName("defaultview")?.value
quoteProcessor.addOrUpdateOutput([
"resultName": "__UI_ItemsDisplaySettings",
"resultLabel": "__UI_ItemsDisplaySettings",
"resultType" : "OBJECT",
"result" : [ "viewType": view ] // TREE_VIEW, TABLE_VIEW
])
}
The drop-down menu on the Header tab will then look like this:
How can I hide the root row in Quote or Agreement/Promotion detail table view?
Q: On the Items tab, I'd like to hide the inputs on the root folder in table view so that users cannot edit them.
A: Set the 'omitTableLevel' feature flag to 1. This hides the root folder row.
Can I add a chart to Quote header?
Q: I'd like to display a chart in the Quote header and reorganize the fields into several columns. How can I do it?
A:Â The main quote attributes can be displayed in a collapsible header, which will be available on all tabs. The only supported fields are:
createdByName
quoteStatus
creationWorkflow
workflowStatus
opportunityId
effectiveDate
expiryDate
lastUpdateDate
userGroupEditView
You can also add a chart to the header if you want to see, for example, the overall Quote performance displayed in a graphical form.
For details see Configure a Custom Quote Header.
How is the interface language set?
The below diagram shows how the app determines what language and locale to use.
The steps to determine the app language are as follows:
The highest priority take the URL parameters for language and locale (e.g., locale=en_US&uiLanguage=en).
If the URL does not contain these parameters, then the application searches for settings in the local web browser storage (previously saved by the user in the app).
If nothing is found, then, if enabled, the app detects the web browser language settings and applies them to the app interface.
The last instance, if the browser language cannot be detected or the detection is disabled, are the partition settings (the
intlCode
 andpfxCode
 feature flags). If none of these attempts are successful, the default language "en" is applied.
How routing works when a user logs into Unity
The following diagram explains what steps are evaluated when a user logs into Pricefx depending on what parameters are provided during login:
targetPage
– Defines (in URL) a specific Pricefx page to open. This is often used in Deep Linking or in RelayState parameter. See a list of supported values.rootPage
– Sets a home page for all users at a partition (set as a feature flag).startPage
– Sets a home page for a particular user (set in User Settings). This setting overrides therootPage
feature flag setting.
How can I import products to a Quote in bulk?
If you need to add a large number of products to a Quote at once, you can use the Import feature.
Prepare a spreadsheet that will contain a list of products. The first column always has to be the the line item ID (sku). If you want to import other attributes, their order must respect the order of the columns in the table.
Copy the content of the spreadsheet to the clipboard (Ctrl+C).
Go to the items tab and click the Import items from clipboard button.
Copy the list of products from the spreadsheet and paste it to the import window.
Select whether you want to append the existing list of products or replace it with the imported list.
Verify that the products have been imported correctly.
Note:Â Importing line items containing multi-tier entry inputs is not supported. Only the following input types can be imported/exported: BOOLEAN, BOOLEANUSERENTRY, CUSTOMER, PRODUCT, DATETIMEUSERENTRY, DATEUSERENTRY, TIMEUSERENTRY, INTEGERUSERENTRY, LOOKUP, OPTION, RADIO, STRINGUSERENTRY, TEXTUSERENTRY, USERENTRY.
 You can also export the product table. On the Export tab, click Copy to clipboard and paste it to a spreadsheet.
Note: Date, Time and DateTime values are copied with enveloping double quotes ("2020-03-12"). The reason is that Pricefx is not able to recognize date and time formatting and locale settings in Excel and exporting and importing the values from and back to Pricefx could cause problems. It is up to the user to set the correct formatting in Excel and Pricefx.
How can I configure links in email templates to point to Unity when I use SAML SSO?
For Unity interface users' convenience, you want to change the links in message templates so that they point to Unity. To open a Quote in Unity from an email, set the link to:
$baseURL$/app/#/quotes/detail/$quote.uniqueName$
If you use single sign-on (SSO), the link to the document will be in the relay state parameter.
/pricefx/martin/saml/signon?RelayState=MyRelayState--targetPage=rebate-agreements--targetPageState=R-2147483666
As for the targetPage, the supported values are listed in AppPages in API Documentation. The targetPageState will be the uniqueName of the entity. These two parameters must be present in the relay state.
How can I edit a Quote after it was submitted and approved?
Q: We have a Quote where we need a certain field value (PO Number) before we send this Quote to SAP, but the customer will only know the PO Number once the Quote was submitted and approved. How can we update such an approved Quote in the UI?
A: Use the following setting in the header logic:
This editability works only in Unity, not in Classic.
Note:
If the editability is not needed in the UI, the user role 'Data Integration' can update the Quote even without marking it as always editable.
On the line item level, you use Parameter Details in the logic editor to make fields editable.
How can I automatically recalculate Quote after clicking 'Confirm Changes' in pop-up configurator?
Clicking the Confirm Changes button in the pop-up configurator does not trigger Quote recalculation by default.
If you have several configurators in the header logic which depend on each other, it is not convenient to click the Recalculate button every time you need to pass values from one configurator to another.
To avoid this clicking, you can turn on the feature flag priceEntityAfterSave
. It triggers quote recalculation automatically after you click the Confirm Changes button in the configurator.
To set up this feature flag:
Go to Administration > Feature Flags.
Set
priceEntityAfterSave
to true.