Supervision Server Event Handlers

Supervision Server uses event handlers to react to users interacting with the In-Memory DB. Examples of these event handlers can be found in the SVS Script Editor, accessible from the Modeler. This editor contains many sample scripts that can be used for a variety of tasks. The parameters of each event handler can also be found within these files, as well as additional information to define more specific reactions. For example, the name of the saved database can be passed to OnDatabaseSaved for the script to react accordingly.

For each OLAP server, there is one global pool of workers for all cubes, dimensions, logins, etc. Each initialized worker starts a new SVS process. The default initial worker size is 1 and default maximum size is 32; These values can be configured by Jedox Support. If the maximum number of workers has been reached, the next request will fail with an error message "Too many SVS workers running, operation canceled". This cycle will continue until a worker is freed up.

Note: By default, the SVS event handler is disabled when running a cube load in Integrator.

The event handlers are described below:

OnUserLogin
Executed by the System Supervisor when a user tries to login. Only used when option workerlogin information is passed to the Jedox OLAP Server.

OnUserLogout
Executed by the System Supervisor when a user tries to logout. Only used if some option of type workerlogin is passed to Jedox OLAP Server.

OnUserAuthenticate
Executed by the System Supervisor when a user tries to login. Only used with workerlogin authentication option. Returns true or false depending on the success of the authentication. Note: workerlogin authentication will be deprecated in Jedox 2024.2.

OnUserAuthorize
Executed by the System Supervisor when a user tries to login. Only used with workerlogin authorization option. Return true or false as well as the set of groups the user belongs to (inside the array passed to the handler). Note: workerlogin authorization will be deprecated in Jedox 2024.2.

OnServerShutdown
Executed when Jedox OLAP server terminates.

OnTermination
Called by all workers when Jedox OLAP server sends a termination signal during the shutdown.

OnDatabaseSaved
Executed by the System Supervisor when a database is saved (manually, not during autosave).

InitCubeWorker
Within the function InitCubeWorker, one set (cube slice) of cells can be defined for every cube, and each of these “hot areas” can be linked to its own callback PHP function that will be executed if a user changes the value of a cell inside the set. This callback function, which is called in the InitCubeWorker event definition as part of the WatchCubeArea method and is defined in the script, has predefined parameters that will be automatically filled by the Supervision Server when the event is triggered at runtime (for an example, see the SalesCube function in the sep.inc.on_cell_change.php sample script). These parameters are described below:

Parameter Description
$database Name of the database where the writeback occurs
$cube Name of the cube where the writeback occurs
$areaid Internal ID of the area for which the cube worker was defined
$sid Session ID of the user doing the writeback (can be used to retrieve the username)
$coordinates Array of element names, defining the cell where the writeback occurs
$value Value being written
$splashMode

Sets the splash mode used during writeback. Note: the values of the splashMode parameter handed over from the spreadsheet are numeric 0-3. In the SVS script, the numeric values must be changed to the PHP Palo API values as indicated below:

0 = 'splash_MODE_NONE' No splashing
1 = 'splash_MODE_DEFAULT' splashing with #
2 = 'splash_MODE_ADD' splashing with !!
3 = 'splash_MODE_SET' splashing with !

Note: If a Writeback is executed on a string cell using a PALO.SETDATA spreadsheet function (or with the PALO_SETDATA PHP API function) with these conditions:

  • The value that is sent in the function is an empty string
  • The parameter for splashing in the function is set to TRUE

then the Cube Supervisor in SVS is called with the $splashMode parameter set to value "3".

$additive Parameter specifying whether the "add" parameter was used (1) or not used (0) in the writeback. Note that this parameter is always 0 for manual writebacks from Jedox Excel Add-in or Jedox Web.

InitCubeWorker can also be used to define a specific callback for copy events, using the WatchCubeAreaCopy method. For an example, see sep.inc.on_cell_copy.php. The parameters for this event definition are similar to those above, with the following differences:

$coordinatesFrom Array with the source coordinates of the copy operation
$coordinatesTo Array with the source coordinates of the copy operation
$function Parameter specifying which function was used for the "predict" command. Currently, the only supported function is linear regression (1).
$areaPredict Source area for the "predict" command (if any)
$useRules Parameter specifying whether the "withrules" keyword was used (1) or not used (0) in the writeback

OnDrillThroughExt
OnDrillThroughExt is a proprietary event used for interaction with Jedox Integrator.

This event uses the following parameters:

$database Name of the database where the writeback occurs.
$cube Name of the cube where the writeback occurs.
$mode Contains information on which front end was used to execute the drillthrough. Value is 1 if Drillthrough was executed in Jedox Web and 2 if it was executed in Jedox Excel Add-in.
$arg Contains the cell coordinates on which the user attempts to retrieve Drillthrough information. It can be parsed in the Drillthrough script and used to retrieve the Drillthrough data from the data source. For details, see the sample scripts.
$sid Session ID of the user doing the writeback (can be used to retrieve the username).

InitDimensionWorker
Within the function InitDimensionWorker, you can define one or several dimensions to be watched for changes. Each of these watched dimensions can then be linked back to its own callback PHP function that will be executed if the defined event (creation, renaming, or deletion of an element) occurs.

Note: The trigger to the Supervision Server is merely to notify it that the event has occurred. The action itself will be executed on the OLAP server.

Updated September 27, 2024