## Using a User Written subclass of EMDDB_M

You might need to extend or customize the functionality of EMDDB_M to meet your needs. For example, you may need to extend or customize EMDDB_M functionality if you use v6 Holap and v6 Holap++. Note that with SAS v8 holap is no longer a subclass of EMDDB_M and hence setting the MODEL attribute is unnecessary.

The MultidimensionalTable component enables you to override the underlying EMDDB_M model. MultidimensionalTable uses the following precedence to determine the underlying model:

- If the component is initialized using an existing EIS Application List (setApplication), the MODEL item on the application list is used. To modify the MODEL value from its default value of SASHELP.MDDB.EMDDB_M.CLASS (SASHELP.EIS.EMDDB_M.CLASS for v6), select the Advanced button located on the SAS/EIS Mulitidimensional Report build frame.
- If no EIS Application List is used to initialized the model ( initializeTable), the model first looks for a MODEL attribute in the registered metabase. If the attribute is present, its value (a four-level class name) is used for the underlying class.

For SAS v6 only

- If no MODEL attribute is found in the metabase, the model looks for the _SECURE attribute in the metabase. If the _SECURE attribute is found, the model uses the SASTOOL._DMDDB.DMDDB_M.CLASS Holap++ class.
- If no _SECURE attribute is found, the model looks for the _ASSDATA attribute. If this attribute is found, then the model assumes a standard Holap registration and uses the SASTOOL._DMDDB.HOLAP_M.CLASS class.

- Finally for both v6 and v8, if none of the above are found, the underlying model defaults to the standard EIS Multidimensional class: SASHELP.MDDB.EMDDB_M.CLASS (SASHELP.EIS.EMDDB_M.CLASS for v6).

If you have written your own subclass of EMDDB_M, you can use it by initializing with an existing EIS Application in which you override the model entry. Or, you can add the MODEL attribute to your metabase registration, and then select your classname for the model's value. For more information see the Overriding a Method tutorial on the AppDev Studio Developer’s Site.

If you are using v6 Holap or v6 Holap++ subclasses, you must modify the model entry for any EIS Application (as you would in EIS). Otherwise, the model will detect the need for the Holap class by inspecting the metabase registration. There is no need to add the MODEL attribute to the registration.

Note that some subclass customizations may have no effect. The current server implementation has a subset of methods of emddb_m that it uses as its interface. If your customizations are in methods that are not used directly or indirectly by the interface, they will have no effect.The _getValues method is an example of this. For performance reasons, the current implementation uses _getBlock and not _getValues. Therefore, any customizations of _getValues would need to be added to _getBlock in order to be picked up.

Customizations to _setApplication for actions such as hiding Statistic labels and customizing the popup menus are honored as this method is part of the current interface to emddb_m.

Customizations that have been added to the viewer through the Advanced tab of an SAS/EIS application will have no effect in a thin client environment. The InformationBean communicates only with the model and has no knowledge of thick client viewers.