Advanced Administration and Configuration

This document only describes configuration out of the Admin Console scope.


The most important configuration file is called zenith.properties and is located in the install directory (default is C:\Program Files\pcMobile). You can edit zenith.properties by right-clicking on it, choosing “Open with Wordpad”. All Configuration Parameters


The most important tool to change the overall look and feel of the product itself is Cascading Style Sheets (CSS). CSS is used throughout the application and is reasonably easy to edit. Note however that the different web applications (Admin, Designer and View) all have separate CSS-files, not drawing on a central core. This is however true only for the pcMobile specific components. Everything else (grids, buttons, menus and so on) are controlled by Ext JS (http://ext.com) and YUI (http://developer.yahoo.com/yui/2/), the documentation for which is available from their respective sites. To locate the Ext CSS files, please check under the /app/js/ext/resources/css folder. Note that this is considered to be advanced functionality, changes to the CSS may cause the application to stop working correctly (in the sense that components with a faulty CSS configuration may not appear on screen) and rigorous testing is suggested if CSS changes are done.

It is perfectly possible to make simple changes to the HTML that the different web applications use. These are all located under /app and the files are

  • /app/ZenithAdmin.html
  • /app/ZenithClient.html
  • /app/ZenithDesigner.html

If you would want to add a custom header or some surrounding graphics to the page, feel free to edit them. We do however suggest that any such changes are verified on the test server prior to being moved into production.

All graphics used are contained in /app/images/dsp-icons. If you want to replace these with graphics that are specific to your organisation then feel free to do it, as long as you conform to the 16×16 size criteria for regular icons and 20×20 size for kpigraphics. Note that kpigraphics are contained in a separate subfolder in dsp-icons and any custom graphics that you want to use should be placed there. To add more files in these folders add them in C:\Program Files (x86)\pcMobile\bin\store\wwwroot\images\dsp-icons(\kpigraphics).

When setting up a graph it is possible to use one of a predefined set of color schemes. This list may or may not be appropriate for your organisation. It is however easy to change or completely replace. Find the /store/settings/colors.xml file and open it. PC07 uses a very simple XML format to define color schemes. Every scheme is defined in a <serie> element that looks like this:

<serie name=“chocolate”>FF7F24|EE7621|D2691E|CD661D</serie>

As you can tell it holds four colors and it has a name (which is assumed to be unique). The pipe character (“|”) is used to delimit the individual colors. These entries are enclosed in a <series> tag that has a default attribute that holds the name of the default color scheme to use. For historical reasons, the coloring of lines in barcharts uses the serie backwards, so be sure to try out the behaviour.

To set a certain serie, lets say “chocolate” to be the default color scheme the enclosing tag (or root tag) in colors.xml would look like this

<series default=“chocolate”>

When editing the file, please use an XML editor that is capable of catching simple syntactical errors since this will save you the trouble of figuring out why it doesn't work when the problem is that you are missing an end-tag somewhere in a file that can easily get very big.

For more on RGB colors refer to http://web.njit.edu/~kevin/rgb.txt.html or your favorite search engine.

Adapting the CSS can range from the simple change (changing the border color of the chart or table to something more in line with a corporate graphical profile) to a more complex one (completely overhauling the look of the designer). Since this is not a CSS tutorial we will concentrate on ensuring that you can find the places in which to do minor changes and then assume that you are able to find sufficient information to make any larger changes (again, we would like to stress that testing is required in order to ensure that the application can function correctly with your CSS changes).

The most basic change would be to change the outline color of a chart in the viewer application. If you check /app/ZenithClient.html you find that it references the /app/ZenithClient.css. In that file you locate the css class dsp-contentcontainer and you will find something like this:

  .dsp-contentcontainer {
  font-size: 8px;
  font-family:'trebuchet ms',helvetica, sans-serif;
  font-weight: normal;
  color: black;
  background-color:white;
  border-color:#94bcf0;
  border-style:solid;
  border-width:1px;
  margin: 5px;
  margin-right:20px;
  }

The border-color attribute controls the outline color. So if that is changed to (for example) #ff0000 the charts would have a red outline. The #ffffff format is called the RGB format and contains three hexadecimal values between 0 and 255. For more on RGB color schemes and that format, please refer to http://web.njit.edu/~kevin/rgb.txt.html or the search engine of your choice.


It is possible to write your own custom right click filter. In order to do this you need to do a couple of different things. First of all, refer to the developer documentation in order to find information on how to extend the TransformFilter class. Next you need to create a definition file. In store/properties/functionfilter you can find examples of filters that are used today.

controller:"filter":true{
    group:"filter"{
        controller:"filter.basic":true{
            group:"filter.basic"{
                default:mandatory:editable:hidden:"filter.basic.name":"order";
                default:mandatory:editable:hidden:"filter.basic.icon":"images/dsp-icons/icon_order.png";
                default:mandatory:editable:hidden:"filter.basic.class":"com.dsp.mdx.filter.OrderFilter";
                list:mandatory:editable:visible:"filter.basic.measure":"":"";
                list:mandatory:editable:visible:"filter.basic.order":"ASC""DESC""BASC""BDESC":"ASC";
            };
        };
    };
};

That's the definition of the order filter. Creating a new file containing the settings related to your filter and placing it in the /store/properties/functionfilter will allow it to be added. The value in filter.basic.name will be used as a label and the filter.basic.icon (if present) will provide the icon.


There are several ways of tuning the performance of pcMobile, most of these have less to do with pcMobile itself however as they are related to the cube engines (SQL Server Analysis Services, SAP BW or IBM Cubing Services) caching and so on. In brief, just be sure you use compression on the IIS instance fronting the XMLA provider since the performance hit is negligble anyway but the bandwidth consumption impact is huge. Since all the heavy pages and resources are loaded just once (and potentially when they have been updated through a new pcMobile version) the amount of data transfered to clients is restricted to rendered versions of the components they are requesting or properties structures. In a scenario with a huge number of users this will certainly have a bandwidth implication but it is still kilobytes per users rather than megabytes which should make it reasonably efficient. The internal result caching in pcMobile also ensures that we don't unnecessarily hit the underlying XMLA service. In essence it's the performance of the cube engine that will essentially govern how well the pcMobile functions, therefore ensuring the best possible MDX for each scenario is of the highest importance. There are numerous resources on the web where discussions are held on what the optimum strategies for some of the more common and complex queries, Mosha's blog is always a good starting point (http://sqlblog.com/blogs/mosha/) as is the blog of Chris Webb (http://cwebbbi.spaces.live.com/)

You can use the configuration file to setup cache timeouts for your cubes. If you, for example, have a cube called Sales you simple add the following line to the file called zenith.properties

dsp.cache.expire.sales=<time in milliseconds between cache timeouts> For example, if you would want to cache to time out every two minutes you would use 2*60*1000 = 180000, hence dsp.cache.expire.sales=180000 This would cause the cache to automatically discard old results after two minutes, without having to ask the cube whether the data was in fact updated.

  • pcmobile/userguide/admin/advan.txt
  • Last modified: 2014/04/09 13:33
  • by pcevli