Export Task
Definition
An Export Task enables to export information (attributes) about a large population of objects (Identities, Organizations or Resources) to a file.
The generated export file can be exported by the user who triggered the export or by authorized users for exports triggered periodically by the system.
Two file formats supported are CSV and XLSX (Microsoft Excel).
Exported objects are sorted by identifier. Data is not ordered according to dependencies (such as manager first then user referencing manager). This is not an issue because an Import Task is able to re-order objects according to their dependencies.
Binary and encrypted attributes cannot be exported.
Use
An Export task can be :
Private, meaning the task has been executed on demand by a end user
Public, meaning the task is executed periodically by a scheduled job
Launch and Download an export file - Private Export
When a task execution is "private", only the user who launched it can access the corresponding export file (other users with administrative rights may also access it).
Steps | Preview | |
---|---|---|
1 | In the My Exports Section, click on the Run Task button |
![]() Private Exports - Step 1 : Run Tasks |
2 | Select the Export to Run and click on Run Button |
![]() Private Exports - Step 2 : Select Export |
Download an export file - Public Export
When a task execution is "public", only the users with appropriate rights can retrieve the export files produced by the scheduled job execution.
Steps | Preview | |
---|---|---|
1 | In the Public Exports Section, for a dedicated task, click on the Download button |
![]() Public Exports - Downloads |
Access Control
Execution rights can be granted on a per-task basis. For example, if two Export Tasks "A"and "B" are configured, a user may be allowed to execute "A" only, but not "B".
Administrative rights can also be granted so that a user can execute any Export Task (more on that later).
Access control is applied when:
configuring an Export Task, i.e. when creating/updating an Export Task Definition.
executing/canceling an Export Task
downloading the export file produced by an Export Task execution
deleting the export file produced by an Export Task execution
All these use cases are controlled using Permissions that follow the standard schemes:
Those permissions are arranged in the following rights that can be granted to users:
Configuration
The execution of an Export Task is not to be confused with its configuration. Tasks are configured by administrators, and can then be executed by end-users (or by the system when scheduled export), if they have the appropriate execution right on the Export Task.
![](../../__attachments/700580252/SyncExport.jpg?inst-v=23d06e63-6973-4052-aaa5-c79093e792e5)
Export Task Configuration
If an attribute is multi-valued, its values are exported as concatenated using a configurable separator, e.g. a pipe "|", which would give: value1|value2|value3
. However, it is possible to export one and only one multi-valued attribute as "expanded". For this attribute, one line is generated per value (which would give 3 lines in the previous example). For all those lines, other column values are duplicated, i.e. they are redundant.
Properties
An Export Task is configured through an Export Task Definition, whose properties are listed below.
Export Task Definition
Here are the "general" properties of an Export Task Definition:
Property Name | Type | Mandatory | Description | Values (default value in bold) |
---|---|---|---|---|
id |
| YES | The Export Task identifier. | - |
name |
| YES | The Export Task name. | - |
description |
| NO | The Export Task description. | - |
active |
| NO | Whether the Task is active or not. If not it cannot be launched. | true, false |
fileType |
| YES | The format of the export file. Possible values are | CSV, XLSX |
csvFileOptions | - | NO | How the export file is formatted. Relevant only if | - |
xlsxFileOptions | - | NO | How the export file is formatted. Relevant only if | - |
scope | - | YES if no reportingSource | Mutually exclusive with "reportingSource". The population targeted by the export. It may be further restricted by a search expression passed in the Export Options by the user launching the Export Task in the step 2 above. This is a "hard-coded" scope, i.e. it cannot contain variables (such as attribute values) that may be dynamically substituted according to the context. The scope format is represented in the XML example below. | - |
reportingSource | - | YES if no scope | Mutually exclusive with "scope". Configuration for targeting an export from the REP service. | - |
limit |
| NO | The maximum number of objects to export. If not defined, then all objects targeted by | - |
relativeFilePath |
| NO | Optional: The relative path to the export file, e.g.
If the file extension is not explicitly provided here, then ".csv" or ".xlsx" is appended, according to the file format. Default value: Available placeholders are:
|
|
retentionPeriod |
| NO | Number of days: the period during which the export file is available. It is deleted after this period. Defaults to 7 days. | 7 |
attributes |
| NO |
| Empty list |
expandedMultiValuedAttribute |
| NO | The identifier of a multi valued attribute whose values will be expanded in the export file, i.e. one line is generated per attribute value. Only one multi valued attribute can be expanded when exporting. | - |
executionPlan |
| NO | Configure the execution plan if the task is scheduled (see Execution Plan). | - |
exportHooksRule |
| NO | Optional: If this rule is configured, it must by convention return an instance of | - |
Export Options
When executing an Export Task, export options can be submitted in the JSON body of the POST request. The possible export options are listed below:
Property Name | Type | Mandatory | Description | Values (default value in bold) |
---|---|---|---|---|
searchExpression |
| NO | A | - |
attributes |
| NO | Restrict the list of exported attributes. If non empty then this list replaces the attributes configured in the | Empty list |
limit |
| NO | Can restrict the limit configured in the | - |
fileType |
| NO | The format of the export file. Possible values are | CSV |
fileOptions | - | NO | How the export file is formatted. See | - |
Csv File Options
The following table describes the properties of the CSV file options (see property csvFileOptions
in the above table):
Property Name | Type | Mandatory | Description | Values (default value in bold) |
---|---|---|---|---|
quoteChar |
| NO | Character used for quotes. | Single quote ' |
delimiterChar |
| NO | Character delimiting columns. | Semi-colon ; |
commentChar |
| NO | Character indicating a comment line. | Pound # |
encoding |
| NO | Character encoding. | UTF-8 |
lineSeparator |
| NO | New line separator. | \r\n |
multiValueDelimiterChar |
| NO | Separator character for multi values. | Pipe | |
includeHeaders |
| NO | Whether the header line is written or not. | true, false |
Xlsx File Options
The following table describes the properties of the XLSX file options (see property xlsxFileOptions
in the above table):
Property Name | Type | Mandatory | Description | Values (default value in bold) |
---|---|---|---|---|
sheetName |
| NO | Name of the Excel sheet. | MemorityExport |
multiValueDelimiterChar |
| NO | Separator character for multi values. | \n |
autoSize |
| NO | Whether to auto-size the columns or not. | true, false |
includeHeaders |
| NO | Whether the header line is written or not. | true, false |
Export Rule Hooks
The export Rule Hooks property is a Compute Rule that must return a class implementing Export Hook interface.
Don't forget to import 2 classes in your Groovy script :
import com.memority.domino.shared.api.sync.export.ExportHooks
import com.memority.domino.shared.api.sync.export.ExportWriter
Export Hook interface is as follow:
Example
Here is a sample XML representation of an Export Task:
REST API
The Memority Synchronization service exposes the Export REST API.
The table below lists the full export REST API: