Skip to main content

Fun with MicroStrategy 9.3.0 Network Widget

When I take a break from work, I pretty much just find a personal project to get busy with! This time it was the Network Widget in MicroStrategy 9.3.0 that got me busy. I have been working on my family tree using Legacy Genealogy software. Being of the Indian (East) ancestry, I wanted to represent the relationships using terms from Indian languages. For example, mother's brother in English is Uncle but in Gujarati/Hindi is Mama. Father's brother in English is Uncle but in Gujarati/Hindi is Kaka and Chacha respectively.

I wanted to make a 'dashboard' of my own that would represent these terms and allow me to filter by family members and individuals. So I started with a database. Since this is just a proof of concept (to myself), I decided to keep the design pretty simple.

Database Design
The design comprises simply of 3 tables. First and foremost are two 'primary' tables - tblRelationships and tblFamilyMembers. tblRelationships defines relationship names between two individuals in the family. These relationships are grouped by 'Uncle Aunties', 'Siblings', 'Cousins' etc. Each of these relationships have relationship name assigned to them.
tblRelationship
Next table is tblFamilyMembers. As the name suggests, this is a list of individuals in the family. Below is a screenshot of the table. You can be very creative with this table and track as much information as you like - DoB, DoD, major life events, major cultural events etc to display on a time series.
tblFamilyMembers

Finally, combination of the above two tables produces a secondary table - tblRelationships. Only relationship I define manually is Child to Parent. Once that is done, the algorithm in my stored procedure identifies the other relationships like uncle-aunty, grandparents, cousins, nieces, nephews etc.
tblRelationships

This table has 3 facts that will be used by Network widget - Relationship Level, Relationship Bond and Relationship Strength. In this network diagram, sum of relationship strength = size of circle, sum of bond = color of line and sum of relationship level = thickness of line between two individuals. In my project, relationship level is the highest between Husband and wife. Bond between two individuals (subjectively defined) determines the color of the line - which also for a visual identification of relationship. In this project, bond between husband and wife is the highest (!), represented by blue line. Now, in a given filtered display the number of members you are connected to defines the Relationship Strength and in turn defines the size of a member's circle.

Without further ado, here is the screenshot of my relationships.


This is how it looks with about 50 of the family members listed. Each silo indicates a group of family members. For privacy, all family members' names have been removed. But as you can see, the thick blue line across the network defines the relationship between my wife and I.
Network Widget - Representing Relationships of Ankeet Shah and in color below

All Relationships Between All Members in the Model
Network Filtered to Display Only Spouses
My Relationship With My Mother's Siblings

Finally, the BIG picture!
THE BIG PICTURE
In 'The Big Picture', two largest blue nodes are my wife and I. Connected to me (big blue node on top) are my parents (Father to left and mother above) and then around them is a network of their siblings. Further, around my mother's node are smaller nodes representing her family.

This was a fun little project. You can get more creative and employ many other widgets to make a 'Family Dashboard'. I saw the biggest use of this to be the one for your kids. Your kids do have a tablet and do have a phone - let them explore your families in a fun way! If you do find a widget that mimics the Organization Chart in MicroStrategy let me know!

Comments

Anonymous said…
Interesting use of the Network widget! Martin.
Anonymous said…
Awesome..

Good Job
Lavanya said…
Nice and good article. It is very useful for me to learn and understand easily. Thanks for sharing
Microstrategy Training
Microstrategy Online Training

The Popular Ones

Using SQL To Calculate XIRR (Internal Rate of Return)

Thanks to binaryworld.net , I was finally able to get a sql way to calculate XIRR. After 2 long hours of search I found this site and the logic as well as the code works perfectly well! XIRR is a function in excel that calculates Internal Rate of Return based on payments/income over a period of time. Without further ado, here is the code (a slightly modified version from BinaryWorld.net. Happy XIRRing! -- First, CREATE XIRR Table to store values CREATE TABLE XIRRTempData( amt float, dt datetime, guid varchar(128) ) go create function dbo.XIRR( @d datetime, @GUID varchar(128) ) returns decimal(18,10) as begin /* USAGE: select @IRR = dbo.xirr(null, guid) select @IRR IRR, @IRR * 100 'IRR %' Note: Leave the first parameter (date) null if you wish to see the XIRR calculated as of the maximum date in the dataset provided else provide a specific date to see the XIRR calculated as the given date. Created By: Ankeet Shah Created On: 7/16/2008 */ IF @d is null SELECT @d = max(d) from Inc

Alternating Row Background Color For SSRS Matrix (Pivot Table)

I had a tough time to apply alternate row colors to a SSRS Matrix and finally figured out! Without further ado, here it is... Assume you have a matrix with more than 1, lets say 2 row groupings; RG1 and RG2. 1. Right-click on RG2 (innermost row group), and select "Insert Group"; for simplicity call it "RowColorGroup" 2. In the "Group On" section, add some constant value - for example ="" or ="ankeet" etc... you get the idea! 3. Select the newly created group "RowColorGroup" and enter the following in its "Value" property: =iif(RunningValue(Fields!RG1.Value & Fields!RG2.Value,CountDistinct,Nothing) Mod 2, "LightSteelBlue", "White") 4. Select the "BackgroundColor" property of "RowColorGroup" and enter "=Value" 5. Set the width of "RowColorGroup" to 0pt and "CanGrow" to false 6. Select the data cell(s) and set their "BackgroundColor" pro

cannot create a column accessor for OLE DB provider "ibmdasql" for linked server

I have a linked server from Microsoft SQL 2008 to a DB2 server. Today when I tried to run a SELECT statement based on the linked server, I hit this error, "cannot create a column accessor for OLE DB provider "ibmdasql" for linked server". Earlier in the day, we had restarted the SQL Server Service. Running the following script on the 'affected' sql server should fix the issue. USE [master] GO SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO CREATE PROC [dbo].[usp_enum_oledb_providers] AS exec sp_enum_oledb_providers GO sp_procoption 'usp_enum_oledb_providers', 'startup', 1 Restart the sql server service after running above script.