I have been involved in several implementations that included product configurator functionality and all I can say it is one of the very powerful but not very well documented features.
I have been asked a very simple question today and when I tried to search for an answer all I could find was just a few posts on dynamics community from users asking same question with no answers. So, I decided to write this blogpost and share my findings with you.
The scenario we are covering is configure-to-order process where we configure finished product for a customer, and while we are doing configuration, we would like some attribute choices from “main” product to be inherited to the subcomponents. How can we achieve that?
I am using standard environment with Contoso demo data to demonstrate it. I have created new product configuration model for the main product called “NS-Pconf-Main”:
![](https://cleverax.files.wordpress.com/2022/02/1-product-cfg-model.png?w=631)
I have also created and linked a subcomponent to it:
![](https://cleverax.files.wordpress.com/2022/02/2-product-cfg-subcomponent.png?w=1024)
Note the subcomponent solver name “NS_Pconf_Sub”, we will use it later.
Then, I have assigned the same attribute “country” to both main component:
![](https://cleverax.files.wordpress.com/2022/02/3-product-cfg-main-attributes.png?w=1024)
and subcomponent:
![](https://cleverax.files.wordpress.com/2022/02/4-product-cfg-subcomponent-attributes.png?w=1024)
The last step is to assign Expression constraint to the main component with the following formula: country==NS_Pconf_Sub[country]. Basically we are restricting selection of the subcomponent (NS_Pconf_Sub) value with the selection of the parent (main item). It is not inheritance as such, however it propagates value from the parent to subcomponents and restricts a user to change the value for the child.
Testing the model gives following result, we select value for parent:
![](https://cleverax.files.wordpress.com/2022/02/5-product-cfg-main-test-1.png?w=603)
![](https://cleverax.files.wordpress.com/2022/02/5-product-cfg-main-test-2.png?w=612)
![](https://cleverax.files.wordpress.com/2022/02/5-product-cfg-main-test-3.png?w=596)
That’s it.
*This post is locked for comments