Technical Articles
Power of Condition Characteristic in the Distribution By Reference Data Planning Function
How condition characteristic can be useful in “Distribution By Reference Data” planning function
I had been working on a requirement to distribute the revenue recognized in a month to all the months in which the cost incurred in order to generate the respective revenue.
For example; if I have received the payment on an invoice in Oct 2019 but the product was being built from past 6 months and the cost was recognized every month then revenue should be distributed from Oct 2019 to past 6 months based on cost recognized in each month.
The above example is better explained in below table.
Before Distribution
Product | Month | Invoice No | Cost Account | Revenue | Cost |
P1 | Oct 2019 | 00001 | 1000 | ||
P1 | Apr 2019 | C0001 | 100 | ||
P1 | May 2019 | C0001 | 200 | ||
P1 | Jun 2019 | C0001 | 300 | ||
P1 | Jul 2019 | C0001 | 400 | ||
P1 | Aug 2019 | C0001 | 500 | ||
P1 | Sep 2019 | C0001 | 600 |
After Distribution
Product | Month | Invoice No | Cost Account | Revenue | Cost |
P1 | Oct 2019 | 00001 | 0 | ||
P1 | Apr 2019 | C0001 | 100 | ||
P1 | May 2019 | C0001 | 200 | ||
P1 | Jun 2019 | C0001 | 300 | ||
P1 | Jul 2019 | C0001 | 400 | ||
P1 | Aug 2019 | C0001 | 500 | ||
P1 | Sep 2019 | C0001 | 500 | ||
P1 | Apr 2019 | 00001 | 50 | ||
P1 | May 2019 | 00001 | 100 | ||
P1 | Jun 2019 | 00001 | 150 | ||
P1 | Jul 2019 | 00001 | 200 | ||
P1 | Aug 2019 | 00001 | 250 | ||
P1 | Sep 2019 | 00001 | 250 |
We used BW Integrated Planning function called “Distribution By Reference Data” which is delivered by SAP as a standard function.
We configured Product as matching characteristic and rest all characteristic remained as ‘Fields to Be Changed’. The key figure to be distributed was Revenue and the Reference Key Figure was Cost.
The challenge we were facing here was that the Invoice No was coming blank and Cost Account was getting filled in in the distributed set as shown below.
Product | Month | Invoice No | Cost Account | Revenue | Cost |
P1 | Oct 2019 | 00001 | 0 | ||
P1 | Apr 2019 | C0001 | 100 | ||
P1 | May 2019 | C0001 | 200 | ||
P1 | Jun 2019 | C0001 | 300 | ||
P1 | Jul 2019 | C0001 | 400 | ||
P1 | Aug 2019 | C0001 | 500 | ||
P1 | Sep 2019 | C0001 | 500 | ||
P1 | Apr 2019 | C0001 | 50 | ||
P1 | May 2019 | C0001 | 100 | ||
P1 | Jun 2019 | C0001 | 150 | ||
P1 | Jul 2019 | C0001 | 200 | ||
P1 | Aug 2019 | C0001 | 250 | ||
P1 | Sep 2019 | C0001 | 250 |
In order to overcome this; we kept Invoice No. and Cost Account as ‘Condition Characteristic’. Because if we keep them as ‘Fields To Be Changed’ then they take the value from Reference data set which is Cost Account data in this case.
Now, as soon as we convert Invoice No and Cost Account into ‘Condition Characteristic’; they become matching characteristic to reference data set i.e. reference data set must match the characteristic values from the record to be distributed. However, the record to be distributed was having Cost Account = BLANK and Invoice No. = ‘00001’. Therefore, it was not matching with reference data set and hence it was not distributing anything.
Finally, we found that the matching criteria for ‘Condition Characteristic’ can be overridden in the ‘Reference Data Selection’. Hence, we put a condition in the ‘Reference Data Selection’ as follows;
Invoice No. = #,
Cost Account Excl. #
By doing the above configuration, the function was absolutely working fine.
RESULT
‘Condition Characteristic’ can not only be used for defining conditions on input data set but also for reference data set in order to retain the original characteristic value post distribution.