Transformation
This accelerator contains multiple transformation flows that will help you kick-start your transformation. It contains flows that set the migration scope, transform the metadata, and handle long name and paths. Since no migration is the same, these flows will have to be adjusted based on the determined migration rules.
Flows
Transformation (1a. Multiple Parents)
In some systems, such as Documentum, a RECORD can be in multiple locations. If the target system does not support this, this flow can be used to split up records with multiple parents into individual records. The original record will be at the location specified in source.parentIds[0] and migration.flags.originalParentIds will contain the original value of source.parentIds. For the other locations a RECORD is created with source.link referencing the original record.
Settings
mongoConnection
The Mongo connection string including the database name to connect to.
Transformation (1b. Structure Mapping)
Warning: this flow will overwrite the target field! Before running this flow, make sure the source.ancestors have been calculated.
This flow reads an Excel workbook containing the mapping of source folders to locations in the target system, also called a structure mapping. The flow will first reset the migration and set migration.migrate to false for CONTAINER and RECORD objects.
Furthermore, the source object will be copied to the target object without the source.properties.
Afterwards, each row in the mapping will be used to set migration.migrate to true for the mentioned objects. The Excel column values will be saved on all the mapped objects in source.properties.mapping.
An example of the structure mapping is shipped with the accelerator (Structure mapping.xlsx). The columns in this Excel file are:
*Xillio ID: Refers to the_idof the folder that is to be migrated.Source ID: Refers to thesource.idof the folder that is to be migrated.Source Name: Refers to thesource.name.systemNameof the folder that is to be migrated.Source Path: Refers to thesource.hierarchies[0]of the folder that is to be migrated.Only contents: When set toTRUEthe folder and its contents are migrated, otherwise only its contents.Target ID: Refers to the identifier of the already existing container in the target system.Target Name: Refers to the name of the already existing container in the target system.Target Path: Refers to the path of the already existing container in the target system.Target Type: Refers to the content type of the already existing container in the target system.
Any metadata that has to be set on all the contents that are migrated can be set in additional columns in this Excel sheet. In the provided example, a metadata field Branch has been added.
Settings
mongoConnection
The Mongo connection string including the database name to connect to.
structureMappingPath
The path to the Excel workbook containing the structure mapping. The sheet containing the mapping should be named Structure Mapping.
Transformation (1c. Exclude Content)
After setting the scope of the migration, additional rules for excluding content are configured here. As an example, this flow excludes configured content types as well as folders and their children based on configured identifiers.
Settings
mongoConnection
The Mongo connection string including the database name to connect to.
excludedContentTypes
A list of content types (source.contentType.systemName) that are to be excluded from the migration.
Example: ["Financial Document", "HR Document"]
excludedIds
A list of identifiers (source.id) that are to be excluded from the migration. When the identifier references a CONTAINER, that object and all its children will be excluded.
Example: ["0b0007c280006115", "090007c28000a762"]
Transformation (1d. Update Migration Flags)
Now that the full migration scope has been set, this flow will retrieve all excluded CONTAINER and RECORD objects and set migration.migrate to false for their non-current versions. Furthermore, all their related BINARY and AUDITLOG objects are also excluded.
Settings
mongoConnection
The Mongo connection string including the database name to connect to.
Transformation (2. Transform Binaries)
In many systems, such as SharePoint Online, each RECORD object should have a BINARY associated with it. Furthermore, missing or zero-byte files can causes issues.
This flow sets a dummy file for these BINARY objects so that the RECORD itself can still be migrated.
Settings
mongoConnection
The Mongo connection string including the database name to connect to.
dummyFilePath
The path to the dummy file that has to be used. This path will be set in target.externalReference on the BINARY object.
Transformation (3a. Metadata Mapping)
This flow reads an Excel workbook containing the content type mapping and field mapping. For all objects that are to be migrated, these mappings will be applied to set the content type and their metadata fields.
Two sheets are mandatory: Content Type Mapping and Field Mapping. An example of these mappings is shipped with the accelerator (Content type & Field mapping.xlsx).
The Content Type Mapping sheet is used to transform the source content type to a target content type. The columns in this sheet are:
*Source SystemName: Refers to thesource.contentType.systemNameof the object.Source DisplayName: Refers to thesource.contentType.displayNameof the object.Target SystemName: Refers to the target content type's system name of the object and is stored intarget.contentType.systemName. When left empty, the display name is used.Target DisplayName: Refers to the target content type's display name of the object and is stored intarget.contentType.displayName.Comments: Optional column to insert remarks.
The Field Mapping sheet is used to transform the properties (fields) that are available on the target content type. The columns in this sheet are:
-
*Source Content Types SystemName: Refers to thesource.contentType.systemNameof the objects for which this mapping has to be applied. Values in here should be comma separated. -
Source Content Types DisplayName: Optional column containing thesource.contentType.displayNameof the objects for which this rule has to be applied. -
Source DisplayName: Optional column with the display name of the source property to be mapped. -
Source Content Store Path: The location of the property in the object, for example:source.properties.category. -
*Target SystemName: The system name of the target property that is mapped to. -
Target DisplayName: The display name of the target property that is mapped to. -
Target Content Store Path: The location to store the property in the content store object, for example:target.properties.category. When left blank, it will be stored intarget.propertieswith the name specified in theTarget SystemNamecolumns. -
Target Type: The type of the target property. -
Rule: Optional column for the rule that has to be applied. Supported values are:sheetandfixed. Asheetrule references another sheet in the Excel workbook for a value mapping, and afixedrule indicates that a fixed value should be used (specified in columnParameter). Additional rules can be added in the code component with idillf34cngand notemap object metadataat the line with commentADD CUSTOM RULES HERE. -
Parameter: The parameter for the rule that has to be applied. When the rule is set tosheetthe parameter indicates the name of the sheet. In that sheet there should be a mapping from a source value to a target value. Required columns are:*Source: value found in the source for the specified mapped field.Target: target value to be set.
In the provided example workbook there is a category rule and corresponding sheet.
-
Max Length: The maximum string length of the mapped value. When it exceeds this value, an error is thrown by the flow. -
Format: Optional column that specifies a value conversion. Supported values are:stringandtoIsoDate. -
Comments: Optional column to insert remarks.
Settings
mongoConnection
The Mongo connection string including the database name to connect to.
contentTypeFieldMappingPath
The path to the Excel workbook containing the content type and field mapping. There should be two sheets: Content Type Mapping and Field Mapping.
Transformation (3b. Principal Mapping)
This flow automatically maps the source.created and source.lastModified principals based on their email address. It requires PRINCIPAL objects to be present in the source and target system Mongo databases.
When there is no export of source or target system PRINCIPAL objects, programmatically create those.
Settings
mongoConnection
The Mongo connection string including the database name to connect to. This database should also contain the (exported) PRINCIPAL objects of the source system.
mongoConnectionTarget
The Mongo connection string to connect to containing the (exported) PRINCIPAL objects of the target system.
fallbackPrincipalSystemName
The source.id value of a PRINCIPAL object to be used as a fallback when the principal could not be mapped.
fallbackPrincipalDisplayName
The source.name.displayName value of a PRINCIPAL object to be used as a fallback when the principal could not be mapped.
Transformation (3c. Permission Mapping)
This flow maps the principals and permissions in ACL objects using an Excel workbook. Two sheets are mandatory: Principal Mapping and Permission Mapping.
An example of these mappings is shipped with the accelerator (Permission mapping.xlsx).
The Principal Mapping sheet is used to transform the principals on the ACL object. The columns in this sheet are:
*Source SystemName: Refers to thesource.principals[].systemNameof the principal.Source DisplayName: Refers to thesource.principals[].displayNameof the principal.Target SystemName: Refers to the system name of the target principal.Target DisplayName: Refers to the display name of the target principal.
The Permissions Mapping sheet is used to transform the principals on the ACL object. Only one permission will be set. The columns in this sheet are:
*Source: Refers to the name of the permission insource.permissions.- `Target: Refers to the name of the target permission.
Priority: When there are multiple permissions, the priority determines which one is used. A lower value means higher priority here.
Settings
mongoConnection
The Mongo connection string including the database name to connect to.
permissionMappingPath
The path to the Excel workbook containing the principal and permission mappings. There should be two sheets: Principal Mapping and Permission Mapping.
Transformation (4. Long Name & Path Restructuring)
In certain systems there are limitations on the maximum number of characters an object name and/or path can have. This flow is mostly tailored towards SharePoint Online migrations and does the following:
- Shortens object names to 255 characters
- Shortens object names that exceed the 400 characters in the hierarchy
Any object that still exceeds the 400 characters in the hierarchy field will be moved to a Migration Exceptions folder created directly under the ROOT of the object.
Settings
mongoConnection
The Mongo connection string including the database name to connect to.