Attribute based sales prices for the Product configurator

Product configurator – Attribute-based sales prices

In Cumulative Update number 7 to Dynamics AX 2012 R2, we have introduced an
alternative to the cost-based sales prices in the Product configurator, namely
attribute-based sales prices. This new feature will allow you to build sales
price models with sales prices based on components and attributes rather than on
the physical bill of material and the route. You can build several sales price
models for a product configuration model.

Before you start building your price models, you must define a default currency. The
default currency is used when you build your sales price models. You can also
decide whether you want to attach an Excel-based price breakdown to the order
or quotation lines. The price breakdown will enable you to share details with
customers about how you arrived at a specific sales price for a configured
product. You can maintain these settings in the Product information management parameters.

With these properties in place, you are all set to start building your sales price models.
Click the Price models action on the Action Pane in Product configuration models.

The Price models list opens.

After having added at least one entry to the list, you can click Edit to display the Price
model
form. In the header of the form, you see the default currency and you can add new currencies for your price setup.

In the left pane you see all the components and user requirements of the product model.
Each node in the product model tree can have one base-price expression and an
optional number of expression rules. An expression rule consists of a condition
and an expression and each expression rule covers a product option that helps
control the price of the product.

The example above has a base price of a static number of 900 and two expression rules. The
first rule sets the price for the cable according to the selected length. The
second rule deducts 110 from the price if the same color is applied to all components.

When you build your conditions and expressions, you have the same operators available as
those that are used for calculations in a product model. Moreover, the expression editor supports

both conditions and expressions.

Once you have specified a base price and a set of expression rules for one node, you can
click on another node to continue building your price model.

If you want to maintain your prices in several currencies, you can add new currencies by clicking
the plus icon on the Action Pane and then you can select from the list of available currencies in the system.

In the example below, EUR has been added as a currency. When a configurable product is sold, the system

checks if the prices have been set in the currency of the customer. If this is not the case, the default currency

is converted to the currency of the customer using the currency exchange rates in the sales company.

What you can observe immediately is that for each price element there are now two expression
fields:

  • Default, which shows the expression you created in the default currency.
  • Expression, which is the field you will use to express the price for the new currency.

Please observe that the condition field for the expression rules is “owned” by the
default currency. This means that you cannot modify the condition for the new
currency.

Also, you cannot add expression rules for an additional currency. To create expression rules
that would be relevant only for a currency other than the default currency, you
can set the price expression for the default currency to zero. Then set the
appropriate expression for the non-default currency.

To test how the sales prices behave in a configuration session, click Test on the Action Pane. The Configure
line
form opens and you can select attribute values and immediately see the impact on the price.

If you want to see how the total price, in this case 3,466.90 US Dollars, was calculated,
you can click View price breakdown on the Action Pane. This will open Excel and display both the absolute

value and the contribution as a percentage for each active price element. If you have set
the Price breakdown parameter, this Excel sheet gets attached to the order or quotation line.

When your price models are in place, you must establish at least one selection criterion
to pick up the price model when you configure to quote or to order. You build
the selection criteria using the standard Dynamics AX SysQuery form.

To get started with this, click Price model criteria on the Action Pane in Product configuration models.

The Price model criteria list opens.

Enter a name and a description, then select which price model the query is related to,
what order type it should be used for and its validity period. When you click Edit, the SysQuery form is

displayed showing the primary tables for the selected order type. In the example below,

the order type is Quotation type prospect.

You can add to the list of tables by right-clicking on the tables in the header. Under Fields

on the Range tab you can add and remove filtering options.

Once your queries are created, you need to place them in the proper order in the

Price model criteria list. At configuration time, the system starts looking from the top of the

list and uses the first query that matches the data on the quote or the order line. So if you
place a general query at the top of the list, this is the one that will be used
even though there might be a query further down the list that targets the exact
customer or prospect of the configuration. Use the Up and Down arrows to change
the order of the queries.

You can filter the Price model criteria list to view Valid, Expired, or All queries. Use the

View action to set the filter appropriately.

Queries for price model criteria can be duplicated. When you create a duplicate, you must
enter a new unique name and a start date.

When you click OK to save a new query, the expire
date of the query that you duplicated is set to the day before the selected
valid from date.

In a combination with matching sales price models, the queries provide great
flexibility in targeting sales prices for particular customers, regions, periods,
and other criteria. To create new sales price models, you can either duplicate
an existing model or start from scratch.

The final step is to specify attribute-based sales prices for the product model version.
Select Attribute based in the Pricing method field in the Versions form.

 

 

Product configurator, new expression editor

In Cumulative Update 6 for Dynamics AX 2012 R2 we have included a new expression editor for
the Product configurator. You can use the editor to create expression Constraints,
Conditions and Calculations. (Calculations is a new concept, which was
introduced in Cumulative Update 6, and was described in a previous post in this
blog).

The screenshot below shows the expression editor as it will appear when you click
the drop down for the expression column for a new Constraint or a new Condition.

 Constraint expression editor 

The editor has a text field, in which you can type an expression, and a tabular list
section in the lower part of the form. The tabs in the list represents the
elements or symbols you can include in an expression Constraint. They are:

  • Attributes
  • Operators
  • Values (attribute values)

The All symbols tab displays all entries from the three other tabs (a combined list).
The items that appear in the list are filtered depending on the user input in
the Expression field. In the example below, the user has started writing an Implies constraint (“im”). The only two
matches are the Implies and the Times operators, and thus they
are the only symbols remaining in the list.
 

You can add operators, attributes or values to an expression by typing, or by selecting an
element in the list with the mouse (double-click, press the Enter key or use
the Insert symbol action in the list action pane to insert the symbol). You can also
press Alt + Arrow down to set focus on the grid, then use arrow keys to move in
the lists and then press Alt + I to insert symbols from the grid. If you move
the cursor in the expression field, you can press F5 to refresh the lists in
the symbol grid.

The editor attempts to validate the syntax as you build an expression. If you type in an
unknown text and hit the space bar, an error is displayed. Below is an example
where the user typed in “XYZ”.

You can also use the Validate action to validate the syntax at any point.

 Calculation expression editor

When the expression editor is used for Calculations, there are more operators available and you can
include attributes of any type except free text. The screenshot shows the available
operators if you type “s” in the Expression field.

Product configurator, new Calculations concept

In cumulative update 6 for Dynamics AX 2012 R2 we are introducing a new concept
called Calculations in the Constraint-based product configuration models.
Calculations have many similarities with constraints in the way they are
created and maintained, but constraints are focused on limiting the number of
possible combinations and Calculations to enable mathematical expressions. One other
important difference between Constraints and Calculations is that Calculations
can work with decimal numbers. So for instance if the cable length for a home
theater system is decided by the room size it could be expressed as in the
screenshot example below.

If[ RoomSize / 1.33 > 7.5, 3.33, 6.66]

 The image below shows how Calculations are defined for a product configuration model.

A Calculation, much like other product configuration model concepts, has a name
and a description to allow you to state the purpose of the Calculation.

Calculation expressions are uni-directional and the Target attribute receives the value
from the expression. The attributes can not be of type free text.

(It is possible to use a Text with a fixed list, also known as an Enumeration, but for a Target attribute of this type the return vale has to be the Integer order of the text value in the text list)

An attribute can both be used as a target attribute and
in expressions for other target attributes. The order of the calculations will
be determined accordingly.

The Calculation expression holds the logical or mathematical expression that
represents the Calculation. The expression syntax is similar to the syntax
available for expression constraints, but a wider range of operators are
available, such as the If operator shown in the example above. Also, both
decimal numbers and unbound integers can be used both as Target attributes and
in the Calculation expression. You can type the calculation expression yourself,
or build it using the new expression editor (Screenshot below). This is also a
new capability in CU6, and I will give a more detailed introduction in my next
post.

This enhancement makes it possible to manipulate decimal numbers at run-time during
configuration; you no longer need to express this type of operation through the
dedicated application programming interface represented by the PCAdaptor class.

In the screenshot above, the Target attribute is of type decimal number and it can be
used as a property on a bill of material (BOM) line or a route operation, but
it cannot be included in a constraint or a condition. If you want to control
the inclusion of a certain BOM line or route operation, this can be achieved by
using a Target attribute of type Boolean and then using the Target attribute in
the condition on the BOM line or route operation. Please see example below:

Target attribute:                     widthLengthRatioBoolean

Calculation:                            widthAttribute > lengthAttribute

BOM line condition:                widthLengthRatioBoolean

Route operation condition:     !widthLengthRatioBoolean

In this example the widthLengthRatioBoolean attribute takes the value true if the
widthAttribute is greater than the lengthAttribute and false if it is equal to
or smaller than lengthAttribute. The BOM line condition will include the BOM
line only if the calculation returns true, whereas the route operation will
only be included if the calculation returns false.

The introduction of the Calculation concept means that an attribute can get its
value set by four different sources:

  • User, value entered by the user during the configuration
  • Default, value set in the product model
  • Calculation, value resulting from a calculation expression
  • Constraint, value set by a constraint

In the matrix below the rows state, which input sources have the ability to overwrite
an existing attribute value. Overwriting a value set by a constraint would result
in a model, which is in contradiction, and thus the configuration cannot be
finished and saved. This is indicated by the * in the Constraint column cells.

So one example here is that a calculation can overwrite a value set by a constraint,
but then the configuration cannot be saved.

Input order matrix

 

Can   be overwritten?

User

Default

Calculation

Constraint

Can
  overwrite?

User

 

Yes

Yes

Yes  *

Default

No

 

Yes

Yes  *

Calculation

No

No

 

Yes  *

Constraint

No

No

No