Override Map Auto Creation

Introduced in CMaps Plugin 4.1.6, the new property Override map auto creation. Essentially, this property will prohibit CMaps Plugin from loading on map initialization and allows you as a developer to delay the map from loading.

The goal is to grant more control to developers when the map will refresh and save initialization performance, and also prevent conflicts when the dashboard is refreshing data “before components are loaded”.

What does this property solve?

This property resolves multiple issues that have popped up as complexity of dashboards and map requirements increase. Here are specific areas that this property will resolve:

Undesired behavior where on load the map shows up as a small square

When all map tiles don’t load during initialization

How to use this new property

1. Go to the bottom of the Behavior tab

2. Check the box Override map auto creation


3. Bind the property to a cell in your dashboard that is populated by live data on load. This bindable property works as a trigger, so as soon as the cell changes, it will trigger the map to initialize.

If you are missing this property, please upgrade to CMaps Plugin 4.1.6

4. Thats it! Now when your dashboard initializes, the map wont execute for the first time until your data is loaded, thus reducing some latency, eliminating conflicts that can result in a map failure denoted by CMaps Plugin displaying as a small square.



Other ways to improve your dashboard performance.

It is always a recommended practice to not use the SAP BusinessObjects Data Manager to refresh your queries “before components are loaded”, especially for more complex dashboards with lots of logic.

Below is an excerpt taken directly from SAP’s best practices Wiki

Factors That Affect Dashboard Load Time

Lower numbers are better:

  1. Queries or connections that are set to Refresh Before Components Are Loaded.
    This is the default setting for a query.
    If you have any queries or connections set to refresh before components are loaded the Initializing message phase stays up until they have all completed.
  2. Excel cells
  3. Excel calculations
  4. Components
  5. Bindings from components to Excel (also size of ranges)
  6. Dashboard file size

By default the maximum number or rows you can refer to in a formula or in a binding is 512 rows.
You can adjust this in File > Preferences > Excel Options (max recommended is 2000 rows) but this may affect the performance of your dashboard.


Run Queries And Connections After The Dashboard Loads

The default is that queries run when the Initializing message is shown as the dashboard loads.

The Initializing message stays up until all of the queries or connection that are set to Refresh Before Components Are Loaded have completed.

This can feel slow to the user if more than one query/connection needs to run.

Instead we want the dashboard to open as quickly as possible with no data, then to query for the data and as the data is returned the dashboard updates. This will feel much faster to the user although the overall end-to-end time is similar.

Here is what you should do:

  1. Go the Usage options:
    1. For a query navigate to the Usage Options
    2. For a connection go to the Usage tab
  2. Uncheck Refresh Before Components Are Loaded
  3. Add a refresh button:
    1. For a query add a Query Refresh Button (in Universe Connectivity) to the canvas
    2. For a connection add a Connection Refresh Button (in Web Connectivity) to the canvas
  4. In the refresh button Behavior tab check Refresh After Components Are Loaded
  5. Select the queries/connections to run:
    1. For a query in the General tab check each query that is to be run on load
    2. For a connection in the General tab check each connection that is to be run on load
  6. Optionally hide the refresh button:
    1. Do not use Dynamic Visibility as that may prevent the button from calling the queries/connections
    2. You can place the button behind another control
    3. Got to the Appeance tab and uncheck Show Button Background
    4. Go to the Appearance > Text tab and unheck the Label