Understanding Sun Master Index Configuration Options

midm.xml File Example

Below is a short excerpt from midm.xml based on a master index application processing person information. This sample defines two pages on the MIDM. The first page defines one blocking search, one simple lookup search, and one search result list. The second page is the reports page, and it defines a Potential Duplicate Report and a Weekly Activity report.


<node>
   <name>Person</name> 
   <field>
      <name>LastName</name> 
      <display-name>Last Name</display-name>
      <display-order>1</display-order>
      <max-length>40</max-length>
      <gui-type>TextBox</gui-type>
      <value-type>string</value-type>
      <key-type>true</key-type>
   </field>
   <field>
      <name>FirstName</name> 
      <display-name>First Name</display-name>
      <display-order>2</display-order>
      <max-length>40</max-length>
      <gui-type>TextBox</gui-type>
      <value-type>string</value-type>
      <key-type>true</key-type>
   </field>
   <field>
      <name>DOB</name> 
      <display-name>DOB</display-name>
      <display-order>3</display-order>
      <max-length>32</max-length>
      <gui-type>TextBox</gui-type>
      <value-type>date</value-type>
      <key-type>true</key-type>
   </field>
   <field>
      <name>Gender</name> 
      <display-name>Gender</display-name>
      <display-order>4</display-order>
      <max-length>8</max-length>
      <gui-type>MenuList</gui-type>
      <value-list>GENDER</value-list>
      <value-type>string</value-type>
      <key-type>true</key-type>
   </field>
   <field>
      <name>SSN</name> 
      <display-name>SSN</display-name>
      <display-order>5</display-order>
      <max-length>16</max-length>
      <gui-type>TextBox</gui-type>
      <value-type>string</value-type>
      <input-mask>DDD-DD-DDDD</input-mask>
      <value-mask>DDDxDDxDDDD</value-mask>
      <is-sensitive>true</is-sensitive>
   <field>
</node>
<node>
   <name>Alias</name>
   <display-order>1</display-order>
   <field>
      <name>LastName</name> 
      <display-name>LastName</display-name>
      <display-order>1</display-order>
      <max-length>40</max-length>
      <gui-type>TextBox</gui-type>
      <value-type>string</value-type>
      <key-type>true</key-type>
   </field>
   <field>
      <name>FirstName</name> 
      <display-name>FirstName</display-name>
      <display-order>2</display-order>
      <max-length>40</max-length>
      <gui-type>TextBox</gui-type>
      <value-type>string</value-type>
      <key-type>true</key-type>
   </field>
</node>
<relationships>
   <name>Person</name>
   <children>Alias</children>
</relationships>
<impl-details>
   <master-controller-jndi-name>ejb/PersonMasterController
   </master-controller-jndi-name>
   <validation-service-jndi-name>ejb/PersonCodeLookup
   </validation-service-jndi-name>
   <usercode-jndi-name>ejb/PersonUserCodeLookup</usercode-jndi-name>
   <reportgenerator-jndi-name>ejb/PersonReportGenerator
   </reportgenerator-jndi-name>
   <debug-flag>true</debug-flag>
   <debug-dest>console</debug-dest>
   <enable-security>true</enable-security>
   <object-sensitive-plug-in-class>com.sun.mdm.index.security.VIPPlugIn
   </object-sensitive-plug-in-class>
</impl-details>
<gui-definition>
   <page-definition>
      <local-id/>
      <initial-screen-id>1</initial-screen-id>
      <record-details>
         <root-object>Person</root-object>
         <tab-name>Record Details</tab-name>
         <screen-id>1</screen-id>
         <display-order>2</display-order>
         <search-pages>
            <simple-search-page>
               <screen-title>Advanced Person Lookup (Phonetic)</screen-title>
               <search-result-id>1</search-result-id>
               <search-screen-order>1</search-screen-order>
               <show-euid>false</show-euid>
               <show-lid>false</show-lid>
               <instruction/>
               <field-group>
                  <description>Person</description>
                  <field-ref required="false">Person.FirstName</field-ref>
                  <field-ref required="false">Person.LastName</field-ref>
                  <field-ref required="false">Person.SSN</field-ref>
               </field-group>
               <field-group>
                  <description>Alias</description>
                  <field-ref required="false">Person.Alias.FirstName</field-ref>
                  <field-ref required="false">Person.Alias.LastName</field-ref>
               </field-group>
               <search-option>
                  <display-name>Phonetic Search</display-name>
                  <query-builder>BLOCKER-SEARCH</query-builder>
                  <weighted>true</weighted>
                  <parameter>
                     <name>UseWildcard</name>
                     <value>false</value>
                  </parameter>
               </search-option>
            </simple-search-page>
            <simple-search-page>
               <screen-title>Simple Person Lookup</screen-title>
               <search-result-id>1</search-result-id>
               <search-screen-order>2</search-screen-order>
               <show-euid>true</show-euid>
               <show-lid>true</show-lid>
               <instruction/>
               <field-group/>
               <search-option>
                  <display-name>Alpha Search</display-name>
                  <query-builder>ALPHA-SEARCH</query-builder>
                  <weighted>false</weighted>
                  <parameter>
                     <name>UseWildcard</name>
                     <value>true</value>
                  </parameter>
               </search-option>
            </simple-search-page>
         </search-pages>
         <search-result-pages>
            <search-result-list-page>
               <search-result-id>1</search-result-id>
               <item-per-page>10</item-per-page>
               <max-result-size>100</max-result-size>
               <field-group>
                  <description/>
                  <field-ref>Person.FirstName</field-ref>
                  <field-ref>Person.MiddleName</field-ref>
                  <field-ref>Person.LastName</field-ref>
                  <field-ref>Person.SSN</field-ref>
                  <field-ref>Person.DOB</field-ref>
                  <field-ref>Person.Gender</field-ref>
               </field-group>
            </search-result-list-page>
         </search-result-pages>
      </record-details>
      <reports>
         <root-object>Person</root-object>
         <tab-name>Reports</tab-name>
         <screen-id>6</screen-id>
         <display-order>5</display-order>
         <search-pages/>
         <search-result-pages/>
         <subscreen-configurations>
            <subscreen>
               <enable>true</enable>
               <root-object>Person</root-object>
               <tab-name>Potential Duplicate Report</tab-name>
               <report-name>Potential Duplicate</report-name>
               <screen-id>0</screen-id>
               <display-order>1</display-order>
               <search-pages/>
               <search-result-pages>
                  <search-result-list-page>
                     <search-result-id>0</search-result-id>
                     <item-per-page>10</item-per-page>
                     <max-result-size>2000</max-result-size>
                     <field-group>
                        <description/>
                        <field-ref>Person.FirstName</field-ref>
                        <field-ref>Person.LastName</field-ref>
                        <field-ref>Person.SSN</field-ref>
                        <field-ref>Person.DOB</field-ref>
                        <field-ref>Person.Gender</field-ref>
                     </field-group>
                  </search-result-list-page>
               </search-result-pages>
            </subscreen>
            <subscreen>
               <enable>true</enable>
               <root-object>Person</root-object>
               <tab-name>Activity Report</tab-name>
               <report-name>Transaction Summary Report</report-name>
               <screen-id>2</screen-id>
               <display-order>2</display-order>
               <search-pages>
                  <simple-search-page>
                     <screen-title>Weekly Activity</screen-title>
                     <report-name>Weekly Transaction Summary Report</report-name>
                     <search-result-id>0</search-result-id>
                     <search-screen-order>1</search-screen-order>
                     <field-group/>
                  </simple-search-page>
                  <search-result-pages>
                     <search-result-list-page>
                        <search-result-id>0</search-result-id>
                        <item-per-page>10</item-per-page>
                        <max-result-size>2000</max-result-size>
                        <field-group/>
                     </search-result-list-page>
                  </search-result-pages>
               </subscreen>
       </page-definition>
   </gui-definition>