Configure Settings for Large Tables
SuperWEB2 will automatically switch to large table mode if a user attempts to create a table containing more than a certain number of cells.
By default, the thresholds for large table mode are set at 8,000 rows, 1,000 columns, 100,000 total cells excluding wafers and 1,000,000 total cells including wafers.
You can choose to either configure a global set of large table mode thresholds that apply to all datasets and users, or you can configure specific settings for particular datasets and particular groups.
Configure Large Table Threshold - Global Settings
To configure the global thresholds for large table mode:
- Open <tomcat_home>\webapps\webapi\WEB-INF\classes\configuration.properties in a text editor.
Locate the following section:
XML#================================================================================================================ # TABLE.LARGETABLEMODE #================================================================================================================ # Integer. Default 3. # Defines the number of values at each nesting level to show when you fall into large table mode. table.largeTableMode.previewDataSize= # Integer. Default 1000000. # SW2 will enter large table mode if the entire table (rows, columns and wafers) has more than this number of cells. # This is primarily used to assist with tabulation performance and download size on the server side. For client # rendering performance, thresholdRendered should be used. # A value of -1 will disable the limit. table.largeTableMode.thresholdTotal= # Integer. Default 100000. # SW2 will enter large table mode if the visible part of the table (rows and columns, excluding wafers) exceeds this # number of cells. This is used primarily for rendering performance on the client side. To assist with tabulation # performance and download size on the server side, thresholdTotal should be used. # A value of -1 will disable the limit. table.largeTableMode.thresholdRendered= # Integer. Default 8000. # SW2 will enter large table mode if the table has more than this number of rows. # A value of -1 will disable the limit. table.largeTableMode.thresholdRow= # Integer. Default 1000. # SW2 will enter large table mode if the table has more than this number of columns. # A value of -1 will disable the limit. table.largeTableMode.thresholdColumn=
There are four settings that determine when large table mode will be activated:
Parameter Enter large table mode if the table contains... table.largeTableMode.thresholdTotal
More than this number of cells for the entire table.
table.largeTableMode.thresholdRendered
More than this number of cells, excluding wafers.
table.largeTableMode.thresholdRow
More than this number of rows. table.largeTableMode.thresholdColumn
More than this number of columns. To disable any of the above options, set the value to -1.
You may also want to configure the
previewDataSize
setting. This controls the number of cells to show at each level in the table when SuperWEB2 is in large table mode.By default, this is set to 3 (as shown here, SuperWEB2 displays the first two values of the field and .. to indicate that there are more items at this level):
- Save your changes to the file and restart Tomcat or the SuperWEB2 service.
Configure Large Table Mode - Per-Group and Per-Dataset
If you want to configure different settings for specific datasets or for groups of users, then you can use the following commands in the SuperADMIN configuration server.
Replace <index>
with the index value of the group of settings (starting from 0) and replace <limit>
or <list_of_groups>
with the limit or groups you want this to apply to (see Configuration Server Overview for more details on how to use the SuperADMIN configuration server):
Global Settings
cfg global superweb2.largeTableMode[<index>].thresholdTotal set <limit>
cfg global superweb2.largeTableMode[<index>].thresholdRendered set <limit>
cfg global superweb2.largeTableMode[<index>].thresholdRow set <limit>
cfg global superweb2.largeTableMode[<index>].thresholdColumn set <limit>
cfg global superweb2.largeTableMode[<index>].excludeGroups set <list_of_groups>
cfg global superweb2.largeTableMode[<index>].includeGroups set <list_of_groups>
Per-Dataset Settings
cfg db <dataset_id> superweb2.largeTableMode[<index>].thresholdTotal set <limit>
cfg db <dataset_id> superweb2.largeTableMode[<index>].thresholdRendered set <limit>
cfg db <dataset_id> superweb2.largeTableMode[<index>].thresholdRow set <limit>
cfg db <dataset_id> superweb2.largeTableMode[<index>].thresholdColumn set <limit>
cfg db <dataset_id> superweb2.largeTableMode[<index>].excludeGroups set <list_of_groups>
cfg db <dataset_id> superweb2.largeTableMode[<index>].includeGroups set <list_of_groups>
You only need to specify settings that you specifically want to override. If a setting is not defined for a particular dataset, then SuperWEB2 will fall back to the global value of that setting. If it is not defined in the global settings either, it will fall back to the one from the configuration.properties file.
The excludeGroups
and includeGroups
settings allow you to specify that a particular group of settings apply to specific groups of users:
excludeGroups | If a user belongs to one of the groups listed in exclude groups, then this set of threshold settings will not apply to that user. The user will either be subject to:
|
---|---|
includeGroups | If you use If you specify both |
For example, the following configuration would ensure that the following rules apply to the Retail Banking dataset:
- A row threshold of 500 rows applies to all users.
- A total threshold of 10,000 cells applies to all users except for users in the administrators or internalusers groups (those users would have the total threshold setting from configuration.properties instead).
- Other settings fall back to the global settings or (if not set globally) the ones from configuration.properties.
cfg db bank superweb2.largeTableMode[0].thresholdTotal set 10000
cfg db bank superweb2.largeTableMode[0].excludeGroups set ["administrators","internalusers"]
cfg db bank superweb2.largeTableMode[1].thresholdRow set 500
Check Current Large Table Mode Configuration
You can use the following commands to check the current configuration:
cfg global superweb2.largeTableMode
cfg db <dataset_id> superweb2.largeTableMode
For example:
> cfg db bank superweb2.largeTableMode
[
{
"excludeGroups":[
"administrators",
"internalusers"
],
"thresholdTotal":10000
},
{
"thresholdRow":500
}
]
>
Other Large Table Mode Configuration
Change the Preview String
You can also change the string that is shown in the last heading for each row and column. By default this is set to ..
Open <tomcat_home>\webapps\webapi\WEB-INF\classes\common_labels.properties.
There may be multiple copies of this file for different languages and locales, with names like common_labels_en.properties and common_labels_en_AU.properties. Each one contains the text used for different languages. Depending on which languages are in use on your deployment, you may need to make these changes in multiple versions of the file. The properties file that is used will depend on the language settings in the end user's web browser, the set of supported locales defined in the faces-config.xml configuration file, and the language selected by the user from the drop-down list. See Multilingual and Localisation Support for more information about localisation and how SuperWEB2 uses the properties files.
Locate the following property:
TEXTtableView.largeTableMode.dots=..
Change the value to your preferred string.
- Save your changes and and restart Tomcat or the SuperWEB2 service.
Configure the Maximum Number of Cells in a Table
To configure the maximum number of cells permitted in a table:
Open <tomcat_home>\webapps\webapi\WEB-INF\data\.repository\RulesEngine.xml in a text editor.
Make a backup copy of this file before making any changes.
Locate the following section:
XML<rules:EditRule name="TableCellsNumberRule" applicableOperations="add;drillup;drilldown" implClassName="au.com.str.webapi.services.database.manager.rules.impl.TableCellsNumberRule"> <rules:impl-class-init> <rules:init-param name="maxElementCount" value="40000000"/> <rules:init-param name="disableMaxElementCount" value="false"/> </rules:impl-class-init> </rules:EditRule>
- Change the value of
maxElementCount
to your preferred maximum number of cells. - Save your changes to the file and restart Tomcat or the SuperWEB2 service.
Prevent Guest Users from Accessing Large Table Mode
If you have enabled guest user access on your system, you may also wish to prevent guest users from accessing large table mode. See Prevent Guest Users from Creating Large Tables for more information on this step.