Skip to content

# Extensions

Extensions provide a way to perform a bulk operation over multiple business objects at once, for example mass deleting selected objects or tagging them.

## Authorization Roles required

Extensions require the same rights to make bulk changes on multiple objects as would be required to perform the same operation on a single record of that type of object.

For example, if an extension is used to delete Customer records in bulk the User must have the right to delete a single Customer record from the Customer edit form.

## How to access Extensions

Extensions are accessed from the extensions menu in any form that shows a list of business objects that are extendable.

## How extensions work

Extensions operate over the entire data table or individually selected rows in the data table.

### Selecting objects

You can run an extension operation on all records in a data table or individually selected records the same way that reporting works.

Filtering the data table can be used to reduce the records to a specific set of rows will be sent to the extension for processing; what is available in the data table is what is sent to the extension.

If no rows are indivdidually selected then all rows available to be viewed in the data table are processed regardless of which page you are viewing at the moment in the data table, all rows in the total row count will be processed. For example if you are viewing page 2 of 20 pages of rows available, ; all 20 pages of rows will be sent to the extension.

When no rows are selected the current filtering and sorting choices are sent to the server not the actual record id's. This means the server must 're-hydrate' the same view you are seeing in the web app based on the filtering and sorting choices which means it's possible new records which meet the filter condition were added in the time between the data table being fetched and the server re-hydrating the list to process an extension.

For this reason it's a good idea to refresh the data table and confirm it contains the desired records before running the extension on all rows in the data table view or select individual records only depending on what is most appropriate.

Selecting individual records limits the extension operation to only the selected rows. Individual records can be selected for processing by checking the checkboxes in the leftmost column when available in which case only the records selected will be processed.

### Confirming selected items

The Extensions control shows exactly how many records it will operate on and you should check this before starting the extension operation to be certain it will work with the number of records expected:

If no individual items are selected then it will display "All items in the list" indicating there are no specific selections and the operation will be performed on all items that are displayed in all pages of the data table.

### Running the extension

The Extensions control will display all available extensions for the type of business object and rights available:

Click on the extension you want to apply against the selected items to open that extension's user interface and initiate the extension.

Extensions run as a Job at the server, so when you start an extension it is submitted to the server and placed in the job queue for execution.

When the server reaches the extension job in the queue it will submit that job to the individual business object handler to be processed and will return the results when completed.

The extension control will keep rechecking with the server until it's signalled that the job is completed or failed and will display a status notification.

### Progress

While an extension is running it will display the progress if appropriate and offer a cancel button to request the server stop the job in progress.

Cancelling a job does not reverse the changes already made to that point, it only stops the job from processing the remaining records.