...
Preferably, if the logic is tied to a certain object type, it should start with the type code as a prefix:
Logic type | Formula Nature | Prefix | Suffix | Example |
---|---|---|---|---|
Agreements and Promotions Header |
| AP_ | AP_Header | |
Agreements and Promotions Line Item |
| AP_ | AP_LineItem | |
Calculation Flow |
| CF_ | CF_RebateRecords | |
Calculated Field Set | null (default) | CFS_ | CFS_ProductEnrichment | |
|
|
| ||
Configurator | null (default) | Configurator | SampleConfigurator | |
Data Load |
| DL_ | DL_ProductCost | |
Distributed Data Load |
| DLD_ | DLD_RebateAllocation | |
Dashboard | null (default) | DB_ | DB_Waterfall | |
Price List | null (default) | PL_ | PL_National | |
Live Price Grid | null (default) | PG_ | PG_Computers | |
Quotes | null (default) | Q_ | Q_DefaultQuoteLogic | |
Rebates Agreements Header |
| RM_ | RM_Header | |
Rebate Agreements Line Item |
| RM_ | RM_Rebate | |
Groovy Library |
| Lib | SharedLib MonitoringLib |
Note: In the long term wise , we would like the logic logics of the same Formula Nature to be stored in a subfolder. And Default Formula Nature should be deprecated, so there will be no need for prefixes.
...
Exception: This rule is not valid for logics serving as a custom HTTP API where the letter case of JSON fields needs to be matching the API interface specification.
The element name should be different to classes from java.lang or java.util because IDEA can then show more false alert inspections. So avoid element names like Map, List, etc.
Info |
---|
During deployment, the Groovy logic element scripts get compiled into classes. During logic execution, the logic engine instantiates singleton objects from those classes. These objects then get bound to variables with the same name as the elements. Thus, to call a method
Pricefx Studio will make IntelliJ interpret this as a static call – even though it is not – and that will make the auto-completion work. |
...
Element names should also be unique within the entire project – across all logics and classes from java.lang or java.util packages. This is to enable the auto-completion and unit testing with TDD4C. Examples of too common names causing issues:
Library
Lib
Utils
Filter
Product
Customer
etc.
Info |
---|
When running the logic locally, the element classes will belong to the default pages. The JVM requires classes within the same packages to be unique, so this will make the local compilation fail. |
...
Across logics and entire projects, some patterns of element behavior tend to emerge. For these elements, here are some suggested naming conventions:
Suffix | For | Example Element Name | Example Label | Example Value | ||
---|---|---|---|---|---|---|
Diff | Elements that represent a difference, i.e. a result of a subtraction | VolumeDiff | Volume ∆ | 234 litres | ||
Abs | Elements that represent an amount of money, in absolute terms. | MarginAbs | Margin EUR Margin $ Margin € | 34 $23 €34 | ||
Pct | Elements that represent a quotient. These elements are typically formatted as percentages. | MarginPct | Margin % | 0.45
| ||
s | Elements that represent a collection. | PX_Records |
Element Labels
Will probably get deprecated. Use the label translations instead.
...
Element labels are optional for those elements that are hidden for the end users.
Data Source / Datamart
...
Field Names
The general rule is to make their first letter in uppercase.
...
Examples:
MarginNew
SalesPrice
Note: In PA SQL queries the columns are retrieved in lowercase due to how Postgres works.