With the SAP MII 12.2 release to the general market on 08/17/2011 a feature called Manufacturing Data Object (MDO) was introduced as an option for persisting data inside of your SAP MII composite applications. This allows any MII content developer to create an object that maps to a table inside of the SAP MII NetWeaver database and does not require access to a separate database. While it is perfectly acceptable for MII to access an external database and a common way to interface to an MES system, I usually push people to use the SAP Java Data Dictionary or SAP MII MDO. The reason is that if you are going to create a database model or persist data for your composite applications, both of these products allow you to leverage NWDI managed process so they have a change management process. The same NWDI track that the Data Dictionary is using can also be used for all of your MII content, including MDO definitions, and this will help to ensure your content matches the expected data model. NWDI does add a layer of complexity that not everyone is ready for but the SAP Data Dictionary is something that most people don’t even know about plus it can save them from using an additional DB license at their plants.
Differences between SAP Data Dictionary & SAP MII MDO
The differences between the design of the SAP Data Dictionary and the SAP MII MDO feature is primarily that the Java Data Dictionary is part of the SAP NetWeaver Developer Studio (NWDS) and is designed to allow a user to define multiple related tables. This is not only referring to primary and foreign key dependencies but it also is complete with support for triggers, sequences, and embedding of native SQL scripts across one or many database vendors. This tool essentially allows you to define and manage a common database model and structure across any database vendor; pretty cool. So with all of these features built out already why is there a need for SAP MII MDO? The differentiator for MDO is that it’s tightly coupled with your MII content and it is even defined inside of the MII Workbench along with the rest of your MII content. It also has a lifecycle tied to it which means that the definition for the management of its data is also part of the object definition which simplifies the complexity of the data management. The MDO object still related one to one with a table in the NetWeaver database and will scale to whatever size the underlying NetWeaver database allows you to but it will not allow you to setup primary & foreign key dependencies, triggers, sequences, or anything else that Open SQL does not support.
Recommendations for when to SAP Data Dictionary or SAP MII MDO
The SAP Data Dictionary is typically good for defining relational data models that drive large scale MES or LIMS style applications where-as the MDO approach is designed to be more like a living cache of data that is periodically updated for driving performance visibility or data buffering type applications. To reiterate my point earlier, the MDO objects will scale to whatever the NetWeaver database allows them to grow to just like the Data Dictionary tables do but the MDO objects have a lifecycle that is also defined along with them for easier management of this data.
Hope this helps to clarify and I am looking forward to hearing about your experiences and feedback.