The formula is put in the "Entity Curr Adjs" part of the Sub Calculate.
The expression is the following and apply for one entity (Holding method) I filtered previously and the ICP Entity has proportionnal method with 50% rate:
HS.Exp "A#5420.I#[ICP None].C1#REC.C2#[None].C3#[None].C4#Recla_IAS_Aut_RetS_5=
The data I would like to retrieve is the one in Contribution Value as I put on the source part of the expression.
And yet, the data I get is the one of the Entity Currency and Proportion Value, which is different because the ICP has proportionnal method (50%) and the Contribution value is the result of Proportion - Elimination values.
To sum up: I obtain a data of 50 instead of 25.
I checked that the data I see in my form corresponds to the source parameters but it seems that it does not take into account the Value parameter.
Could it be that it is not possible to use a Contribution Value source for an Entity Currency Adjs destination?
thanks for your answer.
I have not tried with dynamic account (I could try but only within a few days).
I was considering that the solution could be that the Value member "Contribution" does not store data (I checked it in documentation) so that it cannot be used in the source part of an HS.EXP. or at least the source value by default would be another one.
I could try using Proportion and Elimination Value members (they store data)
By hinting at the order, could you give me more details?
If I am reading you correctly, you are trying to read from the contribution value to the enity curr adj value. (You most certainly cannot write to the contribution level unless you use a dynamic account.) I am suggesting that the rule you have written is calling for the contribution level before the calculations have been performed. This is why I suggest the dynamic account. This calculates the rule when you call for the amount. It is not stored. Therefore a limitation is that the dynamic account results cannot then be used on the right side of any equation.
Below is from the HFM administrator manual:
Rule Execution During ConsolidationDuring the consolidation process_
rules are executed in a pre-defined sequence. For each base child of a given parent, the calculation sequence for the various elements in the Value dimension takes place in this order:
1.Accounts defined as IsCalculated in the metadata are cleared in EntityCurrency.
2.Accounts defined as IsCalculated in the metadata are cleared in EntityCurrAdjs.
3.The Sub Calculate() routine is executed on EntityCurrency.
4.The Sub Calculate() routine is executed on EntityCurrAdjs.
5.The ParentCurrency data is cleared.
6.Default translation is applied to all accounts defined as Revenue, Expense, Asset, Liability for the total amount of EntityCurrency and EntityCurrAdjs. For accounts with attribute Flow or Balance, the total amount of EntityCurrency and EntityCurrAdjs is rolled up into Parent Currency.
7.The Sub Translate() routine is executed.
8.The Sub Calculate() routine is executed on ParentCurrency.
9.Accounts defined as “IsCalculated” in the metadata are cleared in ParentCurrAdjs.
10.The Sub Calculate() routine is executed on ParentCurrAdjs.
11.Accounts defined as “IsCalculated” in the metadata are cleared in ParentAdjs
12.The Sub Calculate() routine is executed on ParentAdjs.
13.Proportion and Elimination data are cleared.
14.Default consolidation and eliminations are performed for the total amount of Parent and ParentAdjs.
15.The Sub Calculate() routine is executed on Proportion and Elimination.
16.Accounts defined as “IsCalculated” in the metadata are cleared in ContributionAdjs.
17.The Sub Calculate() routine is executed on ContributionAdjs.
After the previous steps have been repeated for each base child, this sequence takes place for the parent entity:
1.The EntityCurrency data is cleared.
2.The sum of the total of Proportion, Elimination, and ContributionAdjs for every child is written into EntityCurrency of the parent entity.
3.The Sub Calculate() routine is executed on EntityCurrency.
4.Accounts defined as “IsCalculated” in the metadata are cleared in EntityCurrAdjs.
5.The Sub Calculate() routine is executed on EntityCurrAdjs.
If a parent is further consolidated into another parent, this sequence continues with step 5 from the child consolidation sequence.
As for the dynamic account I think I could not use it since it is an input account (that is why I put the reclassification in a special Custom4).
About the the fact that Contribution is stored value membe, as I said in a previous post, it cannot be the explanation because I have already done something similar with Entity Currency Total, which is also on the fly value member. It works.
Respect with the order, I was mistaken, I do the reclassification in Contribution Adjs.
I see another problem in what you're trying to do. First, let me state what you're trying to establish: you are trying to get a value from one entity (say A) to another entity (say B), be it at [Proportion], [Elimination], [Contribution], ...
My question is: how can you know that during the consolidation process, by the time your code runs on B, A has already been processed and [Proportion], [Elimination] are not empty (or contain values from a previous consolidation run)?
The answer is "You don't". Theoretically, you have no control as per the order in which entities are calculated/consolidated during the process. Even more complex is the thing that if you have a multi-core machine, more than one entities may run in parallel, but still you cannot force A to run before B. I have done some tests and I've seen that in a one processor setting the order that entities enter in the process of consolidation matches the order you have placed them in the consolidation tree in metadata. Still this thing is not documented as far as I know and therefore you cannot rely on this.
Finally, I have also seen that in a simple case (B pulls from A), if you run consolidation twice, then you definitely get correct values. By the time you make a change in A, you have to run consolidation twice again to make sure that you get the correct data. I believe that you see that what I'm describing is good for experimenting but not for releasing to a client.
I tend to think of such a design, as a practice to avoid.