Я настраиваю новый куб в службах Analysis Services и использую мастер Business Intelligence для решения проблем с конвертацией валюты. Теперь все это работает отлично, деньги конвертируются на уровне листа и суммируются для отображения в выбранной пользователем валюте отчетности.
Моя проблема сейчас заключается в расчете ответственности. Что касается ответственности, мне нужно суммировать деньги в каждой валюте, а затем конвертировать их по последнему курсу на конец дня. В качестве меры LastNonEmpty у меня есть показатель «Конец дня», но я не вижу, как избежать преобразования на уровне листа, как показано ниже:
// This is the Many to One section
// All currency conversion formulas are calculated for the pivot currency and at leaf of the time dimension
Scope ({ Measures.[Money] } );
Scope( Leaves([Date]) ,[Reporting Currency].[GBP], Leaves([Currency]));
// Convert Local value into Pivot currency for selected Measures that must be converted with Measure rate [End Of Day Rate]
Scope( { Measures.[Money] } )
This = [Reporting Currency].[Local] * Measures.[End Of Day Rate];
End Scope;
End Scope;
// This is the One to Many section
// All currency conversion formulas are calculated for the non pivot currency and at leaf of the time dimension
Scope( Leaves([Date]) , Except([Reporting Currency].[Currency].[Currency].Members, {[Reporting Currency].[Currency].[Currency].[GBP], [Reporting Currency].[Currency].[Currency].[Local]}));
// This section overrides the local values with the Converted value for each selected measures needing to be converted with Measure rate [End Of Day Rate]…
// LinkMember is used to reference the currency from the source currency dimension in the rate cube.
Scope( { Measures.[Money] } );
This = [Reporting Currency].[Currency].[GBP] / (Measures.[End Of Day Rate], LinkMember([Reporting Currency].[Currency].CurrentMember, [Currency].[Currency]));
End Scope;
End Scope; // Leaves of time, all reporting currencies but local and pivot currency
End Scope; // Measures
Мера [Деньги] выплачивается в разных валютах, и каждая валюта привязывается к измерению валюты и курсу на конец дня.
Какой мой лучший план для расчета ответственности? Я подумываю повторить меру [Деньги], но, кажется, расточительно иметь дополнительные меры только для того, чтобы избежать конвертации валюты. Плюс в реальном кубе есть еще несколько мер, которые требуют вычисления, поэтому это не будут просто дополнительные один.
Кто-нибудь еще сталкивался с чем-то подобным?