Tuesday, November 3, 2009

SSAS NamedSet for FiscalTime and CalendarTime

Here i have described some the useful Fiscal and Calendar NamedSet
  1. Last Years
  2. Last Quartes
  3. Last Months
  4. Current Month
  5. LastDays
  6. Current Fiscal Months
  7. Fiscal Months
  8. Last Calendar Month
Calendar Time Namedset
1. Last Years:
ORDER(
LASTPERIODS(3, StrToMember("
[Date].[Time].[Year].&["
+ Format(Now(),"yyyy")
+"]"
))
,[Date].[Time].CURRENTMEMBER.PROPERTIES("ID", TYPED), BDESC)


2. Last Quarters


ORDER(
LASTPERIODS(4, StrToMember("[Date].[Time].[Year].&["
+ Format(Now(), "yyyy")
+ "].&["
+ Format(Now(), "yyyy")
+ "]&["
+ cstr(datepart( "q", Now()))
+ "]"))
,[Date].[Time].CURRENTMEMBER.PROPERTIES("ID", TYPED), BDESC)


3.LastMonthsORDER(
LASTPERIODS(6, StrToMember("
[Date].[Time].[Year].&["
+ Format(Now(),"yyyy")
+"].&["
+ Format(Now(), "yyyy")
+"]&["
+ cstr(datepart("q", Now()))
+"].&["
+ Format(Now(), "yyyy")
+"]&["
+ Format(Now(),"MM")
+"]"
))
,[Date].[Time].CURRENTMEMBER.PROPERTIES("ID", TYPED), BDESC)


4.Current Month:

StrToMember("
[Date].[Time].[Year].&["
+ Format(Now(),"yyyy")
+"].&["
+ Format(Now(), "yyyy")
+"]&["
+ cstr(datepart("q", Now()))
+"].&["
+ Format(Now(), "yyyy")
+"]&["
+ Format(Now(),"MM")
+"]"
)


5. LastDays


ORDER(
LASTPERIODS(30, StrToMember("
[Date].[Time].[Year].&["
+ Format(Now(), "yyyy")
+ "].&["
+ Format(Now(), "yyyy")
+ "]&["
+ cstr(datepart( "q", Now()))
+ "].&["
+ Format(Now(), "yyyy")
+ "]&["
+ Format(Now(), "MM")
+ "].&["
+ Format(Now(), "dd")
+ "]"
))
,[Date].[Time].CURRENTMEMBER.PROPERTIES("ID", TYPED), BDESC)


6.Current Fiscal Months



ORDER(
StrToMember("[Date].[Fiscal Time].[Fiscal Year].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "]&[1].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "]&[1]")
:
StrToMember("[Date].[Fiscal Time].[Fiscal Year].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "]&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN CSTR(CINT(DATEPART("q", Now())) - 1)
ELSE CSTR(CINT(DATEPART("q", Now())) + 3) END + "].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "]&[" +
CASE WHEN Format(Now(),"MM") >= 4 THEN CSTR(CINT(Format(Now(),"MM")) - 3)
ELSE CSTR(CINT(Format(Now(),"MM")) + 9) END + "]"
)
,[Date].[Fiscal Time].CURRENTMEMBER.PROPERTIES("ID", TYPED), DESC)


7. Fiscal Months
ORDER(
LASTPERIODS(3, StrToMember("[Date].[Fiscal Time].[Fiscal Year].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "]&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN CSTR(CINT(DATEPART("q", Now())) - 1)
ELSE CSTR(CINT(DATEPART("q", Now())) + 3) END + "].&[" +
CASE WHEN CINT(Format(Now(),"MM")) >= 4 THEN Format(Now(), "yyyy")
ELSE CSTR(CINT(Format(Now(), "yyyy")) - 1) END + "]&[" +
CASE WHEN Format(Now(),"MM") >= 4 THEN CSTR(CINT(Format(Now(),"MM")) - 3)
ELSE CSTR(CINT(Format(Now(),"MM")) + 9) END + "]"
)),[Date].[Fiscal Time].CURRENTMEMBER.PROPERTIES("ID", TYPED), DESC)


8. Last Calendar Month


STRTOMEMBER("

[Date].[Time].[Year].&["

+ Format(Now(),"yyyy")

+"].&["

+ Format(Now(), "yyyy")

+"]&["

+ cstr(datepart("q", Now()))

+"].&["

+ Format(Now(), "yyyy")

+"]&["

+ Format(Now(),"MM")

+"].PREVMEMBER"

)

Friday, October 9, 2009

PPS Error Msg : Unable to connect to Remote server

I got the follwing err Message after i did the PPS Instalation.
"
PPS - Error Code - 3008 Message : A configuration error has occurred( Unable to connect to Remote server)
"
Detail Error Msg
Event code: 3008 Event message: A configuration error has occurred. Event time: 10/8/2009 12:09:23 PM Event time (UTC): 10/8/2009 7:09:23 PM Event ID: 6a954f77e2cf4aa1a756c50f9cfeb8ef Event sequence: 1 Event occurrence: 1 Event detail code: 0 Application information: Application domain: /LM/W3SVC/774163112/Root/WebService-9-128995025636718750 Trust level: Full Application Virtual Path: /WebService Application Path: C:\Program Files\Microsoft Office PerformancePoint Server\3.0\Monitoring\PPSMonitoring_1\WebService\ Machine name: 25070_2_165763 Process information: Process ID: 4200 Process name: w3wp.exe Account name: NT AUTHORITY\NETWORK SERVICE Exception information: Exception type: HttpException Exception message: Could not load file or assembly 'System.Web.Extensions, Version=1.0.61025.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35' or one of its dependencies. The system cannot find the file specified. (C:\Program Files\Microsoft Office PerformancePoint Server\3.0\Monitoring\PPSMonitoring_1\WebService\web.config line 25) Request information: Request URL: http://74.3.234.9:40000/WebService/PmService.asmx Request path: /WebService/PmService.asmx User host address: 74.3.234.9 User: Is authenticated: False Authentication Type: Thread account name: NT AUTHORITY\NETWORK SERVICE Thread information: Thread ID: 1 Thread account name: NT AUTHORITY\NETWORK SERVICE Is impersonating: False Stack trace: at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters) Custom event details:
For more information, see Help and Support Center at http://go.microsoft.com/fwlink/events.asp.
"

I refered the following link it solve my issue.

Block Question:
http://74.125.153.132/search?q=cache:onAi3XCJ0ocJ:social.technet.microsoft.com/forums/en-US/ppsmonitoringandanalytics/thread/c83614c0-547f-4243-b6c5-1c04629c9b14/+PPS+%2B+Event+code+3008+%2B+Event+message:+A+configuration+error+has+occurred.&cd=2&hl=en&ct=clnk&gl=in

Answer:
http://blogs.msdn.com/fooshen/archive/2008/10/18/performance-point-server-2007-and-ajax-on-sharepoint.aspx

Unable to connect to SQL Server 2005 Analysis Services from Dashboard Designer

I got the folowing error Msg in Dashboard Designer after i did the PPS Instalalation.
"
The PerformancePoint Server could not connect to the specified data source. Verify that either the current user or application pool user has Read permissions to the data source, depending on your security configuration. Also verify that all required connection information is provided and correct."
Please refer this link for more detail. It solve my issue.
http://74.125.153.132/search?q=cache:thQqD6WhI7AJ:social.technet.microsoft.com/Forums/en-US/ppsmonitoringandanalytics/thread/a1633bfb-6dad-49de-9a8e-0d130e586f10+PPS+could+not+connect+to+Sql+server+Analysis+Server+Database&cd=1&hl=en&ct=clnk&gl=in

Answer:
If everything is installed on the same server then you could setup these local accounts that you have running the Application Pools to have the proper read permissions to the SSAS database by adding them into a Role with Read Definition and Read-only access to the cube(s). If you want to pass your credentials then you need to go into the web.config files in the Web Service, Preview, and SharePoint directories and modify the Bpm.ServerConnectionPerUser value in the AppSettings to True so that the credentials of the current logged in user will be passed to the database.If you are in a distributed environment then you will have to look at configuring Kerberos, Configuring Kerberos Delegation with PerformancePoint Monitoring Server, or using the CustomData option outilined here - PPS Data Connection Security with CustomData.

Wednesday, May 20, 2009

MDX CrossJoin Rows and Columns

This Sample will help you to understand How to applay Cross Join for Dimension meber( Rows and Columns)

Measures:
Payment Amt, Curr Payment

Rows : Vendor Name, Vendor Group are Rows
Columns : Month Name.

To Find Grand Total for Each Group :

[Vw Payment Details].[Vend Details].[Vend Details] .Members
[Vw Payment Details].[VENDGROUP].[VENDGROUP].Members
This Will give the value for each VendorName ,Vendor Group and Grand Total of Each Vendor Group.
Note ** But It will not give the [Grand Total] All the Vendor Groups

To Find Grand Total for ALL Group

1. Create Named Members
MEMBER [Vw Payment Details].[Vend Details].[Grand Total]ASAGGREGATE([Vw Payment Details].[Vend Details].[Vend Details] )MEMBER [Vw Payment Details].[VENDGROUP].[Grand Total]ASAGGREGATE([Vw Payment Details].[VENDGROUP].[VENDGROUP] )

2. Call the Member Inside the Query

({[Vw Payment Details].[Vend Details].[Grand Total]}
,{[Vw Payment Details].[VENDGROUP].[Grand Total]})









WITH
MEMBER [Vw Payment Details].[Vend Details].[Grand Total]
AS
AGGREGATE([Vw Payment Details].[Vend Details].[Vend Details] )
MEMBER [Vw Payment Details].[VENDGROUP].[Grand Total]
AS
AGGREGATE([Vw Payment Details].[VENDGROUP].[VENDGROUP] )
SELECT
CROSSJOIN(
{ [Time].[Fiscal Period].[Year].&[2009]&[2009 - 2010].&[2]&[May]
, [Time].[Fiscal Period].[Year].&[2009]&[2009 - 2010].&[1]&[April] }
, { [Measures].[Payment Amt], [Measures].[Cur Payment Amount] }
)
ON COLUMNS
,
{
CROSSJOIN({[Vw Payment Details].[Vend Details].[Vend Details] AS [Vendor Name] }
,{[Vw Payment Details].[VENDGROUP].[VENDGROUP] AS [Vendor Group]}
)
,(
{[Vw Payment Details].[Vend Details].[Grand Total]}
,{[Vw Payment Details].[VENDGROUP].[Grand Total]}
)
}
ON ROWS
FROM [Axapta Payment Details]

Friday, May 15, 2009

SSAS MDX Query Last Transaction Date , Count Payment Due

This Post will help you to Find the Payment Due of Vendors.
Here the Idea is Find the Last Transaction date and Last Date of Seleted Period Then subtract between this.
This is done using -[Measure].[Day Count] Row Count of DimDate.Date column
And i explained some different behaviour of this.

1. Find LastDate Over Period(Selected Time Period)
This Measure is Derived from Date Dimension Table.
Ex. Select Year 2009 in filter and select some Months in column then
Result is :
January : February :March
31/1/2009 ;28/2/2009 ;31/3/2009


TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0).Name

2. Last Transaction Date Over Period

Ex: Selected Month is Jan then
(Date >= Jan - 1 - 09 and Date <= Jan - 31 -09)

TAIL(NonEmpty(EXISTING [Date].[Date].MEMBERS, [Measures].[Amount])).ITEM(0).NAME

3. Last Transaction Date From Current Period to Previous Periods
Ex: Selected Month is Jan then (Date <= Jan - 31 -09)
Find the Transaction Date Between
1. All the Previous Periods : NULL
2. Tail Member : TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0)
3. Look up Measure Between this Date and get the Tail Member

TAIL(
FILTER(
(NULL : TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0))
, NOT ISEMPTY([Measures].[Amount])
)
).ITEM(0).Name


4. Count Payment Due
Count Date Between Last day of Each Period to Last Transaction Date of Previous Period to the Current Period
Step 1:
First Find the [Measures].[DayCount]
[Measures].[DayCount] :- Count Rowl Measure from DimDate.Date Column
Step2:

I).From : Last Date of Period (Jan - 31 -09)
II). To: LastTransactionDate(NULL : (all previous Member) and Date <= Jan - 31 -09)

III). Sum of DayCount Between the Period

SUM(
{ TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0)
:
TAIL(
FILTER(
(NULL : TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0))
, NOT ISEMPTY([Measures].[Amount])
)
).ITEM(0)
}
,[Measures].[DayCount]
)

5. Count Payment Due from Last Transaction Date To Last Date of current Period
Ex:
1.From : Last Date of Period (Jan - 31 -09)
2. To: LastTransactionDate(Date >= Jan - 1 - 09 and Date <= Jan - 31 -09)
3. Sum of DayCount Between the Period


SUM(
{ TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0)
:
TAIL(NonEmpty(EXISTING [Date].[Date].MEMBERS
, [Measures].[Amount])).ITEM(0)
}
,[Measures].[DayCount]
)



****************
Sample Query
****************

WITH
MEMBER [Measures].[PaymentDue Previous Period] AS
SUM(
{ TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0)
:
TAIL(
FILTER(
(NULL : TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0))
, NOT ISEMPTY([Measures].[Amount])
)
).ITEM(0)
}
,[Measures].[DayCount]
)
MEMBER [Measures].[PaymentDue Over Period] AS
SUM(
{ TAIL(EXISTING [Date].[Date].[Date].MEMBERS).ITEM(0)
:
TAIL(NonEmpty(EXISTING [Date].[Date].MEMBERS
, [Measures].[Amount])).ITEM(0)
}
,[Measures].[DayCount]
)

SELECT {[Measures].[PaymentDue Previous Period]
,[Measures].[PaymentDue Over Period]
}
ON ROWS,
[Date].[Month Name].MEMBERS
ON COLUMNS
FROM [Vendor Ledger]
WHERE ([Date].[Year].&[2008],[Vendor].[Vendor].&[10006])


In this example [Measures].[PaymentDue Over Period] will fit in to real time

** Any Feeback about this Post are welcome **












Create Dynamic Time Dimension Named Set in SSAS

This post will explain that How to create the Time Dimension Dynamic named set using CurrentDate .

Most of the people might have know about this. This post is for self reference and sharing the knowledge.

In My cube I have Calandar Time Hierarchy
My Hierarchy is
[Year] -> [Quarter] -> [Month] -> [Day]
Here i explained some Named Set.

1. [Last years]
2. [Last Quarter]
3. [Last Months]
4. [Last Days]

Step1: First Find the Time Dimension Hierarchy Member from your cube, and select the Hierarchy member inside your Query Window.
MemberName of Year,Quarter,Month,Day :
[Date].[Time].[Year].&[2009]
[Date].[Time].[Year].&[2009].&[2]
[Date].[Time].[Year].&[2009].&[2].&[5]
[Date].[Time].[Year].&[2009].&[2].&[5].&[15]

Now you will get this query.

Step2:
Frame the string member as it is in the step1. then create the Name set by using [New Named Set] in the cube Calculation Tab.

The following link will help you to derive DateParts from Current Date.
http://www.ssas-info.com/analysis-services-faq/27-mdx/78-how-write-mdx-query-that-uses-execution-datetime-now-as-parameter

1. [Last Years]

LASTPERIODS(3, StrToMember("[Date].[Time].[Year].&["
+ Format(Now(), "yyyy")
+ "]"))

2.[Last Quarter]

LASTPERIODS(4, StrToMember("[Date].[Time].[Year].&["
+ Format(Now(), "yyyy")
+ "].&["
+ cstr(datepart( "q", Now()))
+ "]"))

3. [Last Month]

LASTPERIODS(6, StrToMember("[Date].[Time].[Year].&["
+ Format(Now(), "yyyy")
+ "].&["
+ cstr(datepart( "q", Now()))
+ "].&["
+ Format(Now(), "MM")
+ "]"))

4.[Last Day]


LASTPERIODS(30, StrToMember("[Date].[Time].[Year].&["
+ Format(Now(), "yyyy")
+ "].&["
+ cstr(datepart( "q", Now()))
+ "].&["
+ Format(Now(), "MM")
+ "].&["
+ Format(Now(), "dd")
+ "]"))

here you can define the lastperiod as your wish.

** Any feedback about this Article are Welcome **

Tuesday, April 21, 2009

Parsing different type of Column Delimited in SSIS FlatFile Data Source.

I followed this Article to achive my requirement. Very nice and Interesting.
Parsing the diferent type of Column Delimited(Comma, tab,Colon, SemiColon) in SSIS for the Flat File Source.
http://www.sql-server-performance.com/articles/dba/import_text_files_ssis_p1.aspx

Thursday, February 12, 2009

Create Named Set for Dimension Member in MDX.

WITH
MEMBER [Dim Project].[Project Type].[T&M & FixedBid] AS '[Dim Project].[Project Type].&[FIXED BID] + [Dim Project].[Project Type].&[T & M PROJECTS]'
MEMBER [Measures].[NonBillable Hours] AS
([Measures].[Duration In Hours] ,([Dim BillableType].[Billable Type].&[BILL]
,[DimBillable].[Billable].&[0],[T&M & FixedBid]))
SELECT {
[Measures].[NonBillable Hours]
}
ON ROWS,
[Dim Employee].[Employee Name] ON COLUMNS
FROM [Resource Utilization]

Sunday, January 18, 2009

SSAS Cube Processing Using .Net CLR StoredProcedure

There are 3 ways to Process the SSAS 2005 Cube:
1. AMO(Analysis Management Objects) with .Net CLR Procedure
2. Power Shell Script

3. SSIS ETL Package.
Here i explained my Experience with

[1.] AMO(Analysis Management Objects) with .Net CLR Procedure this is More flexible and easy to handle Cube Objects.


Step 1.
Enable CLR in SqlDataBase

SP_CONFIGURE 'CLR ENABLED',1 GO RECONFIGURE


Step2. Create New .Net DataBase SqlServerProject(CLR Project) with your Required DataBase connection














Step3: Create Microsoft.AnalysisServices.DLL" Reference in [Cube Processing] Project

1. Find "Microsoft.AnalysisServices.DLL" in C:\Program Files\Microsoft SQL Server\90\SDK\Assemblies\ and copy paste to some Folder D:\CLR Project\

2. Register Assembly in SQLServer DataBase

CREATE ASSEMBLY [AnalysisServices]
FROM D:\CLR Project\Microsoft.AnalysisServices.DLL'
WITH PERMISSION_SET = UNSAFE


3. Refer [AnalysisServices] Assembly

Right click [Cube Processing] Project and click Add Reference and Select "Sql Server Tab" select


[AnalysisServices] Assebly.


Note1. Assembly will be avaliable in "SqlServer Tab" only after Creating Assembly in Datbase .
as well as it can be seen in SQLManagementStudio -> Database->Programmabillity -> Assembly




Step 4: Create Method ProcessPartition Using Microsoft.AnalysisServices Classs

/*
Process the Cube Partition using given Input Parameter Values. If ProcessDimensions is True then
process all MeasureGroup Related Dimension
-- Simple Code and Commented Briefly
*/

1. Copy Paste the code

using System;
using System.Data;
using System.Data.SqlClient;
using System.Data.SqlTypes;
using Microsoft.SqlServer.Server;
using Microsoft.AnalysisServices;
public partial class
StoredProcedures
{
[Microsoft.SqlServer.Server.SqlProcedure]
public static void ProcessPartition(SqlString ServerName, SqlString CatalogName, SqlString CubeName, SqlString MeasureGroupName, SqlString PartitionName, SqlBoolean ProcessDimensions)
{
try
{
// Create Instance for AnalysisServer
Microsoft.AnalysisServices.Server svr = new Microsoft.AnalysisServices.Server();
// Create Instance for MeasureGroup
MeasureGroup measureGroup = new MeasureGroup();
// Connect Analysis Server Instance
svr.Connect(ServerName.ToString());
if ((svr != null) && (svr.Connected))
{
// Connect the Analysis Server DataBase
Microsoft.AnalysisServices.Database db = svr.Databases.FindByName(CatalogName.ToString());
Cube cub;
// Find the Analysis Server DataBase Cube
cub = db.Cubes.FindByName(CubeName.ToString());
// Find the Analysis Server DataBase Cube MeasureGroup
measureGroup = cub.MeasureGroups.FindByName(MeasureGroupName.ToString());
// Check ProcessDimensions Flag If its True Process All MeasureGroup Related Dimesnion
if (ProcessDimensions == true)
{
foreach (MeasureGroupDimension Dim in measureGroup.Dimensions)
{
// Proces Dimension
Dim.Dimension.Process();
}
}
// Find the Analysis Server DataBase Cube MeasureGroup Partttion
Partition par = measureGroup.Partitions.FindByName(PartitionName.ToString());
// Process Partition
par.Process();
}
// DisConnect Server Connection
svr.Disconnect();
}
catch (Exception Ex)
{
// To Send Error Message to Database
SqlContext.Pipe.Send(Ex.Message);
throw new ApplicationException(Ex.Message);
}
}
};


/*
This code will process the Cube up to low Level object. If you wish to Process only the DataBase,Cube,MeasureGroup then
use DataBase.Process(),Cube.Process(),MeasureGroup.Process() .
*/

2. Build the Project
3. Copy the [Cube Processing] DLL from Solution \bin\Debug folder and Paste to D:\CLR Project\
4. Create Assembly in SqlServer DataBase:

CREATE ASSEMBLY [Cube Processing]
FROM 'D:\CLR Project\Cube Processing.dll'
WITH PERMISSION_SET = UNSAFE

5. View the Assembly
Now the Registered [Cube Processing] Assembly wl be abaliable in SQLManagementStudio -> Database->Programmabillity -> Assembly

Step5: Create Extented StoreProcedure Using Registed Assembly (Cube Processing])

CREATE PROCEDURE [dbo].[ProcessPartition]
(@ServerName NVARCHAR(50)
, @CatalogName NVARCHAR(50)
, @CubeName NVARCHAR(50)
, @MeasureGroupName NVARCHAR(50)
, @PartitionName NVARCHAR(50)
, @ProcessDimensions BIT
)
AS
EXTERNAL NAME [Cube Processing].[StoredProcedures].[ProcessPartition]

[Cube Processing] -->Registered Assembly Name
[StoredProcedures] --> Class Name of the above Code
[ProcessPartition] --> Method Name of he Class


Step6: Execute Procedure [dbo].[ProcessPartition]

EXEC [ProcessPartition] @ServerName = 'MyServer\Instance1'
, @CatalogName = 'MyDatabase'
, @CubeName = 'MyCube'
, @MeasureGroupName = 'MyCube'
, @PartitionName = 'MyCube_2008_08'
, @ProcessDimensions = 1

!! Any help and sugestion about this article are welcome !!!

Unexpected error occurred while Open CalculationTab in SSAS Cube

In Business Intelligence Development Studio (BIDS), when i am in Analysis Services Project and when i open a cube and select the calculations tab, the design surface displays a message that reads:
Unexpected error occurred: 'Error in the application' and then it closes Visual Studio.

Found Mary Potapova's answer in the Microsoft Forum very useful as it fixed my problems. I quote here fix:
this might be caused by version mismatch between some binaries. i'd suggest checking the versions of msmdlocal.dll and msmgdsrv.dll and making sure that the ones installed into %ProgramFiles%\Microsoft Visual Studio 8\Common7\IDE\PrivateAssemblies\ are the same as those in %ProgramFiles%\Common Files\System\Ole DB\ (if they are not then try updating the ones in the PrivateAssemblies with the ones from ole db; you might want to save the original ones as to be able to get back to original state just in case.. It helped me to fix this issue.

Sunday, January 11, 2009