A CRM trade promotion may generate different types of conditions. Depending on the trade spends a trade promotion will generate price determination relevant conditions such as pricing conditions (PR), rebate conditions (BO) and free goods conditions (FG). Independently from the price determination relevant conditions a trade promotion creates campaign determination conditions (CD conditions). This article contains information about CD conditions only.
Overview
CD conditions are generated for short term trade promotions only. These trade promotions, created for a period of several weeks, increase sales volume and include both price-determination-relevant conditions and conditions for campaign determination. Long term trade promotions don't create CD records. These trade promotions are created for a period of several months to one year, and do not increase sales volume and include only price-determination-relevant conditions.
As we can see in the example of a short term trade promotion the CD records are created for the planning account, for each product, and for the trade promotion validity period:
CD condition records control campaign determination when the trade promotion is executed. CD records are generated independently from the trade spends available in the trade promotion. CD records cannot be generated manually but are generated only through a life cycle change of a trade promotion, namely, released, rejected, cancelled or finished.
There are the following status dependencies:
- Status: CREATED
In status created there are no CD records created. - Status: RELEASED
When releasing the trade promotion the CD records are generated automatically. - Status: LOCK / CANCEL / CLOSE
On locking, cancelling or closing the trade promotion the CD records are deleted automatically. The trade promotion cannot be determined and used in any sales order with one of these status active. - Status: UNLOCK / UNCANCEL / UNCLOSE
When undoing one of the above status, system behaves like the trade promotion gets newly released and the CD records are re-generated. - Status: SIMULATE / UNSIMULATE
When setting the simulation status the CD records will be created as well, however the trade promotion won't be used in any sales order yet. When releasing a trade promotion from simulation status the CD records created from the simulation will be deleted and newly created.
The CD record changes triggered by status is called in CL_CRM_MKTPL_APPL_BASE_SERVICE=>CHECK_STATUS_CHANGE_COND.
Within an already released promotion subsequent changes to the PRODUCT or DATES will automatically be reflected in the CD records. This is because Product and Date fields are part of the CD condition key fields. The following graphics will show what happens on a so called date shift:
When the trade promotion execution date is now changed, the existing CD records updated according to the new execution dates:
The CD date shift logic is implemented in CL_CRM_MKTGS_COND_MAINT=>SHIFT_CONDITION_DATES.
There is a similar design on changing the product dimension of the trade promotion. When deleting or excluding a product from a trade promotion, the CD records generated for that one product are deleted, when changing the product effective dates the CD records are re-generated. When adding a new product to the trade promotion or removing the excluded flag for an existing product CD records are generated for the affected product. The same design is valid for all product dimensions, including products and product categories. For product level this logic is implemented in CL_CRM_MKTPL_TPM_PROD_ITEM=>SET_ATTRIBUTES.
Customizing
CD records will be generated based on the following customizing:
Customer Relationship Management
Trade Promotion Management
Trade Promotions
Condition Maintenance
Define Condition Generation
CD records are created for short term promotions only. The condition generation type therefore needs to be defined as short term promotion:
The CD specific customizing is available in the 'Campaign Determination Condition Type' dialog:
This path contains the type of the CD records to be generated and the conflict resolution. The conflict resolution defines what happens in case of similar existing CD records.
The 'Conditions Table' dialog holds the mapping for the account dimension and product dimension to the condition table that is used for generating the CD records.
The condition tables are available in the following customizing path:
Customer Relationship Management
Master Data
Conditions and Condition Technique
Condition Technique: Basics
Create Condition Tables
The condition table contains the combination of fields used for the coniditons generation.
The CD conditions customizing is linked to the condition generation type. The condition generation type is mapped to a the trade promotion type and the sales organization, distribution channel and division data. The mapping is done in the following customizing:
Customer Relationship Management
Trade Promotion Management
Trade Promotions
Condition Maintenance
Assign Condition Generation Types
Account Dimension
The trade promotion can be created for different account dimensions. The promotion can be created for an account, for an account hierarchy and a target group. For account dimension the CD records are always generated on the account level. For account hierarchy and target group dimension the CD records are either created for the whole account hierarchy or target group, or are created for each account individually. The account hierarchy and the target group are then exploded to all members.
Depending on the account dimension and the conditions table used there is the following design:
- CD records created on BPH level
In that case a condition table is used that generates the conditions on target group level - CD records created on TG level
In that case a condition table is used that generates the conditions on target group level - CD records are created for each target group member, the TG is exploded to retrieve the sold to parties
In that case a condition table is used that generates the conditions on account level
Conflict Resolution
In case a newly created trade promotion overlaps with existing trade promotion, there is the following design to handle overlapping CD records. The conflict resolution provides the following options:
There is one existing trade promotion valid for a certain period.
In case another trade promotion created for an overlapping time period is released there are the following conflict resolution options:
- 01: New condition records always have priority
The system creates new condition records. The new condition records overwrite existing condition records if they overlap. - 02: No new records are created if there is a conflict
The system does not create new condition records if the new condition records overlap with existing records. - 03: New condition records are created if they do not overlap
The system creates new condition records so far as they do not overlap with existing condition records.
The CD records for the newly created campaign are created for non overlaping periods only.
The conflict resolution logic is implemented in CL_CRM_MKTGS_COND_MAINT=>RESOLVE_OVERLAPS and CL_CRM_MKTGS_COND_MAINT=>RESOLVE_VALID_PERIODS. There is some different design for short term trade promotions and long term trade promotions. Long term trade promotions always use conflict resolution 01 whereas short term trade promotions use the conflict resolution from the condition generation type customizing.
The CD conflict resolution is different to the trade promotion overlap check. The CD conflict resolution comes into play once the TP overlap check allows the generation of a trade promotion that has similar CD records than an earlier generated trade promotion.
Additonal Useful Information
Using report CRM_MKTPL_COND_IF_R001 trade promotions can be released from the backend in order to generate CD conditions. This will however work for unreleased trade promotions only. As mentioned there is no way to automatically re-generated CD conditions.
This document should provide an overview about CD conditions in trade promotions. In case you feel anything is missing, or anything is unclear please let me know.