Modelling Utilties Products using PMU and BRF+ Rules
There have been some articles (cf. Recommendation for Utilities when Upgrading to SAP CRM 7.0 EHP3 and Recommendation: For utilities products (like electricity, gas, …) SAP strongly recommends to use PMU instead of PME!) in the SAP for Utilities space lately that recommend using the Product Modeling for Utilities (PMU) for product modelling in SAP CRM 7.0 EhP3. However, as with every new SAP feature, there is hardly any good documentation or even a tutorial available. In my opinion the documentation on the help portal (Product Modeling for the Utilities Industry – SAP Library) is only understandable if one has gone through the complete process of modelling a product at least once (including some debugging). Therefore, this blog aims to give a overview of the customizing necessary to use the PMU and also provides a simple example showing some of the available features.
Besides the recommendations by SAP to use the PMU for product modelling, there are some key features that justify the effort to switch to the PMU. In my opinion these features are:
- Product versioning and product transports
- Product components
- Modelling attribute visibility, default values and value helps using BRF+ rules.
The possibility to transport utilities products is a significant improvement over the manual creation of products in different systems. Together with product versioning this features enables a product modeling process similar to a software development process. In order to use the product transportation feature the business function CRM_UT_PROD_TRANS needs to be enabled.
Product components enable the grouping of certain product features into building blocks. These building block can then be used to model concrete products. For example, different features defining the contract duration could be grouped together and reused in all products that define a certain contract duration. Finally, the usage of BRF+ rules (Business Rule Framework plus) enables the flexible definition of attribute visibility, default values, value helps etc. without the need for custom development.
In order to being able to use the PMU and BRF+ rules for modelling products some basic customizing needs to be performed.
The first step is the creation of the required product categories and hierarchy in transaction COMM_HIERARCHY. Creating these hierarchies is usually quite cumbersome. Therefore, SAP provides the transaction CRM_ISU_PRODHIER that is able to create the required categories and hierarchies automatically. However, if there is already a product hierarchy defined in the system (which is usually the case) you will most likely need to create the required categories manually. The following screen shot shows the categories and hierarchy that is created by transaction CRM_ISU_PRODHIER.
Utilities Products and BRF+ Applications
The next step after creating the product hierarchy is to maintain the BRF+ applications required for the PMU. In order to understand the relation of BRF+ applications and product modelling it is important to understand the building blocks of utilities products in the PMU. As shown in the following image (source help.sap.com) a utilities product consist of:
- a product header
- product attributes, possibly organized in attribute groups
- modelling components
- package components, possibly organized in component groups.
Using BRF+ rules, different properties of these building blocks can be controlled. For example, the following properties can be controlled for product attributes:
- presentation control
- help texts and checks
- value helps
- value determination.
In order to define e.g. a dynamic value help for a product attribute, a BRF+ rule that returns the possible values needs to be created and assigned to the attribute.
In general each BRF+ rule needs to be created as part of a BRF+ application. In the context of the PMU these applications are defined using the customizing view CRMV_ISU_BRF_APP. This customizing view is also available in SPRO at the following location: Customer Relationship Management -> Industry-Specific Solutions -> Utilities Industry -> General Settings -> BRFplus Integration -> Maintain Utilities BRFplus Applications. The following screen shot shows the customizing view CRMV_ISU_BRF_APP.
Each BRF+ application is assigned to an application usage. The application usage defines which types of rules can be created in the PMU. For example, in order to being able to define dynamic value helps a BRF+ application of the usage type “CV” needs to be created. Currently the following usage types are available (cf. the image of the building blocks of utilities products to see which application usages control which parts of a product) :
|CD||Dynamic Value Determination|
|CG||Attribute Group Presentation Control|
|CI||Help Texts and Checks|
|CR||Attribute Presentation Control|
|CV||Dynamic Value Help|
|DC||Detailed Comparison Attributes|
|HD||Defaulting of Header Values|
|PM||Price Determination Manager|
|PV||Product Eligibilty and Compatibility|
Besides the application usages also the storage type for the BRF+ application needs to be defined. In the examples I choose customizing as the storage type. After defining a BRF+ application it also needs to be generated using the “Generation” button. Once the application is generated it is possible to define BRF+ rules in the PMU.
Activating the BRF+ Rule Editor
The final customizing step is to activate the BRF+ rule editor for the utilities industry. In order to enable this rule editor the SICF service IU_BRF_OBJ_WRAPPER – Utilities BRFplus Object Wrapper needs to be activated. Once this service is active all necessary customizing is in place. The next step is now to model a example product using BRF+ rules.
Modelling an Example Product
The example product that I will create for this blog will contain two attributes, the product variant and the contract duration. The toy business logic for these two attributes will be the following:
- Product Variant
- There will be three product variants: Basic, Standard and Premium.
- The product variant Standard will be the default value
- Contract Duration
- The contract duration will not be editable, it will instead depend on the product variant.
- The contract duration for the product variant Basic will be 1 Month, for Standard 12 Month and for Premium 24 Month.
Defining Product Attributes
The first step is to define the product attributes. While there are different possibilities to define product attribute, SAP recommends to use the Simplified Configuration Attributes for this purpose. Simplified Configuration attributes are maintained in SPRO at Customer Relationship Management -> Industry-Specific Solutions -> Utilities Industry -> Product -> Simplified Configuration -> Maintain Simplified Configuration Attributes.
To model the two product attributes I create two configuration attributes, Z_CONTRACT_DURATION and Z_PRODUCT_VARIANT. For both attributes the visibility was set to product. The visibility defines when a attribute of the simplified configuration in visible in a contract. If the visibility is set to product, the attribute is only visible if it was assigned to the selected product. Note, that the check box “BRF+ Relevant” is set to true for the attribute Z_PRODUCT_VARIANT. The reason is, that the value of Z_CONTRACT_DURATION is dependent on the value of Z_PRODUCT_VARIANT. Therefore, the value of this attribute needs to be added to the rule context so it can be used within the value determination for Z_CONTRACT_DURATION.
After creating the attributes the next step is to model the utilities product. The product modelling tool is started by selecting Sales Cycle -> Utilities Products in the role UTIL_SALES. In the following screen clicking the button “Utilities Product” creates a new product.
On the Create Product screen first the product role needs to be selected. For the example product Z_EXAMPLE_PRODUCT I selected Saleable Product. The Category-ID needs to be one of the categories created during basic customizing. In the case of a saleable product the required category is ISU_SALES. Finally, the Item Category Group for the example product is IS-U Retail.
The final step in modelling the product is to assign the product attributes to the product. Attributes are added to products using the Select Attributes screen. In this screen the available attributes are shown on the right hand side. Besides adding an attribute it is also possible to change the position of an attribute as well as to add the attribute to different groups.
BRF+ Rule Modelling
Once the attributes are added to the product it is possible to define the BRF+ rules to modify the different properties of the attributes.
First I will model the properties of the Z_PRODUCT_VARIANT attribute. To do so, I define the default value for the product. After that I create a new rule for the dynamic value help.
The rule I created is of type decision table. The following screen shot shows the final decision table. Its a simple table returning the value help consisting of the values BASIC, STANDARD and PREMIUM. After filling the decision table the rule needs to be checked an activated. Furthermore, it is also possible to simulate the rule execution using the button “Start Simulation”
Next I modelled a rule of type “Dynamic Value Determination” for the attribute Z_CONTRACT_DURATION. In order to access the value of the attribute Z_PRODUCT_VARIANT in the rule, the attribute first needs to be added to the rule context.
After adding the attribute to the context I created the decision table shown below. Additionally, I set the changeability of the attribute to read only.
Once all rules are activated and the changes to the product are saved it is possible to simulate the product using the “Simulate” button. The next screen shot shows the simulation of the example product. The value help for the product variant contains the three entries BASIC, STANDARD and PREMIUM. Once the value of product variant is set .g. to BASIC, the contract duration is automatically changed to 1.
The example product can now also be used e.g in the move in process. If the example product is selected, the product configuration looks like shown in the following screen shot. Again the value help for the product variant only contains the specified values and the contract duration is automatically calculated based on the product variant.
While introduction information regarding the PMU and BRF+ rules are not available the following links (which I found via Christiane Voigtmanns document Key Topic: SAP CRM for Utilities) provide helpful additional information:
- Utilities CRM-> EhP3-> Working with the BRFplus Editor
- Utilities CRM-> EhP3-> Working with the BRFplus Editor-> mandatory fields
After the initial customizing is in place modelling utilities products, consisting of product attributes and the corresponding business logic, is quite simple. Hopefully this blog provides a helpful introduction to the overall process.