Blog entry by Phil Martin
This post discusses Variant Configuration modelling approaches. When I first learnt Variant Configuration it was a mad scramble to understand what it was, how the pieces integrate and end up with a usable model. My early attempts were not pretty.
In the early days before I discovered the clever people in the Variant Configuration community, I learnt from the SAP Help. If you have also learnt this way, you might have found, like me, that it shows you techniques on making a piece of a model work. It does not help with how to approach modelling. Also you will learn about pre conditions and procedures first. These will produce a model - but they can be awful. Hard to maintain, hard to scale, hard to understand.
Later I got excited about constraints. Normally many modellers learn these later as they look difficult on your first exposure. That was the case with me also many years ago. Many get unsure, even when using constraints on when to use procedures and when to use constraints.
My general rule makes this decision simple. Use constraints first where ever you can.
Constraints are great because you can collect them in Dependency Nets. A dependency net can define a common set of constraints. For example you may have complex rules that control product dimensions, layouts and selections. These can be grouped into a dependency net. With conditions in the constraints you can control when they run so is great for performance. You can see what each constraint does from the name. From my VC Essential course here is a screen shot of constraints in a dependency net.
Do you have a sense that it looks organised, that you can see by the naming the broad purpose of each constraint?
If I wanted to achieve a similar result I could use procedures and preconditions. But it would be so complicated and hard to follow that the model would be difficult to maintain, or understand.
So when do I use procedures and preconditions?
I use procedures mainly for defaults, pricing, and controlling characteristic hide and display. Here is an example from our course for these.
As you can see it helps manage your models efficiently. Each has a purpose so it makes it easy to troubleshoot and maintain.
Preconditions? Avoid where possible. In fact in S/4 HANA will probably not be needed, and in ECC6 I only use to filter multi-value characteristics.
So this blog provides a snapshot of constraints and procedures. In my VC Essentials Online training course, we go into this in some detail. The first dependency you learn is a constraint!
If your models do not use constraints then it is time to reconsider that approach. Contact me and I can provide more details on our course and a quotation.
Thanks for your time.