Please enable JavaScript to view this site.

Managing large collections of data that are hard-coded directly into rules quickly becomes cumbersome to set up and difficult to maintain.

The correct strategy in Combinum is to store this data in dictionaries and use assignment expression rules or data selectors to retrieve it. A data selector is a user interface control that allows users to make selections directly from a filtered and sorted table, automatically setting parameters based on that selection. Read more in the Data selector section.

Below is a description of how an assignment expression rule can be used to retrieve default data from a dictionary while still allowing the user to manually change the values afterward.

Example

Imagine that you are a manufacturer of prefabricated villas. You offer more than 50 villa models and allow customers to select surface materials for each room. Each villa model has different default values. You have decided to manage all villa models as a single product in Combinum named Villa. You also need the floor and wall areas in square meters for each room to calculate price changes when different materials are selected.

The default data can be gathered in a dictionary named RoomData, as shown below, where each room is identified by a unique key that combines the villa model and the room instance:

Key

FloorM2

Floor

WallsM2

Walls

WallsOtherM2

WallsOther

VillaA.Kitchen1

18

OakPremium

28

Painted

6.2

TileTuscannyWhite

VillaA.Living1

39.6

OakPremium

46

Painted



VillaA.Bed1

14

OakPremium

35.5

WallPaperClass2



VillaA.Bed2

10.8

OakPremium

31

WallPaperClass2



VillaA.Bath1

7.2

TileTuscannyBlack

25

TileTuscannyWhite



VillaA.Laundry1

8.6

TileRusticGray

28

Painted



VillaB.Kitchen1

21.6

OakLight

33

Painted



...







 

The CPQ architect has decided to let each room be an individual configuration model. Therefore, a child product named Room has been added beneath the Villa product. Furthermore, when configuring a villa, the correct set of room configurations (such as "Kitchen1" or "Living1") is automatically generated via dynamic instances as soon as the user selects a villa model.

To manage the surface selections for each room, the CPQ architect has created the following parameters:

Parameters

Description

Model (Lookup)

Selected at the Villa level but also available for rules at the Room level via parameter propagation. Values: "VillaA", "VillaB", ...

StoredModel (String)

Placed on a hidden tab and used to detect when the user has selected a different villa model, which requires the room data to be retrieved again.

Room (Lookup)

Identifies the type of room and is set automatically when room configurations are generated using dynamic instances. Values: "Kitchen1", "Living1", ...

StoredRoom (String)

Placed on a hidden tab and used to detect changes in the room type that the active room configuration represents.

FloorM2 (Double)

Floor area

Floor (Lookup)

Floor covering

WallsM2 (Double)

Total wall area

Walls (Lookup)

Wall covering

WallsOtherM2 (Double)

Wall area covered in a different material

WallsOther (Lookup)

Wall covering in different material for part of the walls

 

To pull the correct default data from the dictionary when a villa model is selected, the CPQ architect has created the assignment expression rule below:

Setting name

Value

Trigger continuously

Checked

Inclusion expression

Model != StoredModel || Room != StoredRoom

Parameter expression 1, sets the parameter StoredModel

Model

Parameter expression 2, sets the parameter StoredRoom

Room

Parameter expression 3, sets the parameter FloorM2

RoomData[Model+"."+Room].FloorM2

Parameter expression 4, sets the parameter Floor

RoomData[Model+"."+Room].Floor

Parameter expression 5, sets the parameter WallsM2

RoomData[Model+"."+Room].WallsM2

Parameter expression 6, sets the parameter Walls

RoomData[Model+"."+Room].Walls

Parameter expression 7, sets the parameter WallsOtherM2

RoomData[Model+"."+Room].WallsOtherM2

Parameter expression 8, sets the parameter WallsOther

RoomData[Model+"."+Room].WallsOther

  

Keyboard Navigation

F7 for caret browsing
Hold ALT and press letter

This Info: ALT+q
Page Header: ALT+h
Topic Header: ALT+t
Topic Body: ALT+b
Contents: ALT+c
Search: ALT+s
Exit Menu/Up: ESC