SSAS: программно и надолго создать расчетного члена - PullRequest
1 голос
/ 19 июля 2011

Я пытаюсь окончательно создать вычисляемый элемент измерения, используя команду ADXD MDX из кода C #. Следующий скрипт MDX создает элемент, но он доступен только для текущего сеанса.

CREATE MEMBER [Cube].[Dimension].[Hierarchy].[My Member Name] as 
    Aggregate({
        [Dimension].[Hierarchy].[Level].&[1], [Dimension].[Hierarchy].[Level].&[2], ...
    })   

Как его постоянно создать?

1 Ответ

1 голос
/ 21 июля 2011

Никогда не пробовал, но я нашел некоторый код AMO, который, кажется, делает это, он загружает текущий скрипт вычисления MDX из куба, добавляет его, а затем публикует его обратно.

Dim objServer As Server
Dim objDatabase As Database
Dim strDataBaseID As String
Dim objCube As Cube
Dim objMdxScript As MdxScript
Dim objCommand As Command
Dim strCommand As String
objServer = New Server
objServer.Connect(“localhost”)
objDatabase = objServer.Databases(“Adventure Works DW 2008″)
strDataBaseID = objDatabase.ID
If objDatabase.Cubes.Count > 0 Then
objCube = objDatabase.Cubes(“Adventure Works”)
If objCube.MdxScripts.Count > 0 Then
objMdxScript = objCube.MdxScripts(“MdxScript”)
”objMdxScript = objCube.MdxScripts(0) 
Else
objCube.MdxScripts.Add(“MdxScript”, “MdxScript”)
objMdxScript = objCube.MdxScripts(“MdxScript”)
End If
objCommand = New Command
strCommand = “CREATE MEMBER CURRENTCUBE.[Measures].[Multipy Measures By 20]“
strCommand = strCommand & ” AS [Measures].[Internet Sales Amount] * 20, “
strCommand = strCommand & ” VISIBLE = 1 ; “
objCommand.Text = strCommand
objMdxScript.Commands.Add(objCommand)
objMdxScript.Update()
objCube.Update()
End If
objServer.Disconnect()

Найдено на http://www.win8s.com/sql-server/sql-server-analysis-services/2011/programically-changing-calculated-members.html

Я использую AMO в другом месте, но не использовал его таким образом, поэтому сообщайте о результатах:)

...