Versions Compared

Key

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

...

Logic type

Formula Nature

Prefix

Suffix

Example

Calculation Flow

"calculationFlow"

CF_


CF_RebateRecords

Calculated Field Set

null/ (default)

CFS_


CFS_ProductEnrichment

Dataload

"paDataLoad"

DL_


DL_ProductCost

Dashboard

null (default)

DB_

DB_Waterfall

Groovy Library

"library"


Lib

SharedLib

MonitoringLib

Element Names

Element names should be written in CamelCase, with the first letter capitalized, for example:

...

NewMargin

...

  • InvoicePrice

  • CustomerPrice

  • ResultPrice

  • MarginNew

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.

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 callMethod()that is located inside an element ElementName:

ElementName.callMethod()

Pricefx Studio will make IntelliJ interpret this as a static call – even though it’s not – and that will make the auto-completion work.

...

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.

...

Library Elements

Groovy library element names should be suffixed with Utils, for example:

  • RoundingUtils

  • CacheUtils

  • DatamartUtils

  • DateUtils

  • MathUtils

Common Patterns

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

Note

Despite the naming convention, the value should not be a percentage, i.e. it should not be multiplied by 100.

s

Elements that represent a collection.

pxRecordsPX_Records

Element Labels

Labels should be identical to the element names, but with the words separated by spaces. Some words can be replaced by symbols, for example:

...