Проблема: мне нужно получить язык данной ячейки из куба. Ячейка определяется сгенерированным кодом MDX, который может иметь произвольный уровень косвенности в отношении вычисляемых элементов и наборов (определено в предложении WITH
). SSAS, кажется, игнорирует язык указанных членов, когда вы объявляете вычисляемый элемент встроенным в запросе.
Пример:
- Язык куба по умолчанию - 1033 (en-US)
- Куб содержит вычисленную меру, называемую
[Net Pounds]
, которая определяется как [Net Amt], language=2057
(ru-RU)
- Запрос запрашивает эту меру вместе со встроенной вычисляемой мерой, которая является просто псевдонимом
[Net Pounds]
- При непосредственном использовании мера форматируется в локали en-GB, но при использовании псевдонима мера возвращается к использованию по умолчанию куба en-US.
Вот как выглядит запрос:
WITH MEMBER [Measures].[Pounds Indirect] AS [Measures].[Net Pounds]
SELECT { [Measures].[Pounds Indirect], [Measures].[Net Pounds] } ON AXIS (0)
FROM [Cube] CELL PROPERTIES language, value, formatted_value
Запрос возвращает ожидаемые две ячейки, но использует языковой стандарт [Net Pounds]
только при непосредственном использовании.
Есть ли в SSAS опция или переключатель, которые позволят отображать информацию о локали в вычисляемых элементах? Я понимаю, что можно объявить встроенный вычисляемый элемент в определенной локали, но это потребовало бы сначала извлечь локаль из кортежа, который (поскольку член куба изолирован в схеме запроса приложения) неизвестен.