<?xml version='1.0' encoding='UTF-8'?><rss xmlns:atom="http://www.w3.org/2005/Atom" xmlns:openSearch="http://a9.com/-/spec/opensearchrss/1.0/" xmlns:blogger="http://schemas.google.com/blogger/2008" xmlns:georss="http://www.georss.org/georss" xmlns:gd="http://schemas.google.com/g/2005" xmlns:thr="http://purl.org/syndication/thread/1.0" version="2.0"><channel><atom:id>tag:blogger.com,1999:blog-16888062</atom:id><lastBuildDate>Fri, 27 Mar 2026 10:36:10 +0000</lastBuildDate><category>PerformancePoint</category><category>SSRS</category><category>Business Scorecard Manager</category><category>MonitorAnalyse</category><category>SSAS</category><category>BI</category><category>Books</category><category>SQL Server</category><category>Master Data Services</category><category>Data Visualisation</category><category>Excel</category><category>Office 2007</category><category>SSIS</category><category>General</category><category>Planning</category><category>Tips</category><category>Book Review</category><category>Certification</category><category>MOSS 2010</category><category>Report Builder</category><category>MDX</category><category>Dashboard</category><category>Documentation</category><category>MVP</category><category>Security</category><category>ServicePacks</category><category>SharePoint</category><category>AMO</category><category>Azure</category><category>B(iQ)</category><category>Blogs</category><category>Codeplex</category><category>Data Mining</category><category>DataDude</category><category>Filter</category><category>MAUDF</category><category>Microcharts</category><category>Office 2010</category><category>PPS SP1</category><category>Performance Management</category><category>SOBI</category><category>Strategy Map</category><category>TSQL</category><category>TechEd</category><category>Virtualization</category><category>Visio</category><category>Windows7</category><category>Word</category><title>Nick Barclay: BI-Lingual</title><description>Speaking the language of business intelligence with an Australian accent</description><link>http://nickbarclay.blogspot.com/</link><managingEditor>noreply@blogger.com (Nick Barclay)</managingEditor><generator>Blogger</generator><openSearch:totalResults>157</openSearch:totalResults><openSearch:startIndex>1</openSearch:startIndex><openSearch:itemsPerPage>25</openSearch:itemsPerPage><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-9139279771300550378</guid><pubDate>Fri, 30 Mar 2012 20:04:00 +0000</pubDate><atom:updated>2025-05-07T17:21:59.323-04:00</atom:updated><title>Dashboard Requirement Gathering Satire</title><description>&lt;div dir=&quot;ltr&quot; style=&quot;text-align: left;&quot; trbidi=&quot;on&quot;&gt;
A colleague of mine put together a hilarious PeepzMovie that was inspired by some frustrating projects.&lt;br /&gt;
&lt;br /&gt;
If you&#39;re a BI pro, do yourself a favor and take a few mins to watch it.&lt;br /&gt;
&lt;br /&gt;
&lt;iframe allowfullscreen=&quot;&quot; frameborder=&quot;0&quot; height=&quot;315&quot; src=&quot;//www.youtube.com/embed/Vovorr23xBI&quot; width=&quot;560&quot;&gt;&lt;/iframe&gt;&lt;br /&gt;
&lt;br /&gt;
Updated with new link to YouTube version.&lt;br /&gt;
&lt;/div&gt;
</description><link>http://nickbarclay.blogspot.com/2012/03/dashboard-requirement-gathering-satire.html</link><author>noreply@blogger.com (Nick Barclay)</author><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-5856608051883784214</guid><pubDate>Thu, 08 Sep 2011 11:53:00 +0000</pubDate><atom:updated>2011-09-08T07:53:12.354-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Book Review</category><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>Book Review: Microsoft SQL Server 2008 R2 Master Data Services</title><description>&lt;p&gt;&lt;strong&gt;Full disclosure: &lt;/strong&gt;The authors of this book provided me with a free review copy.&lt;/p&gt;  &lt;p&gt;Time to dust off this blog and post something. Wow, has it been that long?&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.packtpub.com/microsoft-sql-server-2008-r2-master-data-services/book&quot;&gt;&lt;img style=&quot;background-image: none; border-right-width: 0px; margin: 0px 10px 3px 0px; padding-left: 0px; padding-right: 0px; display: inline; float: left; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px; padding-top: 0px&quot; title=&quot;Microsoft SQL Server 2008 R2 Master Data Services&quot; border=&quot;0&quot; alt=&quot;Microsoft SQL Server 2008 R2 Master Data Services&quot; align=&quot;left&quot; src=&quot;http://lh3.ggpht.com/-QrWsjNByV8k/Tmisp_wDx2I/AAAAAAAABMM/2qKwuJc5swU/Microsoft-SQL-Server-2008-R2-Master-%25255B1%25255D.jpg?imgmax=800&quot; width=&quot;232&quot; height=&quot;280&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.packtpub.com/microsoft-sql-server-2008-r2-master-data-services/book&quot;&gt;Microsoft SQL Server 2008 R2 Master Data Services&lt;/a&gt; is just what I look for when I want to get up and running with a new product. Jeremy, Tim and Martyn have written a book for getting up to speed on just about every aspect of MDS. Experienced users can use the book to ensure existing knowledge gaps are filled and experiment with more advanced functionality.&lt;/p&gt;  &lt;p&gt;I’m a big fan of technical books like this one: Explain the concept, take the reader through step-by-step instructions, build on what has been created in previous examples. By the time the reader has finished the book they have created a set of interrelated artifacts and performed tasks that touch almost all the major functional areas of the product. &lt;/p&gt;  &lt;p&gt;The authors didn’t stop at the basic functionality of MDS, a significant portion of the book is dedicated to the more advanced aspects of the product. T-SQL / SSIS based data loads, integration with SharePoint workflows, BizTalk and the MDS API are all covered. Lots of useful sample code and reference material earns the book a place on the within-easy-reach shelf.&lt;/p&gt;  &lt;p&gt;Kudos to the authors for not making the book too heavy on the process rigor of master data management. They are careful to keep focus on setup, usage and extensibility of the product on which the book is based. Extra credit must also be given in that they managed to make the UI look simple and intuitive; the MDS web UI must be one of the clunkiest and difficult-to-use that I have had the displeasure to work with. The book makes it look easy. Hopefully MS is addressing this large shortfall in what is otherwise a pretty solid V1 product. &lt;/p&gt;  &lt;p&gt;As when reviewing &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/10/book-review-expert-cube-development.html&quot;&gt;Alberto, Chris &amp;amp; Marco’s &amp;quot;Expert Cube Development&amp;quot;&lt;/a&gt; book, my primary criticism remains directed at the book’s publisher, not its authors. Packt’s layout formula does not recognize the importance of reference numbers and caption text beneath screenshots, tables and figures. In this day and age publishers are focusing more on delivering content digitally. The layout of digital publications is often performed dynamically on devices such as the Kindle or iPad, as a result what is considered “a page” is not necessarily the same because each reader’s personal settings may differ. Text referring to “the screenshot above” or “the previous page” may not necessarily be accurate or helpful. Which page? Which screenshot? Annoying. What is so difficult about “refer to Figure 1.2”, or “as listed in Table 3.4”?&lt;/p&gt;  &lt;p&gt;All in all this is a book well worth getting hold of if you want to get stuck into all aspects of MDS from installation to advanced usage.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2011/09/book-review-microsoft-sql-server-2008.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/-QrWsjNByV8k/Tmisp_wDx2I/AAAAAAAABMM/2qKwuJc5swU/s72-c/Microsoft-SQL-Server-2008-R2-Master-%25255B1%25255D.jpg?imgmax=800" height="72" width="72"/><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-348298751455299766</guid><pubDate>Tue, 29 Dec 2009 19:25:00 +0000</pubDate><atom:updated>2009-12-29T14:27:26.636-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>MDS Architecture Notes</title><description>&lt;p&gt;While I was creating the recent series of &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-master-data-services-part-1.html&quot;&gt;walkthrough posts&lt;/a&gt; on I put together a diagram of the major objects that make up an MDS model. I figured it was worth sharing.&lt;/p&gt;  &lt;p&gt;The diagram below shows a single MDS instance containing a single model: Product. The aim is to show, at a high level, the relationships and some of the functionality found within an individual model. I’ve provided a brief sentence or two on my understanding of the objects contained in the diagram as a basic primer. Wherever possible I have linked to the online documentation for that particular feature.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/SzpXnn6IIAI/AAAAAAAABHU/iH9Su5CO0pE/s1600-h/MDSArch%5B7%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;MDSModelArchitecture&quot; border=&quot;0&quot; alt=&quot;MDSModelArchitecture&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/SzpXoIIjSMI/AAAAAAAABHY/ckxLpTZRlOQ/MDSArch_thumb%5B7%5D.png?imgmax=800&quot; width=&quot;760&quot; height=&quot;554&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633763(SQL.105).aspx&quot;&gt;MDS&lt;/a&gt; (Instance) the container of containers, the Master Data Services application itself.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633746(SQL.105).aspx&quot;&gt;Models&lt;/a&gt; are the primary container for specific groupings of master data. The example architecture diagram shows an MDS instance containing a single model: Product.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633723(SQL.105).aspx&quot;&gt;Entities&lt;/a&gt; are containers created within a model. Entities provide a home for members, and are in many ways analogous to database tables. Product, Color, SubCategory and Category entities exist in the sample diagram.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633724(SQL.105).aspx&quot;&gt;Members&lt;/a&gt; are analogous to the records in a database table (Entity). Members are contained within entities. Each member is made up of two or more attributes.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633745(SQL.105).aspx&quot;&gt;Attributes&lt;/a&gt; are analogous to the columns within a table (Entity). Attributes exist within entities and help describe members (the records within the table). Name and Code attributes are created by default for each entity and serve describe and uniquely identify leaf members. Attributes can be related to other attributes from other entities as seen in the diagram. For example the Color attribute of the Product entity is linked to the members contained in the Color attribute, so too the SubCategory and Category entities are related in the same way. These relationships are analogous to foreign key constraints.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633859(SQL.105).aspx&quot;&gt;Attribute Groups&lt;/a&gt; are explicitly defined collections of particular attributes. Say you may have an entity that is comprised of 50 different attributes; too much information for many of your users. Attribute groups enable the creation of custom sets of hand-picked attributes that are relevant for specific audiences.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633737(SQL.105).aspx&quot;&gt;Hierarchies&lt;/a&gt; organize members into either &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633747(SQL.105).aspx&quot;&gt;Derived&lt;/a&gt; or &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633759(SQL.105).aspx&quot;&gt;Explicit&lt;/a&gt; hierarchical structures. &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Derived hierarchies, as the name suggests, are derived by the MDS engine based on the relationships that exist between attributes. &lt;/li&gt;    &lt;li&gt;Explicit hierarchies are created by hand using both leaf and consolidated members. Explicit hierarchies can be further classified as mandatory or non-mandatory. &lt;/li&gt;    &lt;ul&gt;     &lt;li&gt;Mandatory hierarchies must include all entity leaf members. &lt;/li&gt;      &lt;li&gt;Non-mandatory hierarchies do not require all leaf members be included, although unused members are by default collected in a hierarchy node named “Unused”.&lt;/li&gt;   &lt;/ul&gt; &lt;/ul&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633733(SQL.105).aspx&quot;&gt;Collections&lt;/a&gt; are customized subsets of members contained within hierarchies or other collections. Any entity that has a hierarchy associated with them supports the creation of collections. Shaun Ryan has put together a useful post on creating collections &lt;a href=&quot;http://shaun-ryan.spaces.live.com/blog/cns!28592057112DE3C!276.entry&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633796(SQL.105).aspx&quot;&gt;Business Rules&lt;/a&gt; can be created and applied against model data to ensure that custom business logic is adhered to. In order to be committed into the system data must pass all business rule validations applied to them. In its current CTP version the business rules UI takes a bit of getting used to, nonetheless there is a lots of good functionality when it comes to information running the gauntlet before it is allowed in. Jeremy Kashel has a good introductory post on business rules &lt;a href=&quot;http://blogs.adatis.co.uk/blogs/jeremykashel/archive/2009/11/15/master-data-services-business-rules.aspx&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633741(SQL.105).aspx&quot;&gt;Subscription Views&lt;/a&gt; are views that can be created by appropriately privileged MDS admins in order to provide an appropriately named view for external systems to subscribe to. It should be noted MDS automatically creates views based on objects created within a model. Subscription views are separate from these and give admins control over the names and content. Shaun Ryan has written a post on the creation of subscription views &lt;a href=&quot;http://shaun-ryan.spaces.live.com/blog/cns!28592057112DE3C!247.entry&quot;&gt;here&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633738(SQL.105).aspx&quot;&gt;Versions&lt;/a&gt; provide system owners / administrators with the ability to Open, Lock or Commit a particular version of a model and the data contained within it at a particular point in time. As the content within a model varies / grows / shrinks over time versions provide a way of managing metadata so that subscribing systems can access to the correct content.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/12/mds-architecture-notes.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_COFToPnXCXk/SzpXoIIjSMI/AAAAAAAABHY/ckxLpTZRlOQ/s72-c/MDSArch_thumb%5B7%5D.png?imgmax=800" height="72" width="72"/><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-7095870634079905557</guid><pubDate>Wed, 25 Nov 2009 16:53:00 +0000</pubDate><atom:updated>2009-11-25T11:54:57.999-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Data Visualisation</category><category domain="http://www.blogger.com/atom/ns#">PerformancePoint</category><title>Enough Pies, I’m Full!</title><description>&lt;p&gt;In homage to the Thanksgiving celebration about to take place in the USA I thought I’d place a bet on what I think will be the most overused (and least useful) feature of PPS 2010 analytic reports.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Multiple pie charts!&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;Those who have used ProClarity will recognize this multi-pie functionality. See how easily you can determine which of the clothing, bikes and components categories sold the most in CY 2008?&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Sw1g9I8FXyI/AAAAAAAABHE/RER2irW_bMU/s1600-h/ManyPieCharts%5B9%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;ManyPieCharts&quot; border=&quot;0&quot; alt=&quot;ManyPieCharts&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Sw1g9Xx9s4I/AAAAAAAABHI/lm50OR1RoFw/ManyPieCharts_thumb%5B5%5D.png?imgmax=800&quot; width=&quot;656&quot; height=&quot;475&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I believe that pie charts were included in PPS 2010 as a “required feature” by the sales team. If you listen carefully to some of the PPS team members as they present the latest features you can hear a slight tinge of cynicism in their voices as they say “oh yeah, we support pie charts now too…”&lt;/p&gt;  &lt;p&gt;So I ask you, what’s better than a single pie chart? &lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;DECLARE                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: #434343&quot;&gt;@PieCounter &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INT = &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: #434343&quot;&gt;@EnoughPies &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INT = &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;10 &lt;/span&gt;&lt;span style=&quot;color: green&quot;&gt;-- enough pies, I&#39;m full!                    &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;WHILE &lt;/span&gt;&lt;span style=&quot;color: #434343&quot;&gt;@PieCounter &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;&amp;lt; &lt;/span&gt;&lt;span style=&quot;color: #434343&quot;&gt;@EnoughPies                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;BEGIN                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; PRINT &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;The only thing better than &#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;CONVERT&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;VARCHAR&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;), &lt;/span&gt;&lt;span style=&quot;color: #434343&quot;&gt;@PieCounter&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39; pie chart/s is &#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;CONVERT&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;VARCHAR&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;), &lt;/span&gt;&lt;span style=&quot;color: #434343&quot;&gt;@PieCounter &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; + &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39; pie charts!&#39;                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SET &lt;/span&gt;&lt;span style=&quot;color: #434343&quot;&gt;@PieCounter &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;END&lt;/span&gt;&lt;/code&gt;&amp;#160; &lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/enough-pies-im-full.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_COFToPnXCXk/Sw1g9Xx9s4I/AAAAAAAABHI/lm50OR1RoFw/s72-c/ManyPieCharts_thumb%5B5%5D.png?imgmax=800" height="72" width="72"/><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-6341776580346445776</guid><pubDate>Wed, 25 Nov 2009 00:44:00 +0000</pubDate><atom:updated>2009-11-25T10:54:57.996-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>Beginning MDS – Getting at the Data with TSQL (Part 7 of 7)</title><description>&lt;p&gt;&lt;/p&gt;  &lt;p&gt;OK, so we’ve created the objects and loaded data into them. Now we can have a closer look at what has happened to the MDS database. What has been built? Where is the data stored?&lt;/p&gt;  &lt;p&gt;The aim of this final post is to get you started towards locating your data stored in the MDS repository database. There are plenty of ways to get at the data but we’re going to just take a quick peek at accessing the data via TSQL. Remember that TSQL isn’t the only way to get at this data. I just haven’t had much of a chance to have a detailed look at the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.masterdataservices(SQL.105).aspx&quot;&gt;MDS web service&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/microsoft.masterdataservices.services(SQL.105).aspx&quot;&gt;API&lt;/a&gt; yet.&lt;/p&gt;  &lt;h5&gt;Walkthrough&lt;/h5&gt;  &lt;p&gt;So where’s our Geography model data? Let’s start by finding the identifier of the model itself. &lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- get your model ID&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;*&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblModel&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;WHERE&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;[Name] &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Geography&#39; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;div&gt;The ID for your model will vary, mine is 15.&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx91sd7OEI/AAAAAAAAA9k/5Z_QZyaswWQ/s1600-h/SQL_tblModel%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQL_tblModel&quot; border=&quot;0&quot; alt=&quot;SQL_tblModel&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx91xLp0WI/AAAAAAAAA9s/0xeqok6U81c/SQL_tblModel_thumb.png?imgmax=800&quot; width=&quot;618&quot; height=&quot;50&quot; /&gt;&lt;/a&gt;&lt;/div&gt;  &lt;p&gt;Note that there are a number of different metadata UDFs that can return scalar and tabular data for a variety of things such as model ID, I’m just going to do it the manual way for the purposes of demonstration.    &lt;br /&gt;Armed with the model ID we can take a look at the Entities defined within that model.&lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;*&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblEntity&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;WHERE&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;Model_ID &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;15&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: green&quot;&gt;-- change to your model number&amp;#160; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;div&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx92Oqc6OI/AAAAAAAAA9w/c4vAk-Bj858/s1600-h/SQL_tblEntity%5B2%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQL_tblEntity&quot; border=&quot;0&quot; alt=&quot;SQL_tblEntity&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx92eYvYFI/AAAAAAAAA90/oNZ33DLyDfc/SQL_tblEntity_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;630&quot; height=&quot;69&quot; /&gt;&lt;/a&gt;     &lt;br /&gt;&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;The most interesting stuff returned by this query are the table name references to the structures containing records concerning Entity, Security, Hierarchy, HierarchyParent etc. Note the format of the table names. For example &lt;strong&gt;tbl_15_53_EN&lt;/strong&gt; refers to a “&lt;strong&gt;table&lt;/strong&gt; for Model ID= &lt;strong&gt;15&lt;/strong&gt;, ID = &lt;strong&gt;53&lt;/strong&gt;, for Type = &lt;strong&gt;Entity&lt;/strong&gt;”.&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;The two letter table suffixes refer to the following: &lt;/div&gt;  &lt;ul&gt;   &lt;li&gt;EN = Entity &lt;/li&gt;    &lt;li&gt;MS = Security &lt;/li&gt;    &lt;li&gt;HR = Hierarchy &lt;/li&gt;    &lt;li&gt;HP = Hierarchy Parent &lt;/li&gt;    &lt;li&gt;CN = Collection &lt;/li&gt;    &lt;li&gt;CM = Collection Member &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The MDS engine builds tables to store data for the objects that are created within models. Here is a list of all the tables created as a result of our efforts with the Geography (ID = 15) model.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/SwyH_UgqQmI/AAAAAAAAA9c/uiDs2mRY9vo/s1600-h/SQL_ModelTables%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQL_ModelTables&quot; border=&quot;0&quot; alt=&quot;SQL_ModelTables&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/SwyH_vucwsI/AAAAAAAAA9g/3J42TkuDSA4/SQL_ModelTables_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;212&quot; height=&quot;204&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Have a look inside the table that contains the records for the City entity, remembering that your own IDs (both for the model and the entity) will vary from mine.&lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- city entity&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;*&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tbl_15_53_EN&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;br /&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx922WNBtI/AAAAAAAAA94/xYTcrPcrNnU/s1600-h/SQLCityEntity.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQLCityEntity&quot; border=&quot;0&quot; alt=&quot;SQLCityEntity&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx93TGyKPI/AAAAAAAAA-A/Yb9MoIoyLMA/SQLCityEntity_thumb.png?imgmax=800&quot; width=&quot;664&quot; height=&quot;200&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;/form&gt;  &lt;div&gt;Among the other metadata related to the members of the City entity are the &lt;strong&gt;Name &lt;/strong&gt;and &lt;strong&gt;Code &lt;/strong&gt;fields, as expected. Note the column named &lt;strong&gt;uda_CAAPFLF&lt;/strong&gt; at the far right of the table. The prefix “uda_” I assume stands for User Defined Attribute. Thanks to the referenced relationship created in one of the earlier walkthroughs this column participates in a physical FK relationship to the ID in the &lt;strong&gt;StateProvince &lt;/strong&gt;entity table (in my case the &lt;strong&gt;StateProvince&lt;/strong&gt; entity table is named &lt;strong&gt;mdm.tbl_15_54_EN&lt;/strong&gt;).&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;Now take a look inside the &lt;strong&gt;mdm.tblAttribute&lt;/strong&gt; table for all the user defined attributes in our model.&lt;/div&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;&lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;     &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;         &lt;tr&gt;           &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;             &lt;div class=&quot;content&quot;&gt;               &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;a.&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;*                      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblAttribute a                      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;WHERE&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;EXISTS (                      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;*                      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblEntity e                      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;WHERE&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;e.ID &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;a.Entity_ID                      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;AND &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;e.model_ID &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;15&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;) &lt;/span&gt;&lt;span style=&quot;color: green&quot;&gt;-- change to your model number&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;AND &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberType_id &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1 &lt;/span&gt;&lt;span style=&quot;color: green&quot;&gt;-- leaf attribute&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;AND &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;DataType_id &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;= &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1 &lt;/span&gt;&lt;span style=&quot;color: green&quot;&gt;-- user defined&amp;#160;&amp;#160; &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;ORDER BY &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;Entity_ID &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;             &lt;/div&gt;           &lt;/td&gt;         &lt;/tr&gt;       &lt;/tbody&gt;&lt;/table&gt;   &lt;/form&gt;&lt;/form&gt;  &lt;div&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx93mKEBII/AAAAAAAAA-I/dvaysLeSJHc/s1600-h/SQLAttributes.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQLAttributes&quot; border=&quot;0&quot; alt=&quot;SQLAttributes&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx933lra3I/AAAAAAAAA-U/VUN-tWh2Wc0/SQLAttributes_thumb.png?imgmax=800&quot; width=&quot;656&quot; height=&quot;151&quot; /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;p&gt;Notice the &lt;strong&gt;uda_CAAPFLF&lt;/strong&gt; reference in the &lt;strong&gt;TableColumn &lt;/strong&gt;column for StateProvince. This provides a reference back to the column that links the &lt;strong&gt;StateProvince&lt;/strong&gt; attribute to the &lt;strong&gt;City &lt;/strong&gt;entity.&lt;/p&gt;  &lt;p&gt;On top of the system-generated-model-centric tables that MDS generates there are also system views that already do much of the heavy lifting for you when it comes to getting at the data. Here are the views that MDS created by the Geography model objects.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx94A5zGbI/AAAAAAAABG0/_rvBWEXiWCA/s1600-h/SQLSystemViews%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQLSystemViews&quot; border=&quot;0&quot; alt=&quot;SQLSystemViews&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx94UwfS7I/AAAAAAAABG4/o2bI3_4hFfE/SQLSystemViews_thumb.png?imgmax=800&quot; width=&quot;320&quot; height=&quot;225&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Based on what we have built the most useful views are the &lt;strong&gt;…CHILDATTRIBUTES&lt;/strong&gt; ones. These will return the records within a particular entity including all the attributes that have been defined on it.&lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;*                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.viw_SYSTEM_15_53_CHILDATTRIBUTES&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;p&gt;All the human readable data is located at the far end of the table, so remember to scroll all the way to the right.&lt;/p&gt;  &lt;div&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx94kXJEyI/AAAAAAAAA-c/FqO0lTcJxlk/s1600-h/SQLSystemViewCityMembers%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQLSystemViewCityMembers&quot; border=&quot;0&quot; alt=&quot;SQLSystemViewCityMembers&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx946PwNkI/AAAAAAAAA-g/S5j0zimKijs/SQLSystemViewCityMembers_thumb.png?imgmax=800&quot; width=&quot;655&quot; height=&quot;186&quot; /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;div&gt;   &lt;br /&gt;&lt;/div&gt;  &lt;p&gt;Note the friendly column names that have been created as part of the view definition.&lt;/p&gt;  &lt;p&gt;If you want to look at the parent/child metadata that was defined as a result of the derived hierarchy we created look at the contents of the &lt;strong&gt;…PARENTCHILD_DERIVED &lt;/strong&gt;views.&lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- the 10 in this case refers to the ID in the mdm.tblDerivedHierarchy table&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;*                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.viw_SYSTEM_15_10_PARENTCHILD_DERIVED&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt;    &lt;br /&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx95FazlwI/AAAAAAAAA-s/LxXHpGODqhY/s1600-h/SQLSystemViewDerivedHierarchy%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQLSystemViewDerivedHierarchy&quot; border=&quot;0&quot; alt=&quot;SQLSystemViewDerivedHierarchy&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx95RINkDI/AAAAAAAAA-0/HHT8olUWSik/SQLSystemViewDerivedHierarchy_thumb.png?imgmax=800&quot; width=&quot;663&quot; height=&quot;259&quot; /&gt;&lt;/a&gt; &lt;/form&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Hopefully this whirlwind tour of the MDS repository DB has been enough to pique your interest. Take time to explore the inner workings of the database and find all the good stuff that is baked into the product and how you can leverage it. &lt;/p&gt;  &lt;p&gt;This post also marks the end of this series of walkthroughs, hope they were useful.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/beginning-mds-getting-at-data-with-tsql.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_COFToPnXCXk/Swx91xLp0WI/AAAAAAAAA9s/0xeqok6U81c/s72-c/SQL_tblModel_thumb.png?imgmax=800" height="72" width="72"/><thr:total>10</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-9043327344181976498</guid><pubDate>Wed, 25 Nov 2009 00:43:00 +0000</pubDate><atom:updated>2009-11-24T20:21:22.013-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>Beginning MDS - Creating a Derived Hierarchy (Part 6 of 7)</title><description>&lt;p&gt;There are two kinds of &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633737(SQL.105).aspx&quot;&gt;Hierarchy&lt;/a&gt; that can be created within MDS: &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633747(SQL.105).aspx&quot;&gt;Derived&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633759(SQL.105).aspx&quot;&gt;Explicit&lt;/a&gt;. We’re only going to deal with derived hierarchies for now.&lt;/p&gt;  &lt;p&gt;As the name suggests, derived hierarchies are derived from the relationships between entities within a model. In our &lt;strong&gt;Geography&lt;/strong&gt; model we have used attributes to define a relationship between the &lt;strong&gt;City &lt;/strong&gt;and the &lt;strong&gt;StateProvince &lt;/strong&gt;entities and another one between &lt;strong&gt;StateProvince &lt;/strong&gt;and &lt;strong&gt;CountryRegion&lt;/strong&gt;. These relationships will enable the easy creation of a derived hierarchy. CountryRegion &amp;gt; StateProvince &amp;gt; City.&lt;/p&gt;  &lt;h5&gt;Walkthrough&lt;/h5&gt;  &lt;p&gt;Once more browse to the &lt;strong&gt;Master Data Manager &lt;/strong&gt;and select &lt;strong&gt;System Administration&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9qOvJSPI/AAAAAAAAA6k/rDrWo43pmbg/s1600-h/HierarchiesSelectSystemAdmin4.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HierarchiesSelectSystemAdmin&quot; border=&quot;0&quot; alt=&quot;HierarchiesSelectSystemAdmin&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9qdGcFsI/AAAAAAAAA6o/bkc-2rrU5uQ/HierarchiesSelectSystemAdmin_thumb2.png?imgmax=800&quot; width=&quot;477&quot; height=&quot;410&quot; /&gt;&lt;/a&gt; &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Model Explorer &lt;/strong&gt;page select &lt;strong&gt;Manage &amp;gt; Derived Hierarchies&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9qqTnLDI/AAAAAAAAA6s/Im_O9iA7QUg/s1600-h/HierarchiesManage4.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HierarchiesManage&quot; border=&quot;0&quot; alt=&quot;HierarchiesManage&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9q2dyPaI/AAAAAAAAA6w/8656ADp5sGA/HierarchiesManage_thumb2.png?imgmax=800&quot; width=&quot;299&quot; height=&quot;298&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Derived Hierarchy Maintenance&lt;/strong&gt; page ensure &lt;strong&gt;Geography&lt;/strong&gt; is selected in the &lt;strong&gt;Model&lt;/strong&gt; dropdown and click the &lt;strong&gt;+ &lt;/strong&gt;sign to add a new derived hierarchy.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9q6cuVvI/AAAAAAAAA60/xXatc6Bkn1M/s1600-h/HierarchiesCreate4.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HierarchiesCreate&quot; border=&quot;0&quot; alt=&quot;HierarchiesCreate&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9rAOLjtI/AAAAAAAAA64/RC0smrPWB28/HierarchiesCreate_thumb2.png?imgmax=800&quot; width=&quot;293&quot; height=&quot;308&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Type &lt;em&gt;Cities &lt;/em&gt;in the &lt;strong&gt;Derived hierarchy name&lt;/strong&gt; textbox. Click &lt;strong&gt;Save&lt;/strong&gt;.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9rQhoOiI/AAAAAAAAA68/y4mte-urltw/s1600-h/HierarchiesCities4.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HierarchiesCities&quot; border=&quot;0&quot; alt=&quot;HierarchiesCities&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9rhBq_MI/AAAAAAAAA7A/j44XDY-ZZ7k/HierarchiesCities_thumb2.png?imgmax=800&quot; width=&quot;433&quot; height=&quot;319&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;All that is left to do in the &lt;strong&gt;Edit Derived Hierarchy: Cities&lt;/strong&gt; page is to drag and drop each of the desired entities from the &lt;strong&gt;Available Entities and Hierarchies&lt;/strong&gt; area into the &lt;strong&gt;Current Levels&lt;/strong&gt; area. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9r_pjEEI/AAAAAAAAA7E/UlkO_CkAc0g/s1600-h/HierarchiesAvailableEntitiesArrow5.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HierarchiesAvailableEntitiesArrow&quot; border=&quot;0&quot; alt=&quot;HierarchiesAvailableEntitiesArrow&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9sLacqWI/AAAAAAAAA7I/2EQdBnY9AfM/HierarchiesAvailableEntitiesArrow_th.png?imgmax=800&quot; width=&quot;645&quot; height=&quot;239&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Start with the lowest (in this case the leaf) entity first. Drag and drop the &lt;strong&gt;City &lt;/strong&gt;entity onto the &lt;strong&gt;Current levels: Cities &lt;/strong&gt;area. Note that the preview area comes to life now too.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9sSbleoI/AAAAAAAAA7M/9kL4tV0T_6Q/s1600-h/HierarchiesPreviewCity7.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HierarchiesPreviewCity&quot; border=&quot;0&quot; alt=&quot;HierarchiesPreviewCity&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9srRpD-I/AAAAAAAAA7Q/Nczj7mF__38/HierarchiesPreviewCity_thumb3.png?imgmax=800&quot; width=&quot;665&quot; height=&quot;376&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now drag and drop the &lt;strong&gt;StateProvince&lt;/strong&gt; entity from the &lt;strong&gt;Available Entities and Hierarchies &lt;/strong&gt;onto the &lt;strong&gt;City &lt;/strong&gt;item in the &lt;strong&gt;Current Levels &lt;/strong&gt;area. Finally drag and drop the &lt;strong&gt;CountryRegion &lt;/strong&gt;entity onto the &lt;strong&gt;StateProvince &lt;/strong&gt;entity.&lt;/p&gt;  &lt;p&gt;Once you’ve used up all three entities, you’ll be able to preview your complete derived hierarchy.&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9s8iUWsI/AAAAAAAAA7U/28-ixEptTDw/s1600-h/HierarchiesPreviewCompleteHierarchy4.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HierarchiesPreviewCompleteHierarchy&quot; border=&quot;0&quot; alt=&quot;HierarchiesPreviewCompleteHierarchy&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9tC2dRzI/AAAAAAAAA7Y/xWaOCtXhTpw/HierarchiesPreviewCompleteHierarchy_.png?imgmax=800&quot; width=&quot;660&quot; height=&quot;425&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On to &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-getting-at-data-with-tsql.html&quot;&gt;Getting at the Data with TSQL&lt;/a&gt;&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-derived.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_COFToPnXCXk/Swx9qdGcFsI/AAAAAAAAA6o/bkc-2rrU5uQ/s72-c/HierarchiesSelectSystemAdmin_thumb2.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-7754181608173933617</guid><pubDate>Wed, 25 Nov 2009 00:43:00 +0000</pubDate><atom:updated>2009-11-26T09:25:08.519-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>Beginning MDS - Loading Members &amp;amp; Attributes (Part 5 of 7)</title><description>&lt;p&gt;Now that we’ve defined some basic structures we can add some data. Through MDS&#39; web based management interface we can manually add individual members or configure attributes on an entity one-by-one, or we can load them en masse. I&#39;ll leave the one-by-one method to the reader to figure out. What most will want to know is how to get a lot of data into the system in one hit.&lt;/p&gt;  &lt;p&gt;For those familiar with the product formerly known as PerformancePoint Services 2007 Planning, the process of batch loading records is much the same. You insert the data to be loaded into system-defined staging tables, ensuring the appropriate metadata is defined on each record. MDS internal stored procedures are run over the staged data to check the validity of the records in accordance with the entity &amp;amp; attribute structures that have been set up. Each record is marked with a flag and an error code to show whether it has passed or failed validation and provides details as to why. Once validated and error-free the data can then be loaded into the appropriate area within MDS. Action can also be taken on the bad records in order to get them loaded too. &lt;/p&gt;  &lt;h5&gt;Walkthrough&lt;/h5&gt;  &lt;p&gt;In this walkthrough we&#39;re going to:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Load leaf members into the &lt;strong&gt;City&lt;/strong&gt;, &lt;strong&gt;StateProvince &lt;/strong&gt;and &lt;strong&gt;CountryRegion &lt;/strong&gt;entities &lt;/li&gt;    &lt;li&gt;Load related &lt;strong&gt;StateProvince &lt;/strong&gt;attributes into the &lt;strong&gt;City &lt;/strong&gt;entity &lt;/li&gt;    &lt;li&gt;Load related &lt;strong&gt;CountryRegion &lt;/strong&gt;attributes into the &lt;strong&gt;StateProvince &lt;/strong&gt;entity &lt;/li&gt;    &lt;li&gt;Load freeform Spanish and French country names into the &lt;strong&gt;CountryRegion &lt;/strong&gt;entity &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Open up SSMS and connect to your MDS repository database (whatever you&#39;ve called it). Mine&#39;s called &amp;quot;MDS&amp;quot;.&lt;/p&gt;  &lt;p&gt;Run the following TSQL to insert data into the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633854(SQL.105).aspx&quot;&gt;mdm.tblStgMember&lt;/a&gt; table (I am assuming you&#39;ve got the AdventureWorksDW2008R2 database installed on the same SQL instance) &lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;&lt;form action=&quot;http://www.simple-talk.com/default.php&quot; method=&quot;post&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- insert City-grained entity members into tblStgMember&amp;#160;&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INSERT INTO &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblStgMember                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;ModelName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;EntityName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberType_ID                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberCode                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Geography&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;City&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;City                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;StateProvinceCode &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;_&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;UPPER&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;SUBSTRING&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;City&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)) + &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;_&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;PostalCode                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AdventureWorksDW2008R2..DimGeography &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;p&gt;If you wish you can have a look at the inserted records by running the following &lt;/p&gt; &lt;/form&gt;&lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;*                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblStgMember &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;div&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9gYm4xuI/AAAAAAAABBU/VoppW24oSSk/s1600-h/DataLoad01%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;tblStgMemberResults&quot; border=&quot;0&quot; alt=&quot;tblStgMemberResults&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9ggQ8bLI/AAAAAAAABBY/Uzg37XsJSwo/DataLoad01_thumb.png?imgmax=800&quot; width=&quot;552&quot; height=&quot;248&quot; /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;p&gt;Now that we know the data is in the staging table we can kick off the batch load process. Browse to the &lt;strong&gt;Master Data Manager &lt;/strong&gt;web page and select the &lt;strong&gt;Integration Management &lt;/strong&gt;option ensuring that you select &lt;em&gt;Geography&lt;/em&gt; in the &lt;strong&gt;Model&lt;/strong&gt; dropdown and &lt;em&gt;VERSION_1 &lt;/em&gt;in the &lt;strong&gt;Version &lt;/strong&gt;dropdown.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9gwl-FcI/AAAAAAAAA_E/6pQwfJTGxeE/s1600-h/DataLoad02.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;MDMIntegrationManagement&quot; border=&quot;0&quot; alt=&quot;MDMIntegrationManagement&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9hVosOBI/AAAAAAAAA_I/BpI6eVAVJEk/DataLoad02_thumb.png?imgmax=800&quot; width=&quot;401&quot; height=&quot;373&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On the &lt;strong&gt;Import&lt;/strong&gt; page (with the appropriate &lt;strong&gt;Model&lt;/strong&gt; and &lt;strong&gt;Version&lt;/strong&gt; selected in the corresponding dropdowns) note that there are 655 total member records that are flagged in the &lt;strong&gt;Unbatched Staging Records &lt;/strong&gt;section&lt;strong&gt;.&lt;/strong&gt; Click the &lt;strong&gt;Process&lt;/strong&gt; button located above the &lt;strong&gt;Model&lt;/strong&gt; dropdown. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9hh84RxI/AAAAAAAAA_M/js-WoosWpko/s1600-h/DataLoad03.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;UnbatchedStagingRecords&quot; border=&quot;0&quot; alt=&quot;UnbatchedStagingRecords&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9h806KJI/AAAAAAAAA_Q/XtBPA2secaM/DataLoad03_thumb.png?imgmax=800&quot; width=&quot;232&quot; height=&quot;285&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now the &lt;strong&gt;Staging Batches&lt;/strong&gt; area at the top of the page comes to life showing that a new staging batch instance has been spun up for our 655 records. In the background the loading process is already running to validate our 655 records. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9iNxGoxI/AAAAAAAAA_U/cFrYc4B6Bxk/s1600-h/DataLoad04%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;StagingBatches&quot; border=&quot;0&quot; alt=&quot;StagingBatches&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9iXz6m8I/AAAAAAAAA_g/orBZ0s_dcec/DataLoad04_thumb.png?imgmax=800&quot; width=&quot;410&quot; height=&quot;463&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can check on the status of the batch by clicking on the batch line item and then clicking the &lt;strong&gt;View details for selected batch&lt;/strong&gt; button. The end-to-end process should take a few seconds.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9iofbJHI/AAAAAAAAA_s/QZaWJ8NIv2g/s1600-h/DataLoad06%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;BatchLineItem&quot; border=&quot;0&quot; alt=&quot;BatchLineItem&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9i6VngYI/AAAAAAAAA_4/42Cmgl1a2XA/DataLoad06_thumb.png?imgmax=800&quot; width=&quot;581&quot; height=&quot;196&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;Note that if you check the loaded records in SSMS (the mdm.tblStgMember table) the &lt;strong&gt;Status_ID &lt;/strong&gt;field should be populated with a 1 indicating success. The &lt;strong&gt;ErrorCode &lt;/strong&gt;field will be populated with “ERR210000” which I guess must mean “success” (doesn’t seem to be any doco on these codes at the time of this writing). &lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;UPDATE (Nov 26th):&lt;/strong&gt; MDS PM Kirk Haselden has listed all the staging table error codes &lt;a href=&quot;http://blogs.msdn.com/knight_reign/archive/2009/11/25/mds-staging-table-error-codes.aspx&quot;&gt;here&lt;/a&gt;.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Once the batch has loaded we can check on the new members. Browse back to the &lt;strong&gt;Master Data Manager&lt;/strong&gt; page by clicking on the MDS logo in the top left of the screen and select the &lt;strong&gt;Explorer&lt;/strong&gt;&amp;#160; option. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9jJ6WQ7I/AAAAAAAAA_8/M9Z0T32X7ds/s1600-h/DataLoad07%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;MDMExplorer&quot; border=&quot;0&quot; alt=&quot;MDMExplorer&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9jnqM8uI/AAAAAAAABAE/mvR7fIjobJI/DataLoad07_thumb.png?imgmax=800&quot; width=&quot;432&quot; height=&quot;390&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;Select &lt;strong&gt;Entities &amp;gt; City&lt;/strong&gt; to view the members that have been successfully loaded.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9jo4q1OI/AAAAAAAABBg/V_pwTPGnEV0/s1600-h/DataLoadEntitiesCity%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;CityEntitySelect&quot; border=&quot;0&quot; alt=&quot;CityEntitySelect&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9j-CBQDI/AAAAAAAABBo/yiQjTgRLMOk/DataLoadEntitiesCity_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;591&quot; height=&quot;170&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Note the yellow question marks next to each record. This means that business rule validation has not yet been run against these members. We won’t worry about business rules for the purposes of this walkthrough, you can ignore the yellow question marks for now. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9kCLMaCI/AAAAAAAABAY/XkNKbiF7rH8/s1600-h/DataLoad10%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;CityEntityRecords&quot; border=&quot;0&quot; alt=&quot;CityEntityRecords&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9kr03fHI/AAAAAAAABAo/8r4Gtz11tsc/DataLoad10_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;583&quot; height=&quot;538&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;If the question marks are really annoying you press the &lt;strong&gt;Apply Business Rules &lt;/strong&gt;button (the one with the green check mark) to change them into green checks. We haven’t created any business rules to be applied so the change here is really only cosmetic in the context of this walkthrough.&lt;/p&gt;  &lt;p&gt;Now we need to load members into the &lt;strong&gt;StateProvince&lt;/strong&gt; and &lt;strong&gt;CountryRegion&lt;/strong&gt; entities using the same process, just different TSQL. Once you have run the code to stage the members go back to the &lt;strong&gt;Integration Management&lt;/strong&gt; screen kick off the batch process to load the members into their corresponding entities.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;StateProvince&lt;/strong&gt;&lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- insert StateProvince-grained entity members into tblStgMember&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INSERT INTO &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblStgMember                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;ModelName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;EntityName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberType_ID                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberCode                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT DISTINCT                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Geography&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;StateProvince&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;StateProvinceName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;StateProvinceCode                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AdventureWorksDW2008R2..DimGeography&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;div id=&quot;codeSnippetWrapper&quot;&gt;   &lt;div id=&quot;codeSnippetWrapper&quot;&gt;&lt;strong&gt;CountryRegion&lt;/strong&gt;&lt;/div&gt; &lt;/div&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- insert CountryRegion-grained entity members into mdm.tblStgMember&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INSERT INTO &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblStgMember                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;ModelName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;EntityName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberType_ID                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberCode                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT DISTINCT                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Geography&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;CountryRegion&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;EnglishCountryRegionName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;CountryRegionCode                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AdventureWorksDW2008R2..DimGeography&amp;#160; &lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;div&gt;Next we&#39;ll use the same method to load the attribute information into each of the entities using the same technique. The only difference is that this time we insert the data into the &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633772(SQL.105).aspx&quot;&gt;mdm.tblStgMemberAttribute&lt;/a&gt; table. &lt;/div&gt;  &lt;p&gt;Insert values for the &lt;strong&gt;StateProvince &lt;/strong&gt;attribute in the &lt;strong&gt;City &lt;/strong&gt;entity.&lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- insert StateProvince attributes into mdm.tblStgMemberAttribute&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INSERT INTO &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblStgMemberAttribute                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;ModelName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;EntityName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberType_ID                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberCode                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AttributeName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AttributeValue                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Geography&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;City&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;StateProvinceCode &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;_&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;UPPER&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: magenta&quot;&gt;SUBSTRING&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;City&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;,&lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;4&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)) + &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;_&#39; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;+ &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;PostalCode                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;StateProvince&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;StateProvinceCode                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AdventureWorksDW2008R2..DimGeography&lt;/span&gt;&lt;/code&gt;&amp;#160;&amp;#160; &lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;div id=&quot;codeSnippetWrapper&quot;&gt;…and now insert values for the &lt;strong&gt;CountryRegion &lt;/strong&gt;attribute in the &lt;strong&gt;StateProvince &lt;/strong&gt;entity.&lt;/div&gt;  &lt;div id=&quot;codeSnippetWrapper&quot;&gt;Follow the same batch loading process as before to load the new attribute values.&lt;/div&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- insert CountryRegion attributes into mdm.tblStgMemberAttribute&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INSERT INTO &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblStgMemberAttribute                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;ModelName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;EntityName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberType_ID                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberCode                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AttributeName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AttributeValue                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT DISTINCT                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Geography&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;StateProvince&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;StateProvinceCode                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;CountryRegion&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;CountryRegionCode                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AdventureWorksDW2008R2..DimGeography&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;p&gt;Return to the &lt;strong&gt;Master Data Manager &lt;/strong&gt;and ensure &lt;em&gt;Geography&lt;/em&gt; and &lt;em&gt;VERSION_1 &lt;/em&gt;are selected in the &lt;strong&gt;Model &lt;/strong&gt;and &lt;strong&gt;Version &lt;/strong&gt;dropdowns. Click the &lt;strong&gt;Explorer&lt;/strong&gt; option and examine the members and attributes of both the &lt;strong&gt;City&lt;/strong&gt; and the &lt;strong&gt;StateProvince&lt;/strong&gt; entities. The attributes within each will now have been populated with the corresponding member of the appropriate entity.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;City &lt;/strong&gt;entity, &lt;strong&gt;StateProvince &lt;/strong&gt;attribute&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9k4caesI/AAAAAAAABA0/895Vj9ttwLw/s1600-h/DataLoad12%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;DataLoad12&quot; border=&quot;0&quot; alt=&quot;DataLoad12&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9lWKnRII/AAAAAAAABA4/N-4Wu5t50Hk/DataLoad12_thumb.png?imgmax=800&quot; width=&quot;454&quot; height=&quot;415&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;StateProvince&lt;/strong&gt; entity, &lt;strong&gt;CountryRegion&lt;/strong&gt; attribute&lt;/p&gt;  &lt;p&gt;&amp;#160;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9l-coTVI/AAAAAAAABBA/I-UcHhnx-uQ/s1600-h/DataLoad11%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;DataLoad11&quot; border=&quot;0&quot; alt=&quot;DataLoad11&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9mFghMpI/AAAAAAAABBI/c0uqnTXAYd0/DataLoad11_thumb.png?imgmax=800&quot; width=&quot;448&quot; height=&quot;415&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;All that is left to do now is populate the freeform &lt;strong&gt;FrenchCountryRegionName &lt;/strong&gt;and &lt;strong&gt;SpanishCountryRegionName &lt;/strong&gt;attributes of the &lt;strong&gt;CountryRegion &lt;/strong&gt;entity. Same method, different TSQL. Here is the code:&lt;/p&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- insert French country name attribute values into mdm.tblStgMemberAttribute&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INSERT INTO &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblStgMemberAttribute                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;ModelName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;EntityName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberType_ID                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberCode                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AttributeName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AttributeValue                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT DISTINCT                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Geography&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;CountryRegion&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;CountryRegionCode                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;FrenchCountryRegionName&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;FrenchCountryRegionName                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AdventureWorksDW2008R2..DimGeography &lt;/span&gt;&lt;/code&gt;&amp;#160;&amp;#160; &lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;&lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- insert Spanish country name attribute values into mdm.tblStgMemberAttribute&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;INSERT INTO &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.tblStgMemberAttribute                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;(                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;ModelName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;EntityName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberType_ID                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;MemberCode                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AttributeName                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AttributeValue                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;)                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT DISTINCT                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;Geography&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;CountryRegion&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;1                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;CountryRegionCode                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: red&quot;&gt;&#39;SpanishCountryRegionName&#39;                    &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;SpanishCountryRegionName                    &lt;br /&gt;&amp;#160; &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;AdventureWorksDW2008R2..DimGeography&lt;/span&gt;&lt;/code&gt;&amp;#160; &lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;div&gt;If you want to, admire your handiwork the same way you did before by browsing to the &lt;strong&gt;Explorer &lt;/strong&gt;and viewing the contents of the &lt;strong&gt;CountryRegion &lt;/strong&gt;entity, now complete with country names in French and Spanish.&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;&lt;strong&gt;TIP:&lt;/strong&gt; if you want to clear out the staging tables run the following sproc.&lt;/div&gt; &lt;form method=&quot;post&quot; action=&quot;http://www.simple-talk.com/default.php&quot;&gt;   &lt;table border=&quot;0&quot; cellspacing=&quot;0&quot; cellpadding=&quot;0&quot; width=&quot;100%&quot; height=&quot;100%&quot;&gt;&lt;tbody&gt;       &lt;tr&gt;         &lt;td class=&quot;workpane&quot; valign=&quot;top&quot;&gt;           &lt;div class=&quot;content&quot;&gt;             &lt;div style=&quot;display: block&quot; id=&quot;result&quot; class=&quot;result&quot;&gt;&lt;code style=&quot;font-size: 12px&quot;&gt;&lt;span style=&quot;color: green&quot;&gt;-- clear all staging table records&amp;#160; &lt;br /&gt;&lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;EXEC &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;mdm.udpStagingClear &lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;NULL, NULL, &lt;/span&gt;&lt;span style=&quot;color: black&quot;&gt;2&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;DEFAULT&lt;/span&gt;&lt;span style=&quot;color: gray&quot;&gt;, &lt;/span&gt;&lt;span style=&quot;color: blue&quot;&gt;DEFAULT&lt;/span&gt;&lt;/code&gt;&lt;/div&gt;           &lt;/div&gt;         &lt;/td&gt;       &lt;/tr&gt;     &lt;/tbody&gt;&lt;/table&gt; &lt;/form&gt;  &lt;div&gt;On to &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-derived.html&quot;&gt;Creating a Derived Hierarchy&lt;/a&gt;&lt;/div&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/beginning-mds-loading-members.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_COFToPnXCXk/Swx9ggQ8bLI/AAAAAAAABBY/Uzg37XsJSwo/s72-c/DataLoad01_thumb.png?imgmax=800" height="72" width="72"/><thr:total>6</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-7499975817247482340</guid><pubDate>Wed, 25 Nov 2009 00:42:00 +0000</pubDate><atom:updated>2009-11-24T21:26:45.742-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>Beginning MDS - Creating Attributes (Part 4 of 7)</title><description>&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633745(SQL.105).aspx&quot;&gt;Attributes&lt;/a&gt; are defined within entities. An attribute contains values that help to describe the member they’re related to. For example our ProductName leaf entity within a Product model could have a freeform attribute defined to hold each item&#39;s Standard Cost or Weight. Attributes can also reference members of other entities defined within the same model. By referencing members in other entities we can maintain a master list of say Colors (in the Color entity) and then relate members of the product entity to the color entity, very much like a foreign key relationship (in fact, it &lt;em&gt;is &lt;/em&gt;a foreign key relationship)&lt;/p&gt;  &lt;h5&gt;Walkthrough&lt;/h5&gt;  &lt;p&gt;In this walkthrough we&#39;re going to create attributes on the &lt;strong&gt;City&lt;/strong&gt;, &lt;strong&gt;StateProvince&lt;/strong&gt; and &lt;strong&gt;CountryRegion&lt;/strong&gt; entities within the &lt;strong&gt;Geography&lt;/strong&gt; model.&lt;/p&gt;  &lt;p&gt;Attributes are defined and maintained within entities, so on the &lt;strong&gt;Master Data Manager &lt;/strong&gt;page select &lt;strong&gt;System Administration&lt;/strong&gt; to administer the entities we created in the previous post.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9U7ATzlI/AAAAAAAABE0/4_n3BepVW9Y/s1600-h/Attributes01%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;MasterDataManager&quot; border=&quot;0&quot; alt=&quot;MasterDataManager&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9VRZF3yI/AAAAAAAABE4/d3oZbNvoxGc/Attributes01_thumb.png?imgmax=800&quot; width=&quot;421&quot; height=&quot;397&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Model Explorer&lt;/strong&gt; page select &lt;strong&gt;Manage &amp;gt; Entities. &lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9VeiLx4I/AAAAAAAABE8/bSZNvXpWv48/s1600-h/Attributes02.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;ManageEntities&quot; border=&quot;0&quot; alt=&quot;ManageEntities&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9Vv_2nWI/AAAAAAAABFA/u-TFbxBaFa8/Attributes02_thumb.png?imgmax=800&quot; width=&quot;245&quot; height=&quot;268&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Entity Maintenance &lt;/strong&gt;page ensure &lt;em&gt;Geography&lt;/em&gt; is selected in the &lt;strong&gt;Model &lt;/strong&gt;dropdown. Click the &lt;strong&gt;City &lt;/strong&gt;entity to select it and note the toolbar buttons become visible. Click the pencil icon to edit the properties of the &lt;strong&gt;City &lt;/strong&gt;entity. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9VyEp3uI/AAAAAAAABFE/9uB_00rH288/s1600-h/AttributesSelectedCityElement%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;AttributesSelectedCityElement&quot; border=&quot;0&quot; alt=&quot;AttributesSelectedCityElement&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9WHwt4kI/AAAAAAAABFQ/pR6s1oajjFc/AttributesSelectedCityElement_thumb.png?imgmax=800&quot; width=&quot;402&quot; height=&quot;268&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Edit Entity: City&lt;/strong&gt; screen in the &lt;strong&gt;Leaf Attributes &lt;/strong&gt;section click the &lt;strong&gt;+&lt;/strong&gt; sign to add a new attribute underneath the default &lt;strong&gt;Name&lt;/strong&gt; and &lt;strong&gt;Code&lt;/strong&gt; attributes that already exist by default. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9WUkvG8I/AAAAAAAABFg/D7jiv31jeXM/s1600-h/Attributes04%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;AddAttribute&quot; border=&quot;0&quot; alt=&quot;AddAttribute&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9Wta9XeI/AAAAAAAABFk/UpokQwsguwU/Attributes04_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;455&quot; height=&quot;318&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Entity: City Add Attribute&lt;/strong&gt; screen, select the &lt;strong&gt;Domain-based &lt;/strong&gt;radio button, type &lt;em&gt;StateProvince &lt;/em&gt;in the &lt;strong&gt;Name &lt;/strong&gt;textbox and select &lt;strong&gt;StateProvince&lt;/strong&gt; in the &lt;strong&gt;Entity &lt;/strong&gt;dropdown. In the MDS repository DB this will create a physical foreign key constraint between the &lt;strong&gt;City&lt;/strong&gt; and &lt;strong&gt;StateProvince&lt;/strong&gt; entities. Click the save button when done. Click save again to save and exit the &lt;strong&gt;City&lt;/strong&gt; &lt;strong&gt;entity maintenance&lt;/strong&gt; screen. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9W3kG_zI/AAAAAAAABFs/7OMrB1IjO4o/s1600-h/Attributes05%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;DomainBasedAttribute&quot; border=&quot;0&quot; alt=&quot;DomainBasedAttribute&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9XJyqv-I/AAAAAAAABFw/nV_zm0YmVY8/Attributes05_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;348&quot; height=&quot;436&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Using the same steps as above create a domain-based attribute on the &lt;strong&gt;StateProvince&lt;/strong&gt; entity with the name &lt;em&gt;CountryRegion &lt;/em&gt;referring to &lt;strong&gt;CountryRegion&lt;/strong&gt; entity. Click save and then save again to exit the &lt;strong&gt;StateProvince&lt;/strong&gt; &lt;strong&gt;entity maintenance&lt;/strong&gt; screen. &lt;/p&gt;  &lt;p&gt;Now we&#39;ll add two attributes to the &lt;strong&gt;CountryRegion&lt;/strong&gt; entity using the Free-form option, one for &lt;strong&gt;FrenchCountryRegionName&lt;/strong&gt; and one for &lt;strong&gt;SpanishCountryRegionName&lt;/strong&gt;. Use the same steps as before to create these two attributes.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Name: &lt;/strong&gt;FrenchCountryRegionName, &lt;strong&gt;DataType: &lt;/strong&gt;Text, &lt;strong&gt;Length: &lt;/strong&gt;100 &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Name: &lt;/strong&gt;SpanishCountryRegionName, &lt;strong&gt;DataType: &lt;/strong&gt;Text, &lt;strong&gt;Length:&lt;/strong&gt; 100 &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9XY7qQ6I/AAAAAAAABF8/6xTIIoc2yPk/s1600-h/AttributesFrenchCountryRegionName%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;FreeFormAttribute&quot; border=&quot;0&quot; alt=&quot;FreeFormAttribute&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9XsGnJXI/AAAAAAAABGE/uuvaKF7Mwyc/AttributesFrenchCountryRegionName_thumb.png?imgmax=800&quot; width=&quot;250&quot; height=&quot;388&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;After adding the &lt;strong&gt;FrenchCountryRegionName &lt;/strong&gt;and &lt;strong&gt;SpanishCountryRegionName &lt;/strong&gt;leaf attributes your &lt;strong&gt;CountryRegion&lt;/strong&gt; entity should now look like the shot below.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9X9ShlEI/AAAAAAAABGM/b6pw5xDmXG0/s1600-h/Attributes07_5%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;LanguageAttributes&quot; border=&quot;0&quot; alt=&quot;LanguageAttributes&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9YHYyr5I/AAAAAAAABGQ/WCey7GpNo90/Attributes07_5_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;557&quot; height=&quot;391&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Let&#39;s have a look at what we&#39;ve got so far. Click on the &lt;strong&gt;Explorer&lt;/strong&gt; link in the top left of the screen and click the &lt;strong&gt;Geography&lt;/strong&gt; model to display the model and its entities on the right-hand side of the screen.&amp;#160; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9YYBkcGI/AAAAAAAABGU/2mNJAjaiTAc/s1600-h/Attributes08_1%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;ViewModelEntities&quot; border=&quot;0&quot; alt=&quot;ViewModelEntities&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9YnOUFLI/AAAAAAAABGs/DYfq4q86BO4/Attributes08_1_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;645&quot; height=&quot;229&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On to &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-loading-members.html&quot;&gt;Loading Members &amp;amp; Attributes&lt;/a&gt;&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-attributes-part.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_COFToPnXCXk/Swx9VRZF3yI/AAAAAAAABE4/d3oZbNvoxGc/s72-c/Attributes01_thumb.png?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-2217864822725147726</guid><pubDate>Wed, 25 Nov 2009 00:41:00 +0000</pubDate><atom:updated>2009-11-24T21:25:20.995-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>Beginning MDS - Creating Entities (Part 3 of 7)</title><description>&lt;p&gt;One or more &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633723(SQL.105).aspx&quot;&gt;Entities&lt;/a&gt; can be defined within a model. Entities are the foundational objects within an individual model and serve as the containers for &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633724(SQL.105).aspx&quot;&gt;Members&lt;/a&gt;, the data records themselves. For example a product model could contain entities such as ProductName, Category, SubCategory and Color to describe and classify the model contents. The Color entity would contain members for &lt;em&gt;Blue&lt;/em&gt;, &lt;em&gt;Red, Yellow &lt;/em&gt;etc. The ProductName entity would contain the names of the products themselves and so on.&lt;/p&gt;  &lt;h5&gt;Walkthrough&lt;/h5&gt;  &lt;p&gt;In this walkthrough we&#39;re going to create entities for City, StateProvince and CountryRegion&lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Master Data Manager&lt;/strong&gt; select &lt;strong&gt;System Administration &lt;/strong&gt;which is where we will manage the structures that make up the &lt;strong&gt;Geography &lt;/strong&gt;model.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9MgK2gRI/AAAAAAAABC0/CzwsifBEaJg/s1600-h/Models01%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;MasterDataManager&quot; border=&quot;0&quot; alt=&quot;MasterDataManager&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9NIh8BkI/AAAAAAAABC4/6-5M4GDqjKc/Models01_thumb.png?imgmax=800&quot; width=&quot;433&quot; height=&quot;422&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Model Explorer &lt;/strong&gt;page select &lt;strong&gt;Manage &amp;gt; Entities&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9NEECmGI/AAAAAAAABDA/hwrjYHcuzSM/s1600-h/Entities02%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;Entities02&quot; border=&quot;0&quot; alt=&quot;Entities02&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9Noj_XSI/AAAAAAAABDE/Ocy8Gezqid8/Entities02_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;297&quot; height=&quot;278&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;When we created the &lt;strong&gt;Geography&lt;/strong&gt; model we chose to automatically create an entity with the same name as the model. We’re going to change the name of that auto-created entity from &lt;strong&gt;Geography&lt;/strong&gt; to &lt;strong&gt;City&lt;/strong&gt;. In the &lt;strong&gt;Entity Maintenance &lt;/strong&gt;screen select &lt;strong&gt;Geography &lt;/strong&gt;in the &lt;strong&gt;Model &lt;/strong&gt;dropdown. This will display any entities defined within the model.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9N72T6yI/AAAAAAAABDM/xa4AnJ-u-zc/s1600-h/Entities03%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;Entities03&quot; border=&quot;0&quot; alt=&quot;Entities03&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9OAjal3I/AAAAAAAABDU/hNxZ-xTaj2k/Entities03_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;376&quot; height=&quot;328&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Click the line for the &lt;strong&gt;Geography &lt;/strong&gt;entity (the only one there). This will display the tools available to us for working with the selected entity. Click the pencil icon to edit the entity metadata.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9OE_XVuI/AAAAAAAABDc/uLj9-KgtIu0/s1600-h/EntitiesChangeName1.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;EntitiesChangeName1&quot; border=&quot;0&quot; alt=&quot;EntitiesChangeName1&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9ObBarVI/AAAAAAAABDo/M-GE61eDGIg/EntitiesChangeName1_thumb.png?imgmax=800&quot; width=&quot;396&quot; height=&quot;303&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Edit Entity: City &lt;/strong&gt;section change the value in the &lt;strong&gt;Entity name &lt;/strong&gt;textbox from &lt;em&gt;Geography&lt;/em&gt; to &lt;em&gt;City&lt;/em&gt;. Click save when done. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9O3XCzdI/AAAAAAAABDw/-FLpJD3mJWM/s1600-h/EntitiesChangeName2%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;EntitiesChangeName2&quot; border=&quot;0&quot; alt=&quot;EntitiesChangeName2&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9O2E9KYI/AAAAAAAABD0/DBKc12RfTyU/EntitiesChangeName2_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;456&quot; height=&quot;343&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Now we&#39;re going to add two new entities. In the &lt;strong&gt;Entity Maintenance&lt;/strong&gt; screen hit the &lt;strong&gt;+ &lt;/strong&gt;sign to add a new entity.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9N72T6yI/AAAAAAAABD8/gbG9izdq2UY/s1600-h/Entities03%5B2%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;Entities03&quot; border=&quot;0&quot; alt=&quot;Entities03&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9OAjal3I/AAAAAAAABEE/Vw-kIVA0T2U/Entities03_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;331&quot; height=&quot;288&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Add Entity&lt;/strong&gt; screen enter &lt;em&gt;StateProvince&lt;/em&gt; in the &lt;strong&gt;Entity name &lt;/strong&gt;textbox and choose &lt;strong&gt;No &lt;/strong&gt;in the &lt;strong&gt;Enable Explicit hierarchies and collections &lt;/strong&gt;dropdown. Click the &lt;strong&gt;Save &lt;/strong&gt;button. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9PzDTSEI/AAAAAAAABEM/0rVOYTI_EgY/s1600-h/AttributesCreateStateProvince%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;AttributesCreateStateProvince&quot; border=&quot;0&quot; alt=&quot;AttributesCreateStateProvince&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Swx9QEaGGRI/AAAAAAAABEU/hP9Ezwy56O8/AttributesCreateStateProvince_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;276&quot; height=&quot;244&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Create another entity with the same settings but call this one &lt;em&gt;CountryRegion&lt;/em&gt;. &lt;/p&gt;  &lt;p&gt;Your list of entities should look like the shot below.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9QNWNtqI/AAAAAAAABEc/LnJOVFvMlgM/s1600-h/EntityList%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;EntityList&quot; border=&quot;0&quot; alt=&quot;EntityList&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9QlVNcHI/AAAAAAAABEg/t6Vf-UuiOUw/EntityList_thumb.png?imgmax=800&quot; width=&quot;411&quot; height=&quot;263&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;On to &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-attributes-part.html&quot;&gt;Creating Attributes&lt;/a&gt;&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-entities-part-3.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_COFToPnXCXk/Swx9NIh8BkI/AAAAAAAABC4/6-5M4GDqjKc/s72-c/Models01_thumb.png?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-6107788398705447679</guid><pubDate>Wed, 25 Nov 2009 00:40:00 +0000</pubDate><atom:updated>2009-11-25T07:14:32.277-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>Beginning MDS - Creating a Model (Part 2 of 7)</title><description>&lt;p&gt;&lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633746(SQL.105).aspx&quot;&gt;Models&lt;/a&gt; are the highest level container within an instance of MDS. Models are created to manage groups of similar data. In BI-speak it’s not much of a stretch to equate a model with a dimension, they’re not exactly the same but thinking about it in this way helps understand the concept. The two classic master data models are that you’ll see in most examples are Product or Customer. Once a model is created we can define objects within it including &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633723(SQL.105).aspx&quot;&gt;entities&lt;/a&gt;, &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633745(SQL.105).aspx&quot;&gt;attributes&lt;/a&gt; and &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/ee633737(SQL.105).aspx&quot;&gt;hierarchies&lt;/a&gt;, among others.&lt;/p&gt;  &lt;h5&gt;Walkthrough&lt;/h5&gt;  &lt;p&gt;In this walkthrough we&#39;re going to create a Geography model to manage our geographical master data. Subsequent walkthroughs will then build other objects inside our Geography model. &lt;/p&gt;  &lt;p&gt;Browse to the &lt;strong&gt;Master Data Manager&lt;/strong&gt; page, the primary management web page for MDS found (if default settings are used) at &lt;a href=&quot;http://localhost/MDS&quot;&gt;http://localhost/MDS&lt;/a&gt;. Click &lt;strong&gt;System Administration.&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9CNi084I/AAAAAAAABB0/WymiXSa-MMI/s1600-h/Models01.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;MasterDataManager&quot; border=&quot;0&quot; alt=&quot;MasterDataManager&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9CfQnD2I/AAAAAAAABB4/ZWZsOxAnS6M/Models01_thumb.png?imgmax=800&quot; width=&quot;447&quot; height=&quot;435&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Model Explorer&lt;/strong&gt; page select &lt;strong&gt;Manage &amp;gt; Models&lt;/strong&gt; &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9CpixxII/AAAAAAAABB8/gvG3-tHKpBM/s1600-h/Models02%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;ManageModels&quot; border=&quot;0&quot; alt=&quot;ManageModels&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9DlvhMZI/AAAAAAAABCA/YbzxzakLYF8/Models02_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;335&quot; height=&quot;286&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In the &lt;strong&gt;Model Maintenance &lt;/strong&gt;screen you will see a list of all the existing models. If you’ve just done a fresh install the only model you’ll see will be &lt;strong&gt;Metadata&lt;/strong&gt;. Click the + button to create a new model.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9D4t0RoI/AAAAAAAABCI/2lV1zTjrDvk/s1600-h/ModelCreationPlusButton.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;AddModel&quot; border=&quot;0&quot; alt=&quot;AddModel&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Swx9EHiv8vI/AAAAAAAABCM/1eFDIZYZAM0/ModelCreationPlusButton_thumb.png?imgmax=800&quot; width=&quot;320&quot; height=&quot;295&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Name the model &lt;em&gt;Geography&lt;/em&gt; and click &lt;strong&gt;Save&lt;/strong&gt;. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Swx9EUw0GFI/AAAAAAAABCg/HKCQKGa2rC8/s1600-h/ModelCreationGeography%5B1%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;ModelCreationGeography&quot; border=&quot;0&quot; alt=&quot;ModelCreationGeography&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Swx9E1LJ5iI/AAAAAAAABCk/kY_KVTaWDL4/ModelCreationGeography_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;321&quot; height=&quot;331&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The Geography model has now been created.&lt;/p&gt;  &lt;p&gt;On to &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-entities-part-3.html&quot;&gt;Creating Entities&lt;/a&gt;&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-model-part-2-of.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_COFToPnXCXk/Swx9CfQnD2I/AAAAAAAABB4/ZWZsOxAnS6M/s72-c/Models01_thumb.png?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-8071091063905226934</guid><pubDate>Wed, 25 Nov 2009 00:39:00 +0000</pubDate><atom:updated>2009-11-24T20:13:43.253-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><title>Beginning Master Data Services (Part 1 of 7)</title><description>&lt;p&gt;Like many other geeks out there I learn by doing. One of the things on my todo list has been to get familiar with MDS. During my experimentation with the recently released CTP I figured I&#39;d take some notes on what I learned. These notes have evolved into a series of posts that will walk through some of the basics in putting MDS to work.&lt;/p&gt;  &lt;p&gt;At this point we&#39;re only in the first public CTP, but everyone&#39;s just a bit curious to kick the MDS tires a bit. We all know there&#39;s quite a lot of functionality baked into the product in terms of workflow, versioning, web services and APIs but how about just the basics. These posts act as a quick start to see MDS in action. Once you’ve put some data into the system you can pull back the covers and have a look at how it happened and where the data is. We all learn something that way.&lt;/p&gt;  &lt;p&gt;The walkthroughs will go through the creation of a very simple Geography MDS model based on the data contained in the DimGeography table in the &lt;a href=&quot;http://msftdbprodsamples.codeplex.com/Release/ProjectReleases.aspx?ReleaseId=24854&quot;&gt;SQL 2008R2 release of the AdventureWorks DW database&lt;/a&gt;. In the posts to follow we will walk through the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-model-part-2-of.html&quot;&gt;Creating a Model&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-entities-part-3.html&quot;&gt;Creating Entities&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-attributes-part.html&quot;&gt;Creating Attributes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-loading-members.html&quot;&gt;Loading Members &amp;amp; Attributes&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-derived.html&quot;&gt;Creating a Derived Hierarchy&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-getting-at-data-with-tsql.html&quot;&gt;Getting at the Data with TSQL&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;All posts assume that you have already installed MDS and have the AdventureWorksDW2008R2 DB set up on the same server.&lt;/p&gt;  &lt;p&gt;On to &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/beginning-mds-creating-model-part-2-of.html&quot;&gt;Creating a Model&lt;/a&gt;&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/beginning-master-data-services-part-1.html</link><author>noreply@blogger.com (Nick Barclay)</author><thr:total>7</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-1859976896098908928</guid><pubDate>Tue, 17 Nov 2009 01:13:00 +0000</pubDate><atom:updated>2009-11-18T10:08:09.075-05:00</atom:updated><title>How believable are paid evangelists, anyway?</title><description>&lt;p&gt;Many of you may know Don Dodge - he’s a start up and technology evangelist who, up until a day ago, worked for Microsoft. Apparently Don was part of the most recent round of layoffs. He was immediately snapped up by Google. Good for them.&lt;/p&gt;  &lt;p&gt;The funny thing here is the contents of Don’s &lt;a href=&quot;http://dondodge.typepad.com/the_next_big_thing/2009/11/thanks-microsoft-hello-google.html&quot;&gt;Thanks Microsoft, Hello Google&lt;/a&gt; post. While he’s completely entitled to his opinions, I am amazed at how quickly they changed. It really made me wonder just how much of an evangelist’s passion is determined by who signs their paycheck. As usual, Fake Steve Jobs &lt;a href=&quot;http://www.fakesteve.net/2009/11/hell-hath-no-fury-like-a-borgocrat-scorned.html&quot;&gt;provides analysis as only he can.&lt;/a&gt;&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/how-believable-are-paid-evangelists.html</link><author>noreply@blogger.com (Nick Barclay)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-8206155804833249352</guid><pubDate>Fri, 13 Nov 2009 15:07:00 +0000</pubDate><atom:updated>2009-11-13T10:23:34.057-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Master Data Services</category><category domain="http://www.blogger.com/atom/ns#">SQL Server</category><title>Who let the Bulldog out?</title><description>&lt;h5&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Sv12PUxWWgI/AAAAAAAAA2g/LPSF-bm6B00/s1600-h/bulldog%5B8%5D.jpg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 0px 15px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;bulldog&quot; border=&quot;0&quot; alt=&quot;bulldog&quot; align=&quot;left&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Sv12Pvv4MnI/AAAAAAAAA2k/CK8nOG52RIU/bulldog_thumb%5B6%5D.jpg?imgmax=800&quot; width=&quot;300&quot; height=&quot;176&quot; /&gt;&lt;/a&gt; &lt;/h5&gt;  &lt;p&gt;‘member what happened when Microsoft said “Hey, let’s bundle a reporting engine into the SQL Server license”, “Hey let’s bundle an OLAP engine into the SQL Server license”, “Hey let’s bundle an ETL engine into the SQL Server license”? Well, they’re doing it again. &lt;/p&gt;  &lt;p&gt;The other day I downloaded and installed the latest &lt;a href=&quot;http://www.microsoft.com/sqlserver/2008/en/us/R2Downloads.aspx&quot;&gt;CTP of SQL Server 2008 R2&lt;/a&gt;. Although there are plenty of good things to talk about in this release the one that really interests me (and many others) is Master Data Services or MDS, originally codenamed “Bulldog”. Once again Microsoft is being disruptive by bundling yet another &lt;strong&gt;&amp;lt;InsertNameHere&amp;gt; Services &lt;/strong&gt;product into the SQL Server stack.&lt;/p&gt;  &lt;h5&gt;MDM is Enterprise only. Not for long…&lt;/h5&gt;  &lt;p&gt;In its magic quadrants, Gartner splits analysis of Master Data vendors into &lt;a href=&quot;http://mediaproducts.gartner.com/reprints/oracle/article78/article78.html&quot;&gt;Customer&lt;/a&gt; and &lt;a href=&quot;http://mediaproducts.gartner.com/reprints/oracle/article82/article82.html&quot;&gt;Product&lt;/a&gt; master data categories. Their analysis of MDM players contains vendors that are very much enterprise focused and don’t sell huge volumes of licenses. Many of these vendors reference Fortune 500 companies as their customers. This reinforced by belief that MDM is very much an enterprise only playground. The license and maintenance revenue from small volumes of customers is enough to sustain these vendors’ business models. Translation: big license fees &amp;amp; big maintenance fees. I’m sure the products are worth every penny, but not every business can justify spending big money on buying and implementing MDM.&lt;/p&gt;  &lt;p&gt;Companies that deal with hundreds of thousands, or even millions, of different SKUs or unique customers need a way to manage that one version of the truth for their incredibly large and complex global businesses. This is fine for those that can justify spending the amount of money needed to accomplish this, but what about the company with just 500 SKUs and 10,000 customers? They may still have tons of money, hell they my even be Fortune 500, but they may not have mountains of master data records to manage. Even the most cashed up companies would think twice about spending vast sums of money on ways to manage small volumes of critical master data. IMO the enterprise vendors are not interested in these companies and these companies are not interested in enterprise vendors. &lt;/p&gt;  &lt;p&gt;Enter MDS. Cost? Included in SQL Server license.&lt;/p&gt;  &lt;h5&gt;The Incumbents&lt;/h5&gt;  &lt;p&gt;I’m sure the established players in the MDM space are snickering behind their hands at Microsoft’s audacity in trying to muscle in on the MDM market. They’re already hard at work compiling comprehensive lists of “but does it have…?”, “can it do…?”, “it can’t…” and the ever-popular “C’mon, it’s Microsoft! Wait ‘till SP1 comes out.”&lt;/p&gt;  &lt;p&gt;To be sure, there are plenty of good reasons the incumbents have as to why MDS may pale in comparison to their own technology stack. There is no question that MDS will be playing catch up here. Most of the others have been in business a long time and have excellent, very mature products. No argument there. Keep in mind, though, that MDS is also based on a pretty mature MDM product, &lt;a href=&quot;http://www.stratature.com/&quot;&gt;Stratature&lt;/a&gt;, that was acquired by Microsoft in 2007. Nonetheless I’m sure there will not be as many features baked into MDS v1 when compared with the other market players.&lt;/p&gt;  &lt;p&gt;The incumbents are focused on the big enterprise fish who have nasty, hairy, complicated master data problems that need to be solved. Of course, that’s their target market. These are the customers who will can (and want to) pay for what the incumbents have to offer. No doubt it’s good stuff, but what about the business who just wants a central place to manage the names and hierarchies of their 100-ish sales territories and their exclusive list of 2,000 customers? Do they need all the enterprise MDM bells, whistles and cost? Probably not. They’ve been making do with Excel. Until now.&lt;/p&gt;  &lt;h5&gt;Got Lookup Tables?&lt;/h5&gt;  &lt;p&gt;Raise your hand if you’ve ever created a lookup table that had to be maintained or watched over by someone who is umm, not so technical. If you suggested forking out a large pile of cash to purchase MDM software to assist this non-technical person maintain proper control of small volumes of simple data you were probably laughed at.&lt;/p&gt;  &lt;p&gt;“Do it in Excel”, “Create a table in a DB and build a UI for maintenance”, “Use Access…”. These are the thin-end-of-the-wedge scenarios that will allow MDS to gain footholds in places that the other vendors would not even get out of bed for. Like Analysis Services and Reporting Services the barriers of entry for the IT geeks to start playing around with and eventually deploying MDM into production will be drastically lowered.&lt;/p&gt;  &lt;p&gt;Don’t get me wrong, there’s still going to be plenty of big, complex enterprise MDM scenarios that MDS will tackle as well. *But* (I think) there is going to be a whole new breed of non-enterprise MDM customer that will start making themselves known very soon.&lt;/p&gt;  &lt;h5&gt;The 4 P’s of MDM&lt;/h5&gt;  &lt;p&gt;When you start looking into the world of MDM one of the first things you quickly realize is that the software, while critical to the process, is not even close to the complete solution. Anyone who has been involved with an MDM project will tell you that while good software definitely helps, the real success of a master data initiative is inexorably linked to all of the 4 P’s of MDM:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Processes &lt;/li&gt;    &lt;li&gt;People &lt;/li&gt;    &lt;li&gt;Politics &lt;/li&gt;    &lt;li&gt;Product &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;Notice that product only makes up 25% of this. Figuring out the technicalities how to use MDS is not going to be much of a chore for most BI / IT pros. The real challenge is getting the other 75% of the 4 P’s in place. &lt;/p&gt;  &lt;p&gt;MDS, as part of the SQL stack, frees up funds to spend on getting all four P’s right. There is reasonable about of consulting hours that can be purchased with the money saved when you don’t see any increase in SW license costs.&lt;/p&gt;  &lt;h5&gt;What’s under the hood?&lt;/h5&gt;  &lt;p&gt;As I get stuck into the internals of the product I will blog more. From what I’ve toyed around with so far the product looks interesting, is simple to set up, and should be pretty easy for both geeks (getting stuck into the DB, web services and API) and the non-geeks (who will use the web-based UI to manage things) to get a handle on. On digging into some of the more complex looking objects within the repository DB and web-based UI you can see that there is a lot of good stuff to explore and experiment with. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://sqlblog.com/blogs/jamie_thomson/archive/2009/11/09/fuzzy-logic-and-regex-come-to-t-sql-in-sql-server-2008-r2-available-now.aspx&quot;&gt;Jamie Thompson blogged about his delight&lt;/a&gt; in discovering that MDS implements some very cool Regex and Fuzzy lookup functionality. I’m sure Jamie’s next question was whether there are any MDS-flavored custom SSIS transforms or tasks included in the initial release. I asked the same question. Answer: There aren’t any. Yet. The group PM for MDS is &lt;a href=&quot;http://blogs.msdn.com/knight_reign/default.aspx&quot;&gt;Kirk Haselden&lt;/a&gt;, you may remember Kirk from such products as SSIS where was the dev manager and one of the product’s primary designers. With Kirk’s involvement you can be pretty damn sure there will be some SSIS goodness that will make its way into MDS at some point in the foreseeable future. For now, though, you can interact with data via the MDS web service, API or just plain ‘ol TSQL. Plenty of options there for SSIS to hook into. More on this as I play around with the product.&lt;/p&gt;  &lt;h5&gt;Final Thoughts&lt;/h5&gt;  &lt;p&gt;MDS will go head-to-head with the established enterprise MDM players, no question. In the short term the product will probably not make much headway in that market, though. No surprises there. However, think of what the potential is for businesses that the big vendors don’t care about right now. Those who own SQL Server licenses and have even the smallest requirement for managed master data are all fair game.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/who-let-bulldog-out.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_COFToPnXCXk/Sv12Pvv4MnI/AAAAAAAAA2k/CK8nOG52RIU/s72-c/bulldog_thumb%5B6%5D.jpg?imgmax=800" height="72" width="72"/><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-3584477384675161359</guid><pubDate>Thu, 05 Nov 2009 12:47:00 +0000</pubDate><atom:updated>2009-11-05T07:50:13.161-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MOSS 2010</category><category domain="http://www.blogger.com/atom/ns#">PerformancePoint</category><title>PerformancePoint Services - What’s Deprecated</title><description>&lt;p&gt;Continuing on from the &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/performancepoint-services-whats-new.html&quot;&gt;What’s New&lt;/a&gt; and &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/performancepoint-whats-deprecated.html&quot;&gt;What’s Changed / Improved / Different&lt;/a&gt; posts, here are some of the things that will be going away in PerformancePoint Services.&lt;/p&gt;  &lt;h3&gt;OWC Support&lt;/h3&gt;  &lt;p&gt;No more OWC-based PivotCharts, PivotTables, Trend Charts and&amp;#160; Excel Spreadsheets. Good.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;ASP.NET Dashboard Preview Site&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;One of my &lt;a href=&quot;http://nickbarclay.blogspot.com/2007/06/pps-m-dashboard-designer-sandbox.html&quot;&gt;favorite features of PPS 2007&lt;/a&gt; is now gone. Because the storage and management of elements are now almost entirely MOSS based you will need a complete installation of MOSS 2010 to be able to play with the new stuff. The silver lining here is that MOSS 2010 will be &lt;a href=&quot;http://blogs.msdn.com/sharepoint/archive/2009/10/19/sharepoint-2010.aspx&quot;&gt;supported in a Developer configuration on Vista and Win7 PCs&lt;/a&gt;. So now developers will be able run their own sandbox environment locally.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Support for SSAS 2000 databases&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;Anyone who still has an SSAS 2000 DB running in production ought to be ashamed of themselves.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;ODBC Tabular Data Sources&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;ODBC data sources were a rarely used feature of PPS 2007, and BSM for that matter. Although you could connect to just about any data source you wanted to, you could only bring return a scalar value per data source element which made these data source types tedious and of little real value. &lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;32 bit Architecture&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;Because PPS is now part of the MOSS 2010 furniture it goes without saying that it only supported on 64 bit platforms. Hello better scalability.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/performancepoint-whats-deprecated.html</link><author>noreply@blogger.com (Nick Barclay)</author><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-3381665102899560774</guid><pubDate>Thu, 05 Nov 2009 12:46:00 +0000</pubDate><atom:updated>2009-11-05T07:50:59.827-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MOSS 2010</category><category domain="http://www.blogger.com/atom/ns#">PerformancePoint</category><title>PerformancePoint Services - What’s Changed / Improved / Different</title><description>&lt;p&gt;Continuing on from the &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/performancepoint-services-whats-new.html&quot;&gt;What’s New&lt;/a&gt; post, here are some of the changes and improvements to the product. This post covers some of the more subtle changes and improvements to the product. You could argue that some of these belong in the “what’s new” post, but let’s not split hairs here.&lt;/p&gt;  &lt;p&gt;Again this is by no means an exhaustive list, but I think I’ve got most of major ones in here. As before I’d love to include screenshots but cannot because they’re from the Beta 1 build and MS have asked me not to include these. Beta 2 should hopefully be out some time this month.&lt;/p&gt;  &lt;h3&gt;Analytic Charts &amp;amp; Grids&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;The overall improvements to the Analytic report engine both from a designer and end user perspective continues to get better. Here are some of the major improvements. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Improved chrome - &lt;/strong&gt;Charts now look shinier. Like pie charts this is something that many users will appreciate but doesn’t really add any significant analytical value. Nonetheless pretty things tend to impress some users. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Select measures - &lt;/strong&gt;Users can add or remove individual measures from chart or grid using a set of checkboxes.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Interactive chart labels - &lt;/strong&gt;In PPS 2007 the graphical elements themselves i.e. the bars or lines within the graphs were the interactive parts. The labels on the X and Y axes of graphs can now also be right-clicked to expose interactive functionality too.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Filtering - &lt;/strong&gt;Top / Bottom N filtering capabilities are available for both end users and developers.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;SSAS cell formatting surfaced - &lt;/strong&gt;Cube-based cell formats will be brought through and displayed in analytic grids. [Big round of applause]&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Per measure formatting – &lt;/strong&gt;The format of individual members can be altered in the designer. Nice feature but because the analytic reports are pulling data from a cube the formats should be correctly applied therein to begin with.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;No more design time browse button - &lt;/strong&gt;In order to test the interactivity of a particular analytic report there is no need to launch a separate window via the Browse button. Designers can interact with the charts and grids directly.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Better cube object browser experience - &lt;/strong&gt;The cube metadata in the Details Browser is properly organized in the way we are used to within SSMS, Excel and others. Dimension attributes, attribute hierarchies and folders are grouped within their parent dimension containers. You can also filter the content of the pane for a specific measure group.&lt;/p&gt;  &lt;h3&gt;Scorecards&lt;/h3&gt;  &lt;p&gt;In general there are several new interactivity &amp;amp; layout capabilities that have made their way into scorecards. I haven’t had much of a chance to explore the changes to this element fully. Suffice it to say that there will be more opportunities for people to try and make &lt;a href=&quot;http://nickbarclay.blogspot.com/2008/05/kpi-scorecard-dashboard-what-in-name.html&quot;&gt;scorecards into reports&lt;/a&gt; by treating the scorecard element as a pivot table and then being disappointed when it doesn’t deliver the exact functionality they expect. Hopefully the new scorecard power will be used with appropriate responsibility.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Dynamic dimensional axes – &lt;/strong&gt;scorecards support user interactivity with dimension hierarchies. In PPS 2007 you had to add individual members or sets and craft the axis hierarchy by hand. Now you can add, say, the All member of the Product Categories hierarchy and you will have full interactive access to all its descendants within the scorecard. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;New target metric display settings - &lt;/strong&gt;have a new set of dialogs with several new options including the ability to calculate and display the variance between the target and its associated actual. You can also configure the variance calculation to show either a Percentage of Variance or just a number. Within the Percentage of variance there is an option to show either a &lt;em&gt;Difference from value &lt;/em&gt;or &lt;em&gt;Progress toward value&lt;/em&gt;. &lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Data Sources&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Security per data source element - &lt;/strong&gt;This is a really good one. Security context can now be configured on each individual data source element. In PPS 2007 data source security was a server level setting and was a &lt;a href=&quot;http://nickbarclay.blogspot.com/2007/11/pps-data-source-connection-problems.html&quot;&gt;source of many questions&lt;/a&gt; in the PPS forum. In the latest version you can choose what security scenario you’d like to apply to each data source definition within Dashboard Designer. The two primary methods being the use of the Unattended Service Account or Per-User Security. The only difference between the SSAS and Tabular data source configuration options respect is the SSAS data sources offer the ability to make use the &lt;a href=&quot;http://nickbarclay.blogspot.com/2008/01/pps-data-connection-security-with.html&quot;&gt;CustomData connection string property&lt;/a&gt; as well.&lt;/p&gt;  &lt;h3&gt;KPIs&lt;/h3&gt;  &lt;p&gt;&lt;strong&gt;Multiple actuals per KPI – &lt;/strong&gt;You can now create more than one Actual within an individual KPI. This one sounds trivial but it’s not, it opens up the door to much richer KPIs. BSM and PPS 2007 supported exactly one actual metric per KPI. Because you can now have more than one actual the designer provides the ability to link each target metric to the appropriate actual metric. &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Metric cloning - &lt;/strong&gt;When configuring the data source of a specific metric you can point towards another metric and clone its settings. So you’ve already created a metric that has a data source, calculation or setting that you want to clone you can point the data source property of your new metric to the existing metric. Under the covers Dashboard Designer copies the settings of the target metric into your new metric. A nice time saver. Note however that this is a one time clone of settings, the element definitions will not remain synced thereafter.&lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Calculated metrics – &lt;/strong&gt;When configuring the data source property of a metric there are some new dialogs to help configure calculations. Using them you can create calculations that reference other KPI metrics. Some pre-built calculation will be available such as Growth as Percentage, all you need to do is fill in the formula to reference the appropriate metrics. The &lt;a href=&quot;http://blogs.msdn.com/performancepoint/archive/2009/10/30/creating-complex-kpis-with-calculated-metrics.aspx&quot;&gt;PPS team posted&lt;/a&gt; some details on this new feature the other day. This may come in handy for KPIs that source metric data from different places. On the other hand, if your KPI sources data from a single cube these kind of calculations should be baked into the cube itself whenever possible.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;Time Intelligence Formulas&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;Two new functions have been added to the STPS. They are &lt;font size=&quot;2&quot;&gt;the&lt;/font&gt;&lt;font color=&quot;#004080&quot; face=&quot;Courier New&quot;&gt; &amp;lt;PeriodName&amp;gt;ToDate&lt;/font&gt; and the &lt;font color=&quot;#004080&quot; face=&quot;Courier New&quot;&gt;Full&amp;lt;PeriodName&amp;gt;&lt;/font&gt; functions. They have been created to enable better period-to-date functionality. But couldn’t we already to that kind of stuff with the original PPS TI formulas? Sort of. If you wanted to do a YTD using PPS 2007’s TI functionality you would define a range of values with an STPS formula. This would return a set of appropriate period members. For example &lt;font color=&quot;#004080&quot; face=&quot;Courier New&quot;&gt;Year.FirstMonth : Year.Month&lt;/font&gt; would return a set of month members from Jan-Nov for the current year. This was great if you wanted to apply the set of members across a scorecard or report axis but it did not help if you wanted to do something like provide a YTD column on a Scorecard using TI. The new functions fill that need. When used together the &lt;font color=&quot;#004080&quot; face=&quot;Courier New&quot;&gt;…ToDate&lt;/font&gt; and &lt;font color=&quot;#004080&quot; face=&quot;Courier New&quot;&gt;Full…&lt;/font&gt;&lt;strong&gt; &lt;/strong&gt;functions return an aggregation object of sorts&lt;strong&gt;&amp;#160;&lt;/strong&gt;as opposed to a set of members. For example the STPS formula &lt;font color=&quot;#004080&quot; face=&quot;Courier New&quot;&gt;YearToDate.FullMonth&lt;/font&gt; returns a TI aggregation object&lt;strong&gt;&amp;#160;&lt;/strong&gt;for the year-to-date value up to the last full month. &lt;font color=&quot;#004080&quot; face=&quot;Courier New&quot;&gt;QuarterToDate.FullDaty &lt;font color=&quot;#000000&quot;&gt;&lt;font face=&quot;Verdana&quot;&gt;returns an aggregation object for the current quarter up to the last full day&lt;/font&gt;. &lt;/font&gt;&lt;/font&gt;&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/performancepoint-services-whats-changed.html</link><author>noreply@blogger.com (Nick Barclay)</author><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-2930316426793661574</guid><pubDate>Thu, 05 Nov 2009 12:46:00 +0000</pubDate><atom:updated>2009-11-06T08:11:22.304-05:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MOSS 2010</category><category domain="http://www.blogger.com/atom/ns#">PerformancePoint</category><title>PerformancePoint Services - What’s New</title><description>&lt;p&gt;Now that the NDA has been lifted it’s time to start talking about PerformancePoint Services. I plan to expand on many of these points in upcoming posts. For now I’ve put together a series of summary posts on some of the things that are&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;New &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/performancepoint-services-whats-changed.html&quot;&gt;Changed / Improved / Different&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://nickbarclay.blogspot.com/2009/11/performancepoint-whats-deprecated.html&quot;&gt;Deprecated&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;There is plenty to talk about in the new release, these lists are by no means comprehensive in their coverage of PerformancePoint Services. I also expect that the PPS team has a whole stack of useful posts loaded and ready to go, so keep and eye on &lt;a href=&quot;http://blogs.msdn.com/performancepoint/default.aspx&quot;&gt;their blog&lt;/a&gt; for a lot of new information in the near future.&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;UPDATE: Here is a &lt;a href=&quot;http://blogs.msdn.com/performancepoint/archive/2009/11/05/new-features-in-performancepoint-services-2010.aspx&quot;&gt;detailed post&lt;/a&gt; from the PPS team (including screenshots) about all the new stuff&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;I wish I could provide screenshots of all that is contained in these posts but I am unable to post shots of Beta 1. More visuals will come as Beta 2 is released.&lt;/p&gt;  &lt;h3&gt;SharePoint Integration&lt;/h3&gt;  &lt;p&gt;OK, we all know this one, PerformancePoint Services is now part of the Enterprise CAL of MOSS 2010, it is no longer a separate product. Element definitions are stored and managed within SharePoint lists and libraries and will be recognized as first class citizens in the MOSS world. This is going to bring a number of advantages in the MOSS 2010 world and will be the subject of quite a few posts in the future. Lots to talk about here. &lt;/p&gt;  &lt;p&gt;Unfortunately, the MOSS integration strategy that was &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/01/rip-performancepoint-server.html&quot;&gt;announced in January this year&lt;/a&gt; seems to have taken a big slice of the dev team’s time and hence the amount of new and changed features in PPS are not huge in number. That being said I do not want to trivialize the time and effort that went into the MOSS integration of PPS. The benefits of this re-architecture effort will make themselves known as we all begin to explore the new MOSS platform and all the other BI goodness (outside of PPS) that is baked into it.&lt;/p&gt;  &lt;h3&gt;The 7th Element: Filters&lt;/h3&gt;  &lt;p&gt;Filters are now an element unto themselves. In PPS 2007 filters were part of dashboard element definitions and therefore could not be shared. In PPS 2010, if you’ve built a useful filter you can share it with all of your dashboards just as you would any of the other elements. This is a welcome architectural change that many were hoping for (not sure whether this really falls under the “new” category…). &lt;/p&gt;  &lt;p&gt;The filter types that are available to us and their functionality have not changed very much in this release, they’re just a separate element now. With this new architectural change many will ask whether this means that we can pass values from one filter to another i.e. cascading filters. The answer: no, not yet. I wouldn’t be surprised if this feature was one that got cut in lieu of time required for the MOSS integration work. &lt;/p&gt;  &lt;h3&gt;Decomposition Tree Drilldown&lt;/h3&gt;  &lt;p&gt;I’ve always liked the ProClarity’s decomp tree and am really glad to see this new Silverlight-based version as part of drilldown interactivity within analytic reports. The decomp is not a report type unto itself but a “Analyze &amp;gt; Decomposition Tree” option from the right-click menu within the analytic chart and grid reports. Unfortunately the decomp tree is about the only recognizable ProClarity bit that made it into this release.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;New Chart Type: Pie Charts (groan)&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;One of the things I liked about PPS 2007 was the fact that Analytic reports &lt;em&gt;didn’t &lt;/em&gt;support pie charts. I think this was a feature that the MS sales team had a hand in. If you, or anyone you know, still believe that pie chart has any real analytical value please refer yourself (or the people you know) to Stephen Few’s excellent &lt;a href=&quot;http://www.perceptualedge.com/articles/visual_business_intelligence/save_the_pies_for_dessert.pdf&quot;&gt;Save the Pies for Dessert&lt;/a&gt; whitepaper. If after reading it you still think pie charts are worth using on a dashboard then there is no hope for you.&lt;/p&gt;  &lt;h3&gt;&lt;strong&gt;KPI Details Report&lt;/strong&gt;&lt;/h3&gt;  &lt;p&gt;As its name suggests this report supplies all the details about a particular KPI. This is a welcome addition. It’s a simple display of KPI metadata that can be hooked to any scorecard. Clicking on a KPI within the related scorecard will display its information in this report. When configuring the report you can choose which pieces of KPI metadata to display.&lt;/p&gt;  &lt;p&gt;The lack of this feature in PPS 2007 was one of the driving reasons behind why I built the &lt;a href=&quot;http://nickbarclay.blogspot.com/2008/06/pps-monitor-analyze-udf-project-maudf.html&quot;&gt;MAUDF project&lt;/a&gt; a while back; to provide simpler access to this kind of data. My customers wanted to see banding thresholds, descriptions and other metadata pertaining to a KPI. The new report does all of this.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/11/performancepoint-services-whats-new.html</link><author>noreply@blogger.com (Nick Barclay)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-1290753260492989206</guid><pubDate>Mon, 26 Oct 2009 17:44:00 +0000</pubDate><atom:updated>2009-10-26T13:44:16.699-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Data Visualisation</category><category domain="http://www.blogger.com/atom/ns#">TSQL</category><title>Un-cooking the books with Benford’s Law</title><description>&lt;p&gt;So, if you take a set of real life numeric data (e.g. sales figures, customer sat scores, baseball game attendance figures) stripped the first digit off each number and counted those up what would the distribution of numbers be? i.e&amp;#160; how many 7s would there be? How many 2s? Would there be a pattern to the distribution? The answer is actually yes. It’s known to many number crunchers as Benford’s Law.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/Benford%27s_law&quot;&gt;Here&#39;s the Wikipedia definition&lt;/a&gt;: &lt;em&gt;&lt;strong&gt;Benford&#39;s law&lt;/strong&gt;, also called the &lt;b&gt;first-digit law&lt;/b&gt;, states that in lists of numbers from many (but not all) real-life sources of data, the leading digit is distributed in a specific, non-uniform way. According to this law, the first digit is 1 almost one third of the time, and larger digits occur as the leading digit with lower and lower frequency, to the point where 9 as a first digit occurs less than one time in twenty.&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;Basically the law means that in many real-life (i.e. non-made-up or random) data the distribution of the first digit in a series of numbers will often look very similar to the graph below (also from &lt;a href=&quot;http://en.wikipedia.org/wiki/File:Rozklad_benforda.svg&quot;&gt;Wikipedia&lt;/a&gt;).&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://en.wikipedia.org/wiki/File:Rozklad_benforda.svg&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 0px 20px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;Benford Graph&quot; border=&quot;0&quot; alt=&quot;Benford Graph&quot; align=&quot;left&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/SuXf5OIBpII/AAAAAAAAA1k/QYb5UHv0_lg/Benford%5B15%5D.png?imgmax=800&quot; width=&quot;309&quot; height=&quot;328&quot; /&gt;&lt;/a&gt;My CPA brother-in-law refers to “running the Benfords” when on auditing gigs in order to perform a quick acid test on pertinent sets of numbers to see if there is something that warrants further investigation. If the distribution doesn’t look similar to the graph above then he looks a little closer; maybe someone’s been cooking the books.&lt;/p&gt;  &lt;p&gt;As DBAs, BI pros (and maybe some former accountants) we have plenty of real world data at our fingertips. Why not test Mr. Benford out to see if our data conforms. Benford’s law states that the data has to be real-life so let’s test it by applying the theory to three different data sets: &lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Randomly generated numbers &lt;/li&gt;    &lt;li&gt;Made up numbers (AdventureWorksDW2008 sales figures)&lt;/li&gt;    &lt;li&gt;&lt;em&gt;Real &lt;/em&gt;data from a real life data source &lt;/li&gt; &lt;/ul&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;&amp;#160;&lt;/h3&gt;  &lt;h3&gt;Random Numbers&lt;/h3&gt;  &lt;p&gt;I’ve created a simple script to create set of randomly generated numbers and perform a basic Benford analysis of the results. Here’s what it does:&lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Creates and populates a table variable with 65,536 random numbers &lt;/li&gt;    &lt;li&gt;Populates CTE with the random numbers and a separate column holding the first digit of each number      &lt;br /&gt;      &lt;br /&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/SuXf5TR79rI/AAAAAAAAA1o/U4eIV3EFRH8/s1600-h/FirstDigitArrow%5B13%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;First Digit&quot; border=&quot;0&quot; alt=&quot;First Digit&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/SuXf5liW-bI/AAAAAAAAA1s/OTmfER0YWCM/FirstDigitArrow_thumb%5B15%5D.png?imgmax=800&quot; width=&quot;299&quot; height=&quot;249&quot; /&gt;&lt;/a&gt;       &lt;br /&gt;&lt;/li&gt;    &lt;li&gt;Counts the instances of each digit and returns the results in a table including a simple histogram column for numbers 1-9 (excluding any 0 digit values sometimes returned by my simplistic random number algorithm) &lt;/li&gt; &lt;/ol&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;USE tempdb;        &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;DECLARE @RandomNumbers TABLE        &lt;br /&gt;(         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; RandomNumber INT         &lt;br /&gt;); &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;-- Use Itzik Ben Gan&#39;s technique to quickly generate 65536 records        &lt;br /&gt;WITH&amp;#160; &lt;br /&gt;&amp;#160; n5(x) AS (SELECT 1 UNION SELECT 0),         &lt;br /&gt;&amp;#160; n4(x) AS (SELECT 1 FROM n5 CROSS JOIN n5 AS x),         &lt;br /&gt;&amp;#160; n3(x) AS (SELECT 1 FROM n4 CROSS JOIN n4 AS x),         &lt;br /&gt;&amp;#160; n2(x) AS (SELECT 1 FROM n3 CROSS JOIN n3 AS x),         &lt;br /&gt;&amp;#160; n1(x) AS (SELECT 1 FROM n2 CROSS JOIN n2 AS x) &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;-- Create 65536 random numbers        &lt;br /&gt;INSERT INTO @RandomNumbers         &lt;br /&gt;SELECT         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ABS(CHECKSUM(NEWID())) % 100000 AS RandomNumber         &lt;br /&gt;FROM n1; &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;-- CTE containing each random number and its first digit        &lt;br /&gt;WITH BenfordTest (FirstDigit, RandomNumber) AS         &lt;br /&gt;(         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SUBSTRING(CAST(RandomNumber AS VARCHAR(MAX)), 1,1) AS FirstDigit         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,RandomNumber         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM @RandomNumbers         &lt;br /&gt;) &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;-- Count how many instances of each number there is from 1-9        &lt;br /&gt;SELECT         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FirstDigit         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,COUNT(*) AS InstanceCount         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,REPLICATE(&#39;|&#39;, 100. * (CAST(COUNT(*) AS NUMERIC(5,0)) / b2.Total)) AS PctDistribution         &lt;br /&gt;FROM BenfordTest b1,         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (SELECT CAST(COUNT(*) AS Numeric(5,0)) Total FROM BenfordTest) b2         &lt;br /&gt;WHERE FirstDigit &amp;gt; 0 -- exclude any zero digit records         &lt;br /&gt;GROUP BY FirstDigit, b2.Total         &lt;br /&gt;ORDER BY FirstDigit ASC;&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;And here are the results. Because these are random numbers you can see that the PctDistribution column, and the Excel graph I created is pretty much uniformly distributed between about 10.8% and 11.5% for all leading digits.&lt;/p&gt;  &lt;p style=&quot;line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;span style=&quot;line-height: 115%; font-family: &amp;quot;Courier New&amp;quot;; font-size: 10pt; mso-no-proof: yes&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;&lt;/span&gt;&lt;/span&gt;&lt;/p&gt;  &lt;p style=&quot;line-height: normal; margin-bottom: 0pt; mso-layout-grid-align: none&quot; class=&quot;MsoNormal&quot;&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/SuXf57AsCDI/AAAAAAAAA1w/IW2bRG8NERY/s1600-h/SQLResultsRandom%5B13%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 0px 20px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQLResultsRandom&quot; border=&quot;0&quot; alt=&quot;SQLResultsRandom&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/SuXf6N2anfI/AAAAAAAAA10/W8fxj7uVnhs/SQLResultsRandom_thumb%5B7%5D.png?imgmax=800&quot; width=&quot;372&quot; height=&quot;301&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/SuXf6XsBS_I/AAAAAAAAA14/7AD_gea7FWk/s1600-h/GraphRandom%5B6%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;GraphRandom&quot; border=&quot;0&quot; alt=&quot;GraphRandom&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/SuXf6T2kJFI/AAAAAAAAA18/bndeVN3-08U/GraphRandom_thumb%5B4%5D.png?imgmax=800&quot; width=&quot;479&quot; height=&quot;308&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;div id=&quot;codeSnippetWrapper&quot;&gt;&amp;#160;&lt;/div&gt;  &lt;h3&gt;Made Up Numbers (AdventureWorksDW2008)&lt;/h3&gt;  &lt;p&gt;Now we all know that AdventureWorks data is not real, but is there any “realness” to it at all? Probably not. We’ll test against the SalesAmount column in the FactInternetSales table.&lt;/p&gt;  &lt;p&gt;BTW, analysis like this is a great excuse to use the &lt;a href=&quot;http://technet.microsoft.com/en-us/library/ms189108.aspx&quot;&gt;TABLESAMPLE&lt;/a&gt; clause in order to avoid querying the entire table.&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;USE AdventureWorksDW2008;        &lt;br /&gt;GO &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;WITH BenfordTest (FirstDigit) AS        &lt;br /&gt;(         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SUBSTRING(CAST(SalesAmount AS VARCHAR(MAX)), 1,1) AS FirstDigit         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM FactInternetSales         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; TABLESAMPLE (20 PERCENT)         &lt;br /&gt;)&lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;SELECT        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FirstDigit         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,COUNT(*) AS InstanceCount         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,REPLICATE(&#39;|&#39;, 100. * (CAST(COUNT(*) AS NUMERIC(5,0)) / b2.Total)) AS PctDistribution         &lt;br /&gt;FROM BenfordTest b1,         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (SELECT CAST(COUNT(*) AS Numeric(5,0)) Total FROM BenfordTest) b2         &lt;br /&gt;GROUP BY FirstDigit, b2.Total         &lt;br /&gt;ORDER BY FirstDigit ASC;&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;div&gt;OK, I guess that proves just how real AdventureWorks data really is. This provides some pretty good evidence that AW numbers were not generated randomly and were almost certainly not based on real sales figures. On the other hand maybe the regional cycling gear reps are fudging the numbers a bit….&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;/div&gt;  &lt;div&gt;&amp;#160;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/SuXf6iI6B6I/AAAAAAAAA2A/LlCeMaAOF_E/s1600-h/SQLResultsAW%5B9%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 0px 20px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQLResultsAW&quot; border=&quot;0&quot; alt=&quot;SQLResultsAW&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/SuXf658vFVI/AAAAAAAAA2E/10QSTqIONeI/SQLResultsAW_thumb%5B5%5D.png?imgmax=800&quot; width=&quot;376&quot; height=&quot;306&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/SuXf7OHrQ4I/AAAAAAAAA2I/4MPZKDzDqQk/s1600-h/GraphAW%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;GraphAW&quot; border=&quot;0&quot; alt=&quot;GraphAW&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/SuXf7ZW2R2I/AAAAAAAAA2M/gbbA1FhuGg4/GraphAW_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;496&quot; height=&quot;314&quot; /&gt;&lt;/a&gt; &lt;/div&gt;  &lt;h3&gt;Real Numbers&lt;/h3&gt;  &lt;p&gt;Here are results of a query I ran on some real data I have available to me. Trust me, it is real data but, naturally, I can’t share it. The distribution looks about right, too. Kinda cool, eh?&lt;/p&gt;  &lt;p&gt;&amp;#160; &lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/SuXf7dmfj-I/AAAAAAAAA2Q/cCDtJVjwpLk/s1600-h/SQLResultsRealData%5B9%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; margin: 0px 20px 0px 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;SQLResultsRealData&quot; border=&quot;0&quot; alt=&quot;SQLResultsRealData&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/SuXf7hiVSyI/AAAAAAAAA2U/DEj4GUQRC70/SQLResultsRealData_thumb%5B5%5D.png?imgmax=800&quot; width=&quot;382&quot; height=&quot;309&quot; /&gt;&lt;/a&gt; &lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/SuXf71Nf_PI/AAAAAAAAA2Y/589pPfdl9P0/s1600-h/GraphRealData%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;GraphRealData&quot; border=&quot;0&quot; alt=&quot;GraphRealData&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/SuXf8NjqyXI/AAAAAAAAA2c/atqtxm71TJs/GraphRealData_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;500&quot; height=&quot;312&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;You can try the sample code out yourself on some data that you have access to.&lt;/p&gt;  &lt;p&gt;Here’s the code stub:&lt;/p&gt;  &lt;blockquote&gt;   &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;WITH BenfordTest (FirstDigit) AS        &lt;br /&gt;(         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; SELECT         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; SUBSTRING(CAST(&lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;&amp;lt;NumberFieldName&amp;gt;&lt;/font&gt;&lt;/strong&gt; AS VARCHAR(MAX)), 1,1) AS FirstDigit         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; FROM &lt;strong&gt;&lt;font color=&quot;#ff0000&quot;&gt;&amp;lt;SourceTableName&amp;gt;&lt;/font&gt;&lt;/strong&gt;         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; TABLESAMPLE (20 PERCENT)         &lt;br /&gt;) &lt;/font&gt;&lt;/p&gt;    &lt;p&gt;&lt;font color=&quot;#000080&quot; face=&quot;Courier New&quot;&gt;SELECT        &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; FirstDigit         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,COUNT(*) AS InstanceCount         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; ,REPLICATE(&#39;|&#39;, 100. * (CAST(COUNT(*) AS NUMERIC(5,0)) / b2.Total)) AS PctDistribution         &lt;br /&gt;FROM BenfordTest b1,         &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (SELECT CAST(COUNT(*) AS Numeric(5,0)) Total FROM BenfordTest) b2         &lt;br /&gt;GROUP BY FirstDigit, b2.Total         &lt;br /&gt;ORDER BY FirstDigit ASC&lt;/font&gt;&lt;/p&gt; &lt;/blockquote&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The complete code from this post can be downloaded &lt;a href=&quot;http://cid-b63fc776cf9b60ec.skydrive.live.com/self.aspx/Public/Downloadable%20Blog%20Files/BenfordNumbers.zip&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/10/un-cooking-books-with-benfords-law.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_COFToPnXCXk/SuXf5OIBpII/AAAAAAAAA1k/QYb5UHv0_lg/s72-c/Benford%5B15%5D.png?imgmax=800" height="72" width="72"/><thr:total>2</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-4228129713977912089</guid><pubDate>Wed, 21 Oct 2009 17:37:00 +0000</pubDate><atom:updated>2009-10-21T13:46:47.933-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Data Visualisation</category><category domain="http://www.blogger.com/atom/ns#">SSRS</category><title>Conditionally Hiding Axes for Trellis Displays</title><description>&lt;p&gt;Over the last year &lt;a href=&quot;http://blogs.adatis.co.uk/blogs/timkent/&quot;&gt;MVP Tim Kent&lt;/a&gt; has put out a series of really useful posts showing how various data visualizations can be created using SSRS.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://blogs.adatis.co.uk/blogs/timkent/archive/2009/10/14/ssrs-2008-lattice-charts.aspx&quot; target=&quot;_blank&quot;&gt;Trellis / Lattice displays&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.adatis.co.uk/blogs/timkent/archive/2009/02/11/win-loss-graphs-in-reporting-services-2008.aspx&quot; target=&quot;_blank&quot;&gt;Win / Loss Charts&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.adatis.co.uk/blogs/timkent/archive/2009/01/21/how-to-bullet-charts-in-reporting-services-2008.aspx&quot; target=&quot;_blank&quot;&gt;Bullet Graphs in SSRS 2008&lt;/a&gt; &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://blogs.adatis.co.uk/blogs/timkent/archive/2008/11/09/howto-bullet-charts-in-reporting-services-2005.aspx&quot; target=&quot;_blank&quot;&gt;Bullet Graphs in SSRS 2005&lt;/a&gt; &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;The &lt;a href=&quot;http://blogs.adatis.co.uk/blogs/timkent/archive/2009/10/14/ssrs-2008-lattice-charts.aspx&quot;&gt;latest post on Trellis displays&lt;/a&gt; got me thinking on how I could tweak a few of the settings in Tim’s very useful sample report just a bit&lt;em&gt; &lt;/em&gt;more.&lt;/p&gt;  &lt;p&gt;In order to show more sample data, I changed the top axis of Tim’s sample report to show sales Bike subcategories because as we all know AdventureWorks sells waaaay more bikes than anything else. Below is a shot of the original report after that change.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/St9Gz9t1VDI/AAAAAAAAA0s/RthJGQ2TLEE/s1600-h/TimKentTrellis%5B19%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;TimKentTrellis&quot; border=&quot;0&quot; alt=&quot;TimKentTrellis&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/St9G0HghCWI/AAAAAAAAA0w/cD0FPlikcEg/TimKentTrellis_thumb%5B21%5D.png?imgmax=800&quot; width=&quot;623&quot; height=&quot;843&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;I made a few more tweaks and changes and came up with the report below&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/St9G0dD4TgI/AAAAAAAAA1U/n2i4wC7Zyw8/s1600-h/Trellis%5B2%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;Trellis&quot; border=&quot;0&quot; alt=&quot;Trellis&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/St9G0s09HVI/AAAAAAAAA1Y/FpjDoaGCl9M/Trellis_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;691&quot; height=&quot;652&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;The main ink-saving tip is to conditionally hide / show labels on the X and Y axes based on the items at the top left and bottom left of the trellis. In this case it is &lt;strong&gt;Road Bikes&lt;/strong&gt; and &lt;strong&gt;Northeast&lt;/strong&gt;. All that is needed here is a small amount of extra MDX to ORDER and RANK members in both the Region and Subcategory sets to provide the right meta data required to perform the conditional hide / show. Here is the MDX for the report showing the ordering and ranking of the appropriate sets.&lt;/p&gt; &lt;form id=&quot;form1&quot; method=&quot;post&quot; name=&quot;form1&quot; action=&quot;http://mdx.mosha.com/default.aspx&quot;&gt;&lt;form id=&quot;form1&quot; action=&quot;http://mdx.mosha.com/default.aspx&quot; name=&quot;form1&quot; method=&quot;post&quot;&gt;   &lt;div&gt;&lt;span id=&quot;FormatMDX&quot;&gt;&lt;span style=&quot;font: 10pt courier new&quot;&gt;&lt;span style=&quot;color: blue&quot;&gt;WITH &lt;/span&gt;          &lt;br /&gt;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;SET&lt;/span&gt; [SalesOrderedSubcategories] &lt;span style=&quot;color: blue&quot;&gt;AS&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;Order&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Product].[Product Categories].[Category].[Bikes].&lt;span style=&quot;color: blue&quot;&gt;Children&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[Measures].[Sales Amount]           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,BDESC           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )           &lt;br /&gt;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;SET&lt;/span&gt; [SalesOrderedRegions] &lt;span style=&quot;color: blue&quot;&gt;AS&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;Order&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Sales Territory].[Sales Territory].[Region].&lt;span style=&quot;color: blue&quot;&gt;MEMBERS&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[Measures].[Sales Amount]           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,BDESC           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )           &lt;br /&gt;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;MEMBER&lt;/span&gt; [Measures].[SubcategoryRank] &lt;span style=&quot;color: blue&quot;&gt;AS&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;Rank&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Product].[Product Categories].&lt;span style=&quot;color: blue&quot;&gt;CurrentMember&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[SalesOrderedSubcategories]           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )           &lt;br /&gt;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;MEMBER&lt;/span&gt; [Measures].[RegionRank] &lt;span style=&quot;color: blue&quot;&gt;AS&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; &lt;span style=&quot;color: blue&quot;&gt;Rank&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; (           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; [Sales Territory].[Sales Territory].&lt;span style=&quot;color: blue&quot;&gt;CurrentMember&lt;/span&gt;           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[SalesOrderedRegions]           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; )           &lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;SELECT &lt;/span&gt;          &lt;br /&gt;&amp;#160; {           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [Measures].[Sales Amount]           &lt;br /&gt;&amp;#160;&amp;#160; ,[Measures].[SubcategoryRank]           &lt;br /&gt;&amp;#160;&amp;#160; ,[Measures].[RegionRank]           &lt;br /&gt;&amp;#160; } ON COLUMNS           &lt;br /&gt;,(           &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; [SalesOrderedSubcategories]           &lt;br /&gt;&amp;#160;&amp;#160; ,[SalesOrderedRegions]           &lt;br /&gt;&amp;#160;&amp;#160; ,[Date].[Calendar Quarter of Year].[Calendar Quarter of Year].&lt;span style=&quot;color: blue&quot;&gt;MEMBERS&lt;/span&gt;           &lt;br /&gt;&amp;#160; ) ON ROWS           &lt;br /&gt;&lt;span style=&quot;color: blue&quot;&gt;FROM &lt;/span&gt;[Adventure Works];&lt;/span&gt; &lt;/span&gt;&lt;/div&gt; &lt;/form&gt;  &lt;div&gt;Set the SORT property of each group to its respective GroupName&lt;strong&gt;Rank &lt;/strong&gt;calculated member, this way we can be sure that in our example the top ranked Subcategory (Road Bikes) will be the left-most item and the lowest ranked Region (Southwest) will be the bottom-most item in the trellis.&lt;/div&gt; &lt;/form&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/St9G0-egfeI/AAAAAAAAA08/boO1ke-W-OQ/s1600-h/Sorting%5B4%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;Sorting&quot; border=&quot;0&quot; alt=&quot;Sorting&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/St9G1MAYOpI/AAAAAAAAA1A/00LVuHYmLJw/Sorting_thumb%5B2%5D.png?imgmax=800&quot; width=&quot;446&quot; height=&quot;370&quot; /&gt;&lt;/a&gt;&amp;#160;&lt;/p&gt;  &lt;p&gt;The real trick here is to use an expression to conditionally hide / show the axis labels so that we only see the X-axis labels at the bottom of the trellis and Y-axis labels on the left side of the trellis. &lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/St9G1cuS71I/AAAAAAAAA1E/F5-061Hm1_Y/s1600-h/AxisLabels%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;AxisLabels&quot; border=&quot;0&quot; alt=&quot;AxisLabels&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/St9G1hNPmyI/AAAAAAAAA1I/s9DooKMnLnU/AxisLabels_thumb%5B3%5D.png?imgmax=800&quot; width=&quot;449&quot; height=&quot;409&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Y-axis uses an expression that only shows the axis for the MIN ranked member for Subcategory&lt;/p&gt;  &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;=IIF(      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Fields!SubcategoryRank.Value = MIN(Fields!SubcategoryRank.Value, &amp;quot;Trellis&amp;quot;)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; , &lt;font color=&quot;#0000ff&quot;&gt;false&lt;/font&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; , &lt;font color=&quot;#0000ff&quot;&gt;true&lt;/font&gt;       &lt;br /&gt;)&lt;/font&gt; &lt;/p&gt;  &lt;p&gt;and X-axis uses the MAX ranked member for Region&lt;/p&gt;  &lt;p&gt;&lt;font face=&quot;Courier New&quot;&gt;=IIF(      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; Fields!RegionRank.Value = MAX(Fields!RegionRank.Value, &amp;quot;Trellis&amp;quot;)       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; , &lt;font color=&quot;#0000ff&quot;&gt;false&lt;/font&gt;       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160; , &lt;font color=&quot;#0000ff&quot;&gt;true&lt;/font&gt;       &lt;br /&gt;)&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;It also helps to check the &lt;strong&gt;Hide first and last labels along this axis &lt;/strong&gt;for the Y-axis as the zero value tends the throw off the alignment with the other charts where the X-axis is hidden.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/St9G1tkd3aI/AAAAAAAAA1M/eVZGLr6Fw9g/s1600-h/HideLablels%5B17%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;HideLablels&quot; border=&quot;0&quot; alt=&quot;HideLablels&quot; src=&quot;http://lh5.ggpht.com/_COFToPnXCXk/St9G2L0N1DI/AAAAAAAAA1Q/He2FvTEFWlc/HideLablels_thumb%5B14%5D.png?imgmax=800&quot; width=&quot;578&quot; height=&quot;159&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The sample .rdl file can be downloaded &lt;a href=&quot;http://cid-b63fc776cf9b60ec.skydrive.live.com/self.aspx/Public/Downloadable%20Blog%20Files/TrellisDisplay.zip&quot;&gt;here&lt;/a&gt;.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/10/conditionally-hiding-axes-for-trellis.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh5.ggpht.com/_COFToPnXCXk/St9G0HghCWI/AAAAAAAAA0w/cD0FPlikcEg/s72-c/TimKentTrellis_thumb%5B21%5D.png?imgmax=800" height="72" width="72"/><thr:total>3</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-3830691790139625594</guid><pubDate>Fri, 16 Oct 2009 16:35:00 +0000</pubDate><atom:updated>2009-10-16T12:38:43.854-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Documentation</category><category domain="http://www.blogger.com/atom/ns#">Windows7</category><title>Windows Problem Steps Recorder</title><description>&lt;p&gt;Been meaning to write about this one for some time. This year’s TechEd USA keynote was centered around Windows Server 2008 R2. The speakers demoed plenty of good features but the one that stood out (and easily got the most spontaneous applause) was the Problem Steps Recorder. It does exactly as its name suggests: it records problem steps.&lt;/p&gt;  &lt;p&gt;The PSR is a really simple app that is baked into both Windows Server 2008 R2 and Windows 7. It’s actually not that easy to find unless you know what you’re looking for – the Start menu doesn’t even list the app by its name.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/Stihg0EpPjI/AAAAAAAAA0M/NGleiscd1eM/s1600-h/StartMenu%5B5%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;StartMenu&quot; border=&quot;0&quot; alt=&quot;StartMenu&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/StihhBr6YGI/AAAAAAAAA0Q/9vpPx4xyIhg/StartMenu_thumb%5B3%5D.png?imgmax=800&quot; width=&quot;354&quot; height=&quot;445&quot; /&gt;&lt;/a&gt;&amp;#160; &lt;/p&gt;  &lt;p&gt;The UI couldn’t be simpler as seen below.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh5.ggpht.com/_COFToPnXCXk/StihhHNABNI/AAAAAAAAA0U/bNox7FBYIdM/s1600-h/image%5B11%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/StihhWWUGXI/AAAAAAAAA0Y/MBzI7_jUcc0/image_thumb%5B16%5D.png?imgmax=800&quot; width=&quot;562&quot; height=&quot;87&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;The user opens the app, presses &lt;strong&gt;Start Record&lt;/strong&gt;, performs the steps that reproduce a problem they’re experiencing (including their own comments if needed), then presses &lt;strong&gt;Stop Record&lt;/strong&gt;. PSR then asks where they want to save the results. The output produced is a zip archive containing a single MHT file. The user then emails the zip archive to the helpdesk or whoever is trying to help them.&lt;/p&gt;  &lt;p&gt;The generated MHT file is a navigable, screenshot-by-screenshot, annotated document of each step the user performed while recording. Below is an example step explanation with screenshot.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Stihht9_WKI/AAAAAAAAA0c/tX3aH7uRmsk/s1600-h/image%5B23%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Stihh6PsrWI/AAAAAAAAA0g/c8C5pHVh7Kc/image_thumb%5B33%5D.png?imgmax=800&quot; width=&quot;667&quot; height=&quot;425&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Here is a text summary of each step without screenshots that is found at the bottom of each MHT file.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/StihiALv9RI/AAAAAAAAA0k/q8LGAeCaAvI/s1600-h/image%5B22%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;image&quot; border=&quot;0&quot; alt=&quot;image&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/StihiqqAa3I/AAAAAAAAA0o/iyupCqhkxR0/image_thumb%5B32%5D.png?imgmax=800&quot; width=&quot;640&quot; height=&quot;575&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;OK, so why does PSR have to be just a helpdesk tool? Like many others in the audience I thought of this as a potential quick &amp;amp; dirty documentation tool. Admittedly out of the box the text produced describes every step as a “Problem” but once you look past that this could be a great little time saver in a number of situations.&lt;/p&gt;  &lt;p&gt;Here’s an &lt;a href=&quot;http://cid-b63fc776cf9b60ec.skydrive.live.com/self.aspx/Public/Downloadable%20Blog%20Files/CreateReportProject.zip&quot;&gt;example output file&lt;/a&gt; that walks through creating an SSRS project and adding a new report in BIDS.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/10/windows-problem-steps-recorder.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_COFToPnXCXk/StihhBr6YGI/AAAAAAAAA0Q/9vpPx4xyIhg/s72-c/StartMenu_thumb%5B3%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-9161355544682424230</guid><pubDate>Fri, 16 Oct 2009 14:07:00 +0000</pubDate><atom:updated>2009-10-16T10:07:48.131-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">DataDude</category><title>Data Dude Error TSD03006 – Explicit Database Reference</title><description>&lt;p&gt;&lt;strong&gt;Problem&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You’ve just created a new Data Dude project and imported your DB schema, or you’ve just synchronized schemas with an existing project having added several new views / UDFs / SPROCs etc. When you try to build your project you find that there are tons of TSD03006 errors that are stopping you. Why?&lt;/p&gt;  &lt;p&gt;&lt;em&gt;TSD03006: View: [dbo].[vFactResellerSales] contains an unresolved reference to an object. Either the object does not exist or the reference is ambiguous because it could refer to any of the following objects: [dbo].[DimProduct].[s]::[ProductKey], [dbo].[FactResellerSales].[ProductKey] or [dbo].[FactResellerSales].[s]::[ProductKey]&lt;/em&gt;&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Sth-MZ26ehI/AAAAAAAAA0A/acls_sx30TM/s1600-h/TSD03006%5B3%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;TSD03006&quot; border=&quot;0&quot; alt=&quot;TSD03006&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Sth-M91mTWI/AAAAAAAAA0I/jWIsQ5PcuZY/TSD03006_thumb%5B1%5D.png?imgmax=800&quot; width=&quot;764&quot; height=&quot;333&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;Solution&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;Ensure any explicit database name references do &lt;em&gt;not&lt;/em&gt; exist in your code. If you need to explicitly reference a database do it by using &lt;a href=&quot;http://msdn.microsoft.com/en-us/library/bb386162.aspx&quot;&gt;variables&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;Removing the explicit DB references from the code should make the TDS03006 errors disappear. Admittedly you should be cleaning up any explicit DB references within your code, but when whipping up a new script in the early hours of the morning this may be something that you’d miss. And suddenly getting a whole heap of build-blocking errors at 3am can be &lt;em&gt;incredibly&lt;/em&gt; annoying.&amp;#160; &lt;/p&gt;  &lt;p&gt;Sometimes explicit DB references can creep into code without you catching it. For example when creating views from large tables I often start by scripting out a SELECT statement within SSMS. The code that is generated by SSMS includes an explicit reference to the database. &lt;/p&gt;  &lt;p&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot;&gt;&lt;font color=&quot;#0000ff&quot;&gt;SELECT &lt;/font&gt;[ProductKey]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[OrderDateKey]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[DueDateKey]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[ShipDateKey]       &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[ResellerKey]       &lt;br /&gt;&lt;font color=&quot;#008000&quot;&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; &lt;i&gt;-- Shortened for brevity&lt;/i&gt;&lt;/font&gt;&lt;/font&gt;&lt;font size=&quot;2&quot; face=&quot;Courier New&quot;&gt;      &lt;br /&gt;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160;&amp;#160; ,[CustomerPONumber]       &lt;br /&gt;&lt;font color=&quot;#0000ff&quot;&gt;FROM&lt;/font&gt;&amp;#160;&amp;#160; [AdventureWorksDW2008].[dbo].[FactResellerSales] &lt;/font&gt;&lt;/p&gt;  &lt;p&gt;It’s the explicit &lt;strong&gt;[AdventureWorksDW2008]&lt;/strong&gt; reference that causes the TSD03006 errors. If you add to the SSMS generated code and join other tables but keep even one explicit DB reference you will continue to receive TSD03006 errors for each field in the view definition. &lt;/p&gt;  &lt;p&gt;Data Dude is indeed bringing a valid problem to our attention but I think there should be a more elegant way to communicate the situation. One view containing 37 fields with 1 explicit DB reference returns 37 errors. In the end the fix is easy, but figuring out the fix takes more time than it should based on the content and volume of the error messages.&lt;/p&gt;  &lt;p&gt;BTW make sure that you’re using &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=bb3ad767-5f69-4db9-b1c9-8f55759846ed&amp;amp;displaylang=en&quot;&gt;Data Dude GDR R2&lt;/a&gt; version 9.1.40413.00. I found &lt;a href=&quot;http://support.microsoft.com/kb/970567/&quot;&gt;an MS support document&lt;/a&gt; that detailed a similar issue pertaining to using Server and Database aliases in referenced projects that is fixed in this release. This issue is similar but different in that it’s not a direct problem with aliases or referenced projects, just careless coding on my part.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/10/data-dude-error-tsd03006-explicit.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_COFToPnXCXk/Sth-M91mTWI/AAAAAAAAA0I/jWIsQ5PcuZY/s72-c/TSD03006_thumb%5B1%5D.png?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-3427474222972365718</guid><pubDate>Thu, 15 Oct 2009 15:16:00 +0000</pubDate><atom:updated>2009-10-15T11:16:47.322-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Azure</category><category domain="http://www.blogger.com/atom/ns#">PerformancePoint</category><title>Cloud-based Tabular Data Sources</title><description>&lt;p&gt;I realize there are many out there who are sick of the term “the cloud”. &lt;a href=&quot;http://www.youtube.com/watch?v=8UYa6gQC14o&quot;&gt;Larry Ellison&#39;s rant&lt;/a&gt; on this topic is great.&lt;/p&gt;  &lt;p&gt;Nonetheless I got my &lt;a href=&quot;http://www.microsoft.com/azure/sql.mspx&quot;&gt;Azure&lt;/a&gt; invitation yesterday and for no other reason other than it’s geeky, tried to access it from PPS. As I’d hoped, it was simple (as was connecting using SSMS). I set up a sample DB in my allotted condensed water vapor storage area and created a tabular data source using the appropriate connection string. Easy!&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Stc82ciXe3I/AAAAAAAAAzk/qpu8s3nlxsY/s1600-h/ConnectionString%5B8%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;ConnectionString&quot; border=&quot;0&quot; alt=&quot;ConnectionString&quot; src=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Stc82oB5TPI/AAAAAAAAAzo/qOrjZkJgQ1c/ConnectionString_thumb%5B4%5D.png?imgmax=800&quot; width=&quot;682&quot; height=&quot;439&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;…and here’s the data in it&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh3.ggpht.com/_COFToPnXCXk/Stc83ZTqX8I/AAAAAAAAAzs/Xwh7Ac8_X4U/s1600-h/DataSourcePreview%5B7%5D.png&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;DataSourcePreview&quot; border=&quot;0&quot; alt=&quot;DataSourcePreview&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/Stc83kWAXVI/AAAAAAAAAzw/uJseX1aqT6Y/DataSourcePreview_thumb%5B5%5D.png?imgmax=800&quot; width=&quot;682&quot; height=&quot;334&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;Hopefully cloud-based SSAS is not far away.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/10/cloud-based-tabular-data-sources.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh3.ggpht.com/_COFToPnXCXk/Stc82oB5TPI/AAAAAAAAAzo/qOrjZkJgQ1c/s72-c/ConnectionString_thumb%5B4%5D.png?imgmax=800" height="72" width="72"/><thr:total>0</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-6163151456231747887</guid><pubDate>Thu, 15 Oct 2009 14:32:00 +0000</pubDate><atom:updated>2009-10-15T19:44:47.001-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">PerformancePoint</category><category domain="http://www.blogger.com/atom/ns#">Security</category><title>Windows 7 and PerformancePoint M&amp;amp;A Setup Gotcha</title><description>&lt;p&gt;For those who have, or are about to, upgrade to Windows 7 and reinstall a local instance of PPS for the purposes of demos / experimentation / learning etc. here are a couple of quick tips on getting things up and running. &lt;/p&gt;  &lt;ol&gt;   &lt;li&gt;Before installing the M&amp;amp;A Server be sure to read &lt;a href=&quot;http://nickbarclay.blogspot.com/2009/03/installing-and-troubleshooting-m-on-win.html&quot;&gt;this post&lt;/a&gt; and ensure all your pre-reqs are in place. &lt;/li&gt;    &lt;li&gt;Install the &lt;a href=&quot;http://support.microsoft.com/kb/971928/&quot;&gt;latest hotfix&lt;/a&gt; (I understand that PPS SP3 coming out in a couple of days) &lt;/li&gt; &lt;/ol&gt;  &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; SP3 is now available so skip step 2 above and install SP3 instead&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;x86:&lt;/font&gt; &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=90c596a5-aca4-4ded-9072-facf834bc0c6&amp;amp;displaylang=en&quot;&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=90c596a5-aca4-4ded-9072-facf834bc0c6&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;x64:&lt;/font&gt; &lt;a href=&quot;http://www.microsoft.com/downloads/details.aspx?FamilyID=3ad75ae5-d2cd-4953-87cf-5f74d79804c6&amp;amp;displaylang=en&quot;&gt;http://www.microsoft.com/downloads/details.aspx?FamilyID=3ad75ae5-d2cd-4953-87cf-5f74d79804c6&amp;amp;displaylang=en&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;And now the Win7 twist. Once you have installed, configured the M&amp;amp;A server and fired up Dashboard Designer (DD) you receive the following message when trying to create a data source:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/StcydtNsODI/AAAAAAAAAzE/vRP9Yj8N6BY/s1600-h/image%5B21%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;The requested item cannot be found. Verify that it exists and that you have access permissions.&quot; border=&quot;0&quot; alt=&quot;The requested item cannot be found. Verify that it exists and that you have access permissions.&quot; src=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Stcyd-htxQI/AAAAAAAAAzI/5H1joDHsBIw/image_thumb%5B14%5D.png?imgmax=800&quot; width=&quot;492&quot; height=&quot;172&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;&lt;/p&gt;  &lt;p&gt;OK, so this is an &lt;a href=&quot;http://nickbarclay.blogspot.com/2007/11/pps-data-source-connection-problems.html&quot;&gt;application pool account problem&lt;/a&gt;? Nope. The problem is you’re not an administrator on this Monitoring Server yet. So you go into the administrative section in DD and add your account. When you to the options section and try to administer the server you get this error:&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Stez6pBOp7I/AAAAAAAAAz0/4M65nHrDneQ/s1600-h/image11.png&quot;&gt;&lt;em&gt;&lt;/em&gt;&lt;a href=&quot;http://lh4.ggpht.com/_COFToPnXCXk/Stez6pBOp7I/AAAAAAAAAz4/AXVUV8E0yOw/s1600-h/image22.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;You do not have Administrator privileges on the Monitoring Server ‘http://localhost:40000/WebService/PMService.axmx’. Contact your Monitoring Server Administrator.&quot; border=&quot;0&quot; alt=&quot;You do not have Administrator privileges on the Monitoring Server ‘http://localhost:40000/WebService/PMService.axmx’. Contact your Monitoring Server Administrator.&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/StcyelK0D0I/AAAAAAAAAzU/7pjp17-MbL4/image_thumb%5B15%5D.png?imgmax=800&quot; width=&quot;496&quot; height=&quot;192&quot; /&gt;&lt;/a&gt;&lt;/a&gt;&lt;/a&gt;&lt;em&gt; &lt;/em&gt;&lt;/p&gt;  &lt;p&gt;And herein lies the problem. You’re not a monitoring server administrator yet, but how can you make yourself one if you can’t get into the admin screen? &lt;/p&gt;  &lt;p&gt;&lt;strong&gt;The solution:&lt;/strong&gt;&lt;/p&gt;  &lt;p&gt;You need explicitly run Dashboard Designer as an administrator (“but I AM an administrator!”). By default you’re not running this application as an admin. This is related to the &lt;a href=&quot;http://www.neowin.net/news/main/09/01/07/windows-7-whats-up-with-the-uac&quot;&gt;UAC settings in Win7&lt;/a&gt;. Sure you can alter (turn off) the UAC settings but you may not want to, or be allowed to, in some cases.&lt;/p&gt;  &lt;p&gt;How do you run DD as an admin? The Start menu item that is created for DD is only a link to the ClickOnce launch URL so you won’t find the appropriate “Run as administrator” option on the context menu if you SHIFT + Right-click on it. In order to run DD as an administrator find the DD executable (PSCBuilder.exe) in the file system. On a default install it will be located in %Program Files\Microsoft Office PerformancePoint Server\3.0\Monitoring\PPSMonitoring_1\DesignerInstall\3.0&lt;/p&gt;  &lt;p&gt;Right-click the executable and “Run as administrator” from there.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://lh6.ggpht.com/_COFToPnXCXk/StcyfExSbvI/AAAAAAAAAzY/BYhQXZP9XO4/s1600-h/RunAsAdmin%5B16%5D.png&quot;&gt;&lt;img style=&quot;border-right-width: 0px; display: inline; border-top-width: 0px; border-bottom-width: 0px; border-left-width: 0px&quot; title=&quot;RunAsAdmin&quot; border=&quot;0&quot; alt=&quot;RunAsAdmin&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/StcyfWV9pnI/AAAAAAAAAzc/mmw4b39s9E4/RunAsAdmin_thumb%5B14%5D.png?imgmax=800&quot; width=&quot;708&quot; height=&quot;422&quot; /&gt;&lt;/a&gt; &lt;/p&gt;  &lt;p&gt;In this administrator instance of Dashboard Designer go into the Server Options section and add yourself as an administrator.&lt;/p&gt;  &lt;p&gt;You should be good to go from there.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/10/windows-7-and-performancepoint-m-setup.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh4.ggpht.com/_COFToPnXCXk/Stcyd-htxQI/AAAAAAAAAzI/5H1joDHsBIw/s72-c/image_thumb%5B14%5D.png?imgmax=800" height="72" width="72"/><thr:total>5</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-280019336154523698</guid><pubDate>Mon, 12 Oct 2009 00:00:00 +0000</pubDate><atom:updated>2009-10-11T20:00:14.480-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Book Review</category><category domain="http://www.blogger.com/atom/ns#">Books</category><category domain="http://www.blogger.com/atom/ns#">SSAS</category><title>Book Review: Expert Cube Development with Analysis Services 2008</title><description>&lt;p&gt;&lt;strong&gt;Full disclosure: &lt;/strong&gt;the authors of this book provided me with a free review copy of this book.&lt;/p&gt;  &lt;p&gt;&lt;a href=&quot;http://www.amazon.com/Expert-Development-Microsoft-Analysis-Services/dp/1847197221/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1252934151&amp;amp;sr=8-1&quot;&gt;&lt;img style=&quot;border-bottom: 0px; border-left: 0px; margin: 0px 10px 0px 0px; display: inline; border-top: 0px; border-right: 0px&quot; title=&quot;ExpertCubeDevelopmentSSAS2008&quot; border=&quot;0&quot; alt=&quot;ExpertCubeDevelopmentSSAS2008&quot; align=&quot;left&quot; src=&quot;http://lh6.ggpht.com/_COFToPnXCXk/StJxjVNCAUI/AAAAAAAAAzA/5N7EvmKje0s/ExpertCubeDevelopmentSSAS20086%5B2%5D.jpg?imgmax=800&quot; width=&quot;255&quot; height=&quot;315&quot; /&gt;&lt;/a&gt;&lt;/p&gt;  &lt;p&gt;As the title suggests &lt;a href=&quot;http://www.amazon.com/Expert-Development-Microsoft-Analysis-Services/dp/1847197221/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1252934151&amp;amp;sr=8-1&quot;&gt;Expert Cube Development with Microsoft SQL Server 2008 Analysis Services&lt;/a&gt; is not a book for SSAS beginners. This book fills a need that has been out there for a while when it comes to Analysis Services publications: a concentrated volume focused on enhancing the knowledge of the experienced SSAS pro. From the outset the authors assume the reader already has experience with the product, cover a few ground rules and get right down to business.&lt;/p&gt;  &lt;p&gt;The amount of real world SSAS implementation experience shared between Alberto, Marco &amp;amp; Chris shines through indicating just how much work they’ve collectively done with Analysis Services. Many technical books have advanced sections or whole chapters dedicated to more advanced development techniques and tips. Being pitched as an expert book enables this level of content to pretty much fill the entire publication. &lt;/p&gt;  &lt;p&gt;There is a lot of goodness jammed into the book’s 320-ish pages. You can sense that the authors tried hard to fit as many tips, tricks and techniques into each chapter as possible without bloating the text. They do not waste page space explaining the simple stuff because, if you’re reading this book, you should &lt;em&gt;know&lt;/em&gt; the simple stuff. Each chapter remains concise and tells you what you need to know and where to go if you want to find out more by means of links to blog posts, white papers and other books as well as downloadable sample code.&lt;/p&gt;  &lt;p&gt;My only criticism is a somewhat superficial one and is probably directed more at the book’s editor than its authors. There were no reference numbers and caption text underneath any of the screenshots, tables and figures at all. The non-textual items seemed naked without them and this made the end product seem a little less polished. As a reader I prefer it when the text points specifically to “Figure 1.2” instead of “the screenshot”. On some occasions the text didn’t even make direct reference to the item that appeared on the page with it, the relationship was implied by proximity.&lt;/p&gt;  &lt;p&gt;If you have not worked much with SSAS yet then this is not a book you should be starting with. If, however, you’ve been working with the product and want to ensure you’re squeezing every last bit of performance out of your OLAP databases, this is a book you’ll want to read cover to cover. Even the most seasoned SSAS experts will come across material or techniques they did not know of or had forgotten about.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/10/book-review-expert-cube-development.html</link><author>noreply@blogger.com (Nick Barclay)</author><media:thumbnail xmlns:media="http://search.yahoo.com/mrss/" url="http://lh6.ggpht.com/_COFToPnXCXk/StJxjVNCAUI/AAAAAAAAAzA/5N7EvmKje0s/s72-c/ExpertCubeDevelopmentSSAS20086%5B2%5D.jpg?imgmax=800" height="72" width="72"/><thr:total>1</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-5736273651444719336</guid><pubDate>Tue, 22 Sep 2009 15:46:00 +0000</pubDate><atom:updated>2009-10-21T08:25:39.619-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">MOSS 2010</category><category domain="http://www.blogger.com/atom/ns#">PerformancePoint</category><category domain="http://www.blogger.com/atom/ns#">SharePoint</category><category domain="http://www.blogger.com/atom/ns#">Virtualization</category><title>The Microsoft Virtual Catch 64</title><description>&lt;p&gt;How does it go again, Steve? “&lt;a href=&quot;http://www.youtube.com/watch?v=8To-6VIJZRE&quot;&gt;Developers, developers, developers&lt;/a&gt;”? As we move further and further into the 64 bit world, Microsoft’s virtualization path on non-server operating systems will leave some developers out in the cold. &lt;/p&gt;  &lt;p&gt;MOSS 2010 is going to be a huge release and will only be available in 64 bit. Naturally PerformancePoint Services and all the other good stuff that’s going to be baked into this next version will be 64 bit too. The pure 64 bit direction is a good one, I am looking forward to the solid baseline scalability and power that will come from not offering the 32 bit option. All of this is good news. &lt;/p&gt;  &lt;p&gt;Now here’s the catch for developers looking to get up to speed with the latest and greatest. &lt;a href=&quot;http://www.microsoft.com/downloadS/details.aspx?FamilyID=04d26402-3199-48a3-afa2-2dc0b40a73b6&amp;amp;displaylang=en&quot;&gt;Virtual PC 2007&lt;/a&gt; and the soon-to-be-released &lt;a href=&quot;http://www.microsoft.com/windows/virtual-pc/&quot;&gt;Windows Virtual PC&lt;/a&gt; &lt;strong&gt;do not support 64 bit guest operating systems&lt;/strong&gt;. The only Microsoft supported way to run a 64 bit virtual environment is through Hyper-V. The inability to support a virtual 64 bit OS on a Vista / XP / Win7 box means that the usually trivial task of spinning up a VPC and kicking the tires with the beta bits is just not possible. This a pain point that is already shared by many, just take a look &lt;a href=&quot;http://social.technet.microsoft.com/Forums/en-US/w7itprovirt/thread/8fa1b83d-90ca-449e-92aa-5b20fd82cf1b&quot;&gt;at this newsgroup thread&lt;/a&gt;.&lt;/p&gt;  &lt;p&gt;If you’re a consultant like me your laptop is your life. You do a great deal of your learning, development, testing, demos, conference presentations on a variety of VPC images. You store these images on an external HDD and run them within your primary, non-server OS. If you want to continue doing this kind of thing (on a 64 bit platform) you will need to seek out non-MS virtualization technologies to support your efforts.&lt;/p&gt;  &lt;p&gt;So what are your options if you want to retain a pure Microsoft environment? The only MS answer to a 64 bit virtual environment is Hyper-V, and that means running Server 2008. If the cost of licensing Server 2008 is not an issue here are some of your options:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;Run Server 2008 as your primary OS &lt;/li&gt;    &lt;li&gt;Dual boot your laptop using Server 2008 as a secondary OS &lt;/li&gt;    &lt;li&gt;Buy another laptop and load Server 2008 on it &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;None of these choices really do it for me. I have a good laptop with plenty of RAM and a 64 bit processor that supports &lt;a href=&quot;http://www.intel.com/technology/virtualization/&quot;&gt;virtualization technology&lt;/a&gt;. Nonetheless I am unable to run a MS-based 64 bit virtual guest OS without using Server 2008. So in order to continue to do things the way I am used to I have to go with a non-Microsoft virtualization technology that supports 64 bit guests. Here are the two frontrunners in the desktop 64 bit virtualized guest world that I have found.&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;&lt;a href=&quot;http://www.virtualbox.org/&quot;&gt;VirtualBox&lt;/a&gt; (free) &lt;/li&gt;    &lt;li&gt;&lt;a href=&quot;http://www.vmware.com/&quot;&gt;VMWare Workstation&lt;/a&gt; (around US $189) &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;I recently reimaged my laptop with the RTM build of Windows 7 and have been using VirtualBox for a few days now. I’m used to the VPC way of doing things but I’ll just have to adapt, I guess. That being said, VirtualBox is a pretty good alternative.&lt;/p&gt;  &lt;p&gt;As MOSS RTM draws nearer in H1 2010 I have a feeling we may begin to see virtual demo environments that are not hosted in MS technology. MS is pushing virtualization more and more (and so they should) but how’s it going to look if the person presenting at a user group / conference / customer site is using non-MS virtualization technology to host their demo? The next time I present that may well be the case. Disappointing.&lt;/p&gt;  &lt;p&gt;&lt;font color=&quot;#ff0000&quot;&gt;&lt;strong&gt;UPDATE (Oct 21 2009):&lt;/strong&gt; It has &lt;a href=&quot;http://blogs.msdn.com/sharepoint/archive/2009/10/19/sharepoint-2010.aspx&quot;&gt;just been announced&lt;/a&gt; that MOSS 2010 will be supported on both Vista and Win7 for developers (not production deployments, of course). Although this doesn’t completely eliminate the problem that is the subject of this post it very definitely helps. The ability to run your own local developer version of MOSS should be great. I had heard about this possibility of this kind of support under NDA some time ago but it was never confirmed until now.&lt;/font&gt;&lt;/p&gt;  &lt;p&gt;Anyone else got an opinion, alternative to the situation we will soon find ourselves in? Feel free to comment.&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/09/microsoft-virtual-catch-64.html</link><author>noreply@blogger.com (Nick Barclay)</author><thr:total>4</thr:total></item><item><guid isPermaLink="false">tag:blogger.com,1999:blog-16888062.post-6283515978156410929</guid><pubDate>Wed, 15 Jul 2009 17:37:00 +0000</pubDate><atom:updated>2009-07-18T15:59:34.542-04:00</atom:updated><category domain="http://www.blogger.com/atom/ns#">Data Visualisation</category><category domain="http://www.blogger.com/atom/ns#">Office 2010</category><title>Excel 2010 gets sparklines, finally</title><description>&lt;p&gt;There are a number of different Office 2010 features and functions we’re getting wind of now that the covers have come off at the &lt;a href=&quot;http://www.digitalwpc.com/&quot;&gt;WPC in New Orleans&lt;/a&gt;. &lt;/p&gt;  &lt;p&gt;One feature that is of particular interest is sparklines. I would think that anyone who subscribes to this blog will know what a &lt;a href=&quot;http://en.wikipedia.org/wiki/Sparkline&quot;&gt;sparkline&lt;/a&gt; is and how useful native Excel support for this visualization will be.&lt;/p&gt;  &lt;p&gt;If you’re looking some more visual information about this new feature take a look at the following:&lt;/p&gt;  &lt;ul&gt;   &lt;li&gt;There’s a good &lt;a href=&quot;http://edge.technet.com/Media/Excel-2010-Sparklines/&quot;&gt;video on TechNet&lt;/a&gt;. The commentary is in German but the demo is pretty self-explanatory. Make sure you view it in full screen as you’ll get a good close-up view of the various display and formatting options available in the new Sparkline Tools ribbon tab. &lt;/li&gt;    &lt;li&gt;Scoble has a &lt;a href=&quot;http://scobleizer.com/2009/07/13/microsofts-new-office-10-brings-office-back-from-the-dead-tons-of-videos/&quot;&gt;post containing six great Office 2010 videos&lt;/a&gt; including one that demos the creation of sparklines (it’s the last video out of the six). In that same video there’s a demo of the new pivot table slicer functionality. Many would already be aware of slicer feature via the &lt;a href=&quot;http://www.youtube.com/results?search_query=gemini+microsoft&amp;amp;search_type=&amp;amp;aq=f&quot;&gt;various Gemini demo videos&lt;/a&gt; that have been available for the last few months. &lt;/li&gt; &lt;/ul&gt;  &lt;p&gt;&lt;font color=&quot;#004080&quot;&gt;&lt;strong&gt;UPDATE:&lt;/strong&gt; Here is the &lt;a href=&quot;http://blogs.msdn.com/excel/archive/2009/07/17/sparklines-in-excel.aspx&quot;&gt;official Sparkline post from the Excel 2010 team blog&lt;/a&gt;&lt;/font&gt;&lt;/p&gt;  </description><link>http://nickbarclay.blogspot.com/2009/07/excel-2010-gets-sparklines-finally.html</link><author>noreply@blogger.com (Nick Barclay)</author><thr:total>0</thr:total></item></channel></rss>