JavaScript Editor Ajax Editor     Ajax development 



Main Page

Previous Page
Next Page

Appendix A. Sample KPI Client CodeRetrieving and Exposing Your First KPI

The following code needs to reference Microsoft.AnalysisServices.AdomdClient.dll:

string asConnectionString = "Provider=MSOLAP.3;Data
Source=localhost;Initial Catalog=Adventure Works DW";
AdomdConnection asConnection = new
AdomdConnection(asConnectionString);
try
{
asConnection.Open();
   foreach (CubeDef cubeDef in asConnection.Cubes)
      {
        if (cubeDef.Properties["CUBE_TYPE"].Value.Equals("CUBE"))
           {
             string commandText = @"SELECT { strtomember(@Value),
                                  strtomember(@Goal),
                                  strtomember(@Status),
                                  strtomember(@Trend) }
             ON COLUMNS FROM [" + cubeDef.Name + "]";

             AdomdCommand command = new AdomdCommand(commandText,
                                    this.asConnection);

             foreach (Kpi kpi in cubeDef.Kpis)
             {
                command.Parameters.Clear();
                command.Parameters.Add(new
                   AdomdParameter("Value",
                   kpi.Properties["KPI_VALUE"].Value));
                command.Parameters.Add(new
                   AdomdParameter("Goal",
                   kpi.Properties["KPI_GOAL"].Value));
                command.Parameters.Add(new
                   AdomdParameter("Status",
                   kpi.Properties["KPI_STATUS"].Value));
                command.Parameters.Add(new
                   AdomdParameter("Trend",
                   kpi.Properties["KPI_TREND"].Value));

                CellSet cellset = command.ExecuteCellSet();
                Debug.WriteLine("KPI Name:" + kpi.Name);
                Debug.WriteLine("Value:" +
                   cellset.Cells[0].FormattedValue);
                Debug.WriteLine("Goal:" +
                   cellset.Cells[1].FormattedValue);
                Debug.WriteLine("Status:" +
                   cellset.Cells[2].FormattedValue);
                Debug.WriteLine("Trend:" +
                   cellset.Cells[3].FormattedValue);
             }
           }
      }
}
finally
{
    asConnection.Close();
}


Previous Page
Next Page


JavaScript Editor Ajax Editor     Ajax development