Configuration Overview

Describes what "Configuration" of the Pricefx application means and, in a nutshell, the development process. Expected audience are power users, admins, implementation people.

What "Configuration" means

By Configuration of Pricefx application, we mean the process of implementation of a solution for a customer using the Pricefx application.

What can you configure

The Configuration Engineer configures:

  • Tables

  • Calculation Logics

  • System Configuration

  • Various features

Tables Configuration

You can create new tables and setup their column names and data types. (Note: some tables exist out of the box, and you cannot create another copy.)

Configuration of tables is done in the Pricefx UI.

Usually, people refer to configuration of Master Data tables and Analytics data tables. Generally though, there are more tables you might need to configure, depending on the use-case.

  • Master Data

    • Products & Customers (also called Product Master and Customer Master)

    • Product & Customer Extensions

    • Company Parameters

    • Competition Data

    • Product References (e.g. relations between products)

    • BoM (Bill Of Materials)

  • Analytics Tables

    • DataSources

    • Datamarts

  • Optimization

    • Model

  • Price Setting

    • Manual Pricelist

  • Quoting and Agreements&Promotions

    • Price Records

  • Rebates

    • Rebate Records

Calculation Logics Implementation

Processes (like price calculation, data processing, …​) are implemented via programs in the Groovy programming language. Such programs are called "Calculation Logic" or in short a "Logic".

Note: You can also often spot the former name "Formula" instead of "Logic". This is because the previous programming language was called "Formula" language.

The logics are developed in an IDE, specifically, IntelliJ Idea using the Pricefx Studio plugin. Note: It is also possible to write the logics in a built-in editor in the Pricefx UI, however, this method lacks some features, e.g. autocompletion.

System Configuration

There are many configuration settings, which can be used to modify behavior of the system in certain modules. They can be found under Administration › Configuration.

For a complete list please refer to the documentation.

Various features

There are many other things which can be configured. Some of them are only configuration, but some also require implementation of Logic.

  • Cross-module features

    • Dashboards

    • Calculation Field Set

    • Configuration Wizards

    • Calculation Flow

  • Analytics

    • Rollups

  • Price Setting

    • PL/LPG Types

  • Quoting

    • Quote Type

  • Agreements & Promotions

    • Contract Term Types

  • Rebates

    • Rebate Types

  • etc.

Development Process

  1. Create/Modify the configuration

  2. Testing

    • Manual Testing

    • Automated Testing

  3. Store new version

  4. Deploy to QA/PROD

Create/Modify the configuration

The implementation of the solution by configuration of tables, features, settings, and developing of logics.

Testing

Manual Testing

  • You should always ensure that your code works and delivers the business value.

  • You must always ensure your code works before storing to version control system.

Automated Testing

  • For creation of unit tests for a logic, we have the TDD4C (Test Driven Development For Consultants) framework.

  • Serves for verification that recent changes have not broken the previous work.

Store/Keep versions

Whenever you develop some new working configuration element, you must always store it to the version control system to ensure:

  • all developed solutions are safely stored (not only on your computer).

  • you have different versions, in case you need to rollback.

  • the version control system storage serves as "source of truth" for the configuration.

Deploy to QA/PROD

After a given part of the development of the solution is ready, you will discuss the progress with the customer and deploy to the QA partition so that the customer can perform user testing.

Once user testing proves the solution works as expected, then at negotiated dates, you may also deploy to the production system.

References

Found an issue in documentation? Write to us.

Â