Understanding ProClarity's Metadata Store
What is ProClarity’s metadata store? Metadata store is a fancy name for they way ProClarity products store data about your data. In this case, your data is your Briefing Book pages and your My Views pages. The data about your pages includes information such as the SSAS servers, databases, cubes, attributes, hierarchies, and members queried when the page is executed. This metadata is stored in local Briefing Books – in both .BBK format and the more accessible .XML format. Also, it is stored in the ProClarity Analytics Server respository database in the XMLData fields in the MDStores and BookElements tables. See the Analytics Server Administration Tool Help file for more information.
The easiest way to investigate the metadata is to save a local Briefing Book and select the .XML format when doing so. You’ll get at least three files when you do this. One file describing the entire book - <bookName>.xml, on file for each page in the book, <bookName>_BookPage.xml, and <bookName>_MDStore.xml. Subsequent pages will be appended with incrementing whole numbers – BookPage1, BookPage2, etc.
When ProClarity Professional opens the page, it will try to organize the information to execute the query and will do so based on the contents of _BookPage.xml. For example, Pro might try to attempt to retrieve [Account].[Accounts].DEFAULTMEMBER and its associated dimension and hierarchy objects based on IDs (MDID).
- <<Axes>
- < <Background>
< <SortTuple Tuple="Yes" />
- < <Dimensions>
- < <Dimension Name=" [Account] " MDID="0">
< <Hierarchy Name=" [Account].[Accounts] " MDID="1" />
- < <MemberSet>
- < <Member>
< <Member Name=" [Account].[Accounts].DEFAULTMEMBER" MDID="2" />
</Member>
ProClarity then works with both the BookPage and MDStore files to validate objects such as this member against the current cube/session. The OnMetaDataCannotFind event will be fired and the Missing Data Wizard will appear for each item that cannot be validated. The metadata store works to minimize the disruption of missing objects by trying to limit the number of times the user has to work with the wizard.
Thank you to Steve Caminiti for your help!
-Joey