Recently, when we update the dimension elements, we find the value of the cube which includes the dimension are missing. So we need to explore which time moment cause this. Please see below experiment:
Firstly, prepare a cube which have some values.
Secondly, prepare a TI. In Prolog area, the logic is to delete element ‘P020’ in ‘z-CX_Test_Acct’ dimension. In Metadata area, the logic is to output the index of ‘P020’ in ‘z-CX_Test_Acct’ and the value of [‘WS1’,’Actual’,’P020’,’MstA’]. In Data area, the logic is the same as Metadata area. And in Epilog area, the logic is just to output the index of ‘P020’ in ‘z-CX_Test_Acct’. Please see the TI:
Thirdly, run the TI, and find the result:
We find the error in Data area, it runs OK in Metadata area, even though there is same logic in these two areas. Please view the output file from Metadata area.
Base on the result, we can get the conclusion that in Metadata area, the server still have the cube value. However in data area, the server realizes the deleting operation and updates cube values. So we believe that the commit of deleting operation happens after running through the logic in Metadata area and before running the logic in Data area.
By the way, if you write the logic about updating metadata in Data area or Epilog area, it will make no sense. The logic about updating metadata must be written in Prolog area or Metadata area. Please see below example:
There is no ‘P020’ element in ‘z-CX_Test_Acct’ dimension now.
Writing the logic about updating metadata like adding element in dimension in Data area.
Running the TI and observing the Result:
We find the ‘P020’ element is not included in the dimension.