***************************************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** This Confluence article was automatically generated from Asciidoc. Any changes you make to this document will be overridden! If you want to change the content, consider leaving a comment. You can edit the content directly here: https://gitlab.pricefx.eu/training/pricefx-knowledge-base/-/tree/dev/public/content/docs/concepts/architechture/configuration ***************************************************** ***************************************************** ***************************************************** ***************************************************** ***************************************************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING ********************** ********************** WARNING **********************
Describes what "Configuration" of the Pricefx application means and, in a nutshell, the development process. Expected audience are power users, admins, implementation people.
By Configuration of Pricefx application, we mean the process of implementation of a solution for a customer using the Pricefx application.
The Configuration Engineer configures:
Tables
Calculation Logics
System Configuration
Various features
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
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.
There are many configuration settings, which can be used to modify behavior of the system in certain modules. They can be found under
.For a complete list please refer to the documentation.
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.
Create/Modify the configuration
Testing
Manual Testing
Automated Testing
Store new version
Deploy to QA/PROD
The implementation of the solution by configuration of tables, features, settings, and developing of logics.
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.
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.
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.