ChristianW OneStream Employee
OneStream Employee
5 years agoCopy data from another cube (with different dimensionality)
 Is there an easy way, to copy data from one cube to another (with different dimensionality) 
- 5 years agoYes, there are some function in the financial business rules api to support this: api.Data.ConvertDataBuffer api.Data.ConvertDataBufferExtendedMembersWith the first function, you define the mapping between the cubes on your own, the second one uses the extended dimension definition for the mapping. 
- 5 years agoHere is a sample for ConvertDataBufferExtendedMembers Dim sourceDataBuffer As DataBuffer = api.Data.GetDataBufferUsingFormula("cb#CubeName:A#All") targetDataBuffer = api.Data.ConvertDataBufferExtendedMembers("CubeName", "ScenarioName", sourceDataBuffer) Dim expDestInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo($"C#{api.Pov.Cons.Name}") api.Data.SetDataBuffer(targetDataBuffer , expDestInfo)Here is a sample for ConvertDataBuffer Dim dataBufferConvInfo As New DataBufferConversionInfo Dim dataBufferConvDimInfo As New DataBufferConvDimInfo Dim dataBufferMapItem As New DataBufferConvMapItem(DataBufferConvType.MapSourceMembersToFirstDestMember, "UD1#Top.Base", "UD1#None", 1) dataBufferConvDimInfo.MapItems.add(dataBufferMapItem) dataBufferConvInfo.UD1Info = dataBufferConvDimInfo dataBufferConvDimInfo = New DataBufferConvDimInfo() dataBufferMapItem = New DataBufferConvMapItem(DataBufferConvType.MapSourceMembersToFirstDestMember, "UD2#Top.Base", "UD2#None", 1) dataBufferConvInfo.UD2Info = dataBufferConvDimInfo Dim sourceDb As DataBuffer = api.Data.GetDataBufferUsingFormula("cb#CubeName:A#All") Dim targetDb As databuffer = api.Data.ConvertDataBuffer("CubeName", "ScenarioName", dataBufferConvInfo, sourceDb) Dim expDestInfo As ExpressionDestinationInfo = api.Data.GetExpressionDestinationInfo($"C#{api.Pov.Cons.Name}") api.Data.SetDataBuffer(targetdb, expDestInfo)