Skip to main content
Version: Latest (4.63.0)

Populate Mapping Sheet

Populate Mapping Sheet prefills the Mapping Sheet with the data from the extracted source and target. It fills the 🟦 source columns of the five mapping sheets and all five Target … lookup sheets. It doesn't make any mapping choices.

Before you run it​

  • The source and the target are extracted to MongoDB with their connectors, each in its own database.
  • The target extraction includes the target's CONTENTTYPE and PRINCIPAL objects. For SharePoint Online (spo), it also includes the permissionLevel records.
  • You know the path of the Mapping Sheet that the transformation uses.

What it writes​

The flow processes the sheets in the order below. It overwrites each sheet it writes to.

StepSource-side sheetTarget-side sheetWhat is collected
1StructuresTarget StructuresCONTAINER objects up to sourceDepth / targetDepth levels deep, sorted by path.
2PrincipalsTarget PrincipalsAll PRINCIPAL objects.
3Content TypesTarget Content TypesSource: every distinct content type per kind (CONTAINER, RECORD). Target: every CONTENTTYPE object.
4Metadata FieldsTarget MetadataSource: every property path under source.properties, per kind and content type. Target: every field of every CONTENTTYPE.
5PermissionsTarget PermissionsSource: every distinct permission value in the ACL objects. Target: depends on targetSystem.
How the source property paths are collected

For every CONTAINER and RECORD, the flow walks source.properties recursively and writes one row per leaf value. Each combination of kind, content type and property path is written once. Nested objects produce dotted paths. For example, source.properties.author.name appears as author.name in Source DisplayName, and as the full path in Source Content Store Path.

How Target Content Types handles duplicate display names

The Content Types → Target dropdown selects by display name. The flow therefore writes only the first target content type for each display name. If two target content types share a display name, only one of them appears on Target Content Types.

Settings​

mongoConnection​

The MongoDB connection string for the source, including the name of the database.

Example: mongodb://user:password@localhost:27017/source

mongoConnectionTarget​

The MongoDB connection string for the target, including the name of the database.

Example: mongodb://user:password@localhost:27017/target

mappingSheetPath​

The path to the Mapping Sheet that the transformation uses. Use exactly the same path, so the transformation reads the sheet you populated. Don't rename the file.

Example: C:/Migrations/Mapping Sheet.xlsx

sourceDepth​

The maximum folder depth that is included on Structures.

Depth is counted from the absolute path stored in the content store, not from the root folder of the connector. Every path segment counts as one level, including the drive letter.

Example

You set the root of a File System source connector to C:\Users\user\Documents\testData. testData is the root folder in your content store, but its depth is 5: C:, Users, user, Documents, testData.

To include testData plus two levels below it, set sourceDepth to 7.

FolderDepth
C:/Users/user/Documents/testData5
C:/Users/user/Documents/testData/Projects6
C:/Users/user/Documents/testData/Projects/20247
C:/Users/user/Documents/testData/Projects/2024/Q18, excluded

In the content store, paths always use / as the separator, also for Windows sources. A folder whose name contains / is counted incorrectly.

Example: 8

targetDepth​

The maximum folder depth that is included on Target Structures. It's counted the same way as sourceDepth.

Example: 8

excludedPropertiesPaths​

Optional. An array of property paths to leave out of Metadata Fields. Use the full path, including source.properties.. The property and everything nested below it are skipped.

Example: ["source.properties.acls"]

targetSystem​

Required. The target system. Accepted values: alfresco, documentum, netdocuments, opentextcs, spo. If it's empty or contains an unsupported value, the flow stops with an error at the start and doesn't write anything. It decides how Target Permissions is filled and how ContentStorePath is built on Target Metadata.

ValueTarget PermissionsContentStorePath
spoRead from the target: RECORD objects with content type permissionLevel.target.properties.<systemName>
alfrescoFixed list: Consumer, Contributor, Editor, Collaborator, Coordinatortarget.properties.<id>
netdocumentsFixed list: administer, cabDefault, edit, noAccess, share, viewtarget.properties.<id>
opentextcsFixed list: see, see_contents, modify, edit_attributes, add_items, reserve, add_major_version, delete_versions, delete, edit_permissionstarget.properties.<id>
documentumNo fixed list yet. The sheet is left empty, so fill it in by hand.target.properties.<id>
any other valueThe flow logs an error and leaves the sheet empty.target.properties.<id>