A noble goal for any software solution is to provide an out-of-the-box experience that natively meets all end user requirements. Master data management (MDM) solutions are no different, and all platforms provide interface options that dynamically react to the underlying data model to provide data stewardship functionality.
In the MDM space, data stewards are ideally experts in the data that is being managed, and can be trusted with flexible and powerful interfaces that are provided out of the box. As less sophisticated “casual” data stewards are engaged, a need arises for a more constrained interface to manage the user experience and guide stewardship activities. In a prior blog posting, we showed options for creating simple task interfaces for just such a scenario. In this blog post, we show additional options for creating more complex interfaces for casual data stewards, which are useful when more sophisticated requirements are in play.
One such challenging stewardship environment is within the product domain. In comparison to other domains (customer, chart of accounts, etc.), the product domain is typically complex to model, with correspondingly complex requirements for the presentation and management of product information for data stewards. Many organizations, in order to meet the needs of their data stewards, have developed home grown PIM solutions to deliver a user experience that is specific to the nature of their products. But with an MDM solution, much of the core functionality is available out of the box (data modeling, integration, data quality rules, basic data stewardship UIs, etc.), reducing needed customization to the data steward experience itself. In the next sections, we’ll explore options for creating these types of interfaces.
Sample Custom User Interface
The following example comes from a real world solution we helped deliver for one of our customers. This specific customer was in the retail industry, and needed a way to manage the reference data for tracking digital promotions, called tracking IDs. Hundreds of data stewards would be managing this data. In this example we began by providing users with a way to easily browse existing tracking IDs:
If a new tracking ID was required, the user was led through the process by a custom workflow, with forms that reacted dynamically to the type of tracking ID the user was creating.
Step 1: Create the new tracking ID:
Step 2: Complete the new tracking ID:
Technical Approaches for Custom Development
In the Microsoft MDS ecosystem, there are two technologies available for the development of custom user interfaces, the Maestro SDK and the underlying MDS web services. While the example above was developed using the Maestro SDK option, it is possible to deliver the same capabilities with the underlying MDS web services option. Each approach is described below.
Custom UI Development with MDS
When MDS 2008 R2 was released, the most significant new feature was the addition of a library of web services, which can be used to develop custom user interfaces. In fact, Profisee’s own Maestro platform uses these same web services for the majority of its operations, proving that much development is possible with the available MDS web services.
The learning curve can be steep, however. The best way to get started developing solutions using MDS’ web services is to browse some of the sample solutions for MDS on CodePlex. Most of these are desktop-based applications that demonstrate the usage of MDS web services to perform a number of useful functions. Using these as a guide, you can quickly determine the service operations that are useful, and get something started more quickly.
The full documentation for MDS’ web services is a good resource to keep on hand as you develop your solution. It is available on MSDN, here: http://technet.microsoft.com/en-us/library/hh230994
Custom UI Development with Maestro
After witnessing many struggle with the learning curve to develop custom user interfaces using MDS’ web services, Profisee wanted to provide some tools to make things easier. In our own Maestro solution, we had already encapsulated interactions with MDS’ web services into simpler functions. We moved to expose those, and leveraged them in our Accelerator Framework and Generated Web Services to provide several different endpoints for development. This is all made available through Profisee’s Maestro SDK.
With these tools available, developers can now focus on the functionality being delivered, while the mechanics of interacting with MDS are concealed. The following screenshot shows the code required to fetch and display members from a particular entity, which is accomplished in just 4 lines of code: