November 2008 - Posts
I had a bit of a rant yesterday about the fact I have had to compromise naming member properties when I've inadvertently created them with the wrong data type. As I mentioned, I found a Dimension attribute collection method in the Planning client assemblies that hinted that it might allow me to delete a member property so I decided to give it a go.
Below is some really rough and ready C# code that actually does delete a dimension member property. I will improve the code and probably add it in to my PPSCMD GUI interface as a 'feature pack' bonus at some stage, however, if you are in desperate need for the code to delete a member property, and you can't wait for PPSCMD GUI v0.2 or PerformancePoint Version 2 (I'm not sure which will come first !) the code is below (Use at your own risk !!)
Note: Replace "MyApp", "MyDimension", "MyAttribute", oh, and the server address, accordingly..
// Setup the PPS Application Metadata Manager
ServerHandler serverHandler = new ServerHandler("http://localhost:46787");
MetadataManager manager = new MetadataManager();
manager.ServerHandler = serverHandler;
// Get the system metadata
BizSystem system = manager.GetSystem(true);
// Get hold of the PPS Application
BizApplication ppsApp = system.Applications["MyApp"];
// Obtain the root model site from the application
BizModelSite site = ppsApp.RootModelSite;
// Obtain the dimension that contains the member property
BizDimension dimension = site.Dimensions["MyDimension"];
// Obtain the member property
BizDimensionAttribute attribute = dimension.Attributes["MyAttribute"];
// Check out the dimension
// Perform the delete
// Submit the change
manager.SubmitModelSite(ppsApp.Id, dimension.ParentModelSite, Microsoft.PerformancePoint.Planning.Bmo.Interfaces.SubmissionType.Update);
// Check in the dimension
Update: I've since discovered that you can obtain an unsupported utility from Microsoft Support that reportedly does the same thing, doh !
Oh well, always nice to have the code ..J
Update: I've posted a solution to Deleting a Custom Member Property here
I've done this countless times; I've created my perfectly named Custom Member Property when it suddenly dawns on me that I've forgotten to give it the right data type. No problem, right? Wrong! From within PBM, can you change the data type? No! Can you delete the member property? No! Can you rename the member property? No!
So, what are the options? Well, you could wait for version 2 (I truly hope you can edit/delete member properties in V2!), you could hack the back end database in the vague hope of removing the member property safely, or, as I have been doing in the past, create a new member property with a less than perfect name and try not to clench teeth and fists every time I glance at the original.
Well, I've had enough, and decided I'm going to take action.
Strangely, the Microsoft.PerformancePoint.Planning.BMO assembly contains a method called DeleteDimensionAttribute on the Dimension attribute collection.
Amidst my write up of the first day of the Microsoft BI Conference, I mentioned a new planning demo suite was imminent, and I would post more information about the demos soon. Well, as it has now been officially released (27th October) I can spill the beans...
Taken directly from the PPS Planning Forum announcement, the demo..
.. consists of Planning and Financial Consolidation demo. It shows how the fictitious Contoso Group uses Microsoft Office PerformancePoint Server for planning, statutory consolidation and data analysis.
Well, I'm proud to announce that Adatis, in the shape of my colleague Jeremy Kashel, designed and built the PerformancePoint Planning element of the suite. The PerformancePoint Financial Consolidation element was conceived and developed by our friends at Solitwork of Denmark.
The demo can be downloaded from here...
...and is part of the next 'All Up BI VPC' (Version 7).
Great work guys!