Move Workspace

This page details the specific configuration and input options for the Move Workspace Orchestrator.

This guidance should be read in conjunction with the Common Configuration page which details the standard application configuration.

Purpose

The key purpose for this Orchestrator is to target and move Workspaces in iManage.

Operation Name

MoveWorkspace

Common Configuration

There is common configuration available within this job Orchestrator. The common configuration options can be found here.

Input Data Schema

Data can be read via SQL or CSV and requires the following data headers and values:

CSV

Headers

Description

Mandatory

Expected Value

Id

This is the row ID

Yes

Numeric value

TargetLibraryId

The ID of the iManage Library where the workspace is currently located

Yes

iManage Library identifier i.e. ‘Active’

TargetObjectId

The workspace Id to move

No (unless TargetObjectSearchQuery is blank). Takes priority over the search query

iManage identifier i.e. ‘Active!1234’

TargetObjectSearchQuery

A JSON object which contains a dictionary matching any applicable profile parameters for the corresponding TargetObjectType

No (unless TargetObjectId is blank)

JSON format i.e. {"custom1": "*", "custom2": "test"}

if using csv input then escaped values need to be used for multiple parameter queries.

The following keys can be provided:

  • custom 1-12, 17-20, 23-30

  • name

DestinationLibraryId

The ID of the iManage Library where the workspace will be moved to

Yes

iManage Library identifier i.e. ‘Archive’

Processed

Indicates if the row has been processed

Yes

'0'

SQL

SQL Input uses the same values as the CSV input above. The SQL Schema is detailed below:

SQL
CREATE TABLE MoveWorkspaceInput (
    Id INT IDENTITY(1,1) PRIMARY KEY,
    Processed BIT NOT NULL,
    TargetLibraryId NVARCHAR(MAX) NOT NULL,
    TargetObjectId NVARCHAR(MAX) NULL,
    TargetObjectSearchQuery NVARCHAR(MAX) NULL,
    DestinationLibraryId NVARCHAR(MAX) NOT NULL
);

Job File Options

This section details the configurable options within the orchestrator.

Configuration

Description

Expected Value

ActionMultipleQueryResults

If enabled then the application will process all results returned by the search query. When disabled then the application will only process the request if one search result is identified

true false

Enabled

Whether the operation should be run or not

true false

PreserveDocumentIds

Whether documents should keep their IDs when moved to a different library or not

true false

Destination

MatchOn

Defines all parameters which must all match between source and target libraries to treat it as a match.

An array of strings e.g. ["name", "custom1"]

The following keys can be provided:

  • custom 1-12, 17-20, 29-30

  • name ( * supported)

  • owner

Output Events

These output events are specific to the Move Workspace Orchestrator and work in addition to the common output events detailed in Common Configuration

The following output events can be persisted via the ‘Subscribed To’ configuration

Target

Action

Status

Full Event Identifier

Workspace

Move

success skipped failed

workspace:move:success

workspace:move:skipped

workspace:move:failed

These should be listed in the Orchestrator in the following format ‘Target:Action:Status’.

The event output schema is shown below:

SQL
CREATE TABLE MoveWorkspaceOutput(
	Id INT IDENTITY(1,1) PRIMARY KEY,
	EventTime DATETIMEOFFSET NOT NULL,
	CorrelationId VARCHAR(36) NOT NULL,
	[Action] VARCHAR(30) NOT NULL,
	[Status] VARCHAR(25) NOT NULL,
	[Message] NVARCHAR(MAX) NOT NULL,
	DataSourceRowId VARCHAR(25),
	TargetObjectType VARCHAR(25) NOT NULL,
	TargetObjectId VARCHAR(25),
	[Workspace] [nvarchar](max) NULL,
	[Folders] [nvarchar](max) NULL,
	[Documents] [nvarchar](max) NULL,
	[TargetSearchQuery] [nvarchar](max) NULL,
	[TargetSearchQueryResultCount] [int] NULL,
	[TargetSearchQueryResultList] [nvarchar](max) NULL
)

Sample Job File

This is an example Job File for the Move Workspace Orchestrator:

JSON
{
  "Operation": "MoveWorkspace",
  "Options": {
    "Enabled": true,
    "ActionMultipleQueryResults": false,
    "Destination": {
      "MatchOn": ["name", "custom1"]
    },
    "PreserveDocumentIds": false
  },
   "InputType": "CSV",
  "Inputs": {
    "CSV": {
      "Path": "<repo>\\source\\Administrate\\Test Files\\Csvs\\Move.csv"
    }
  },
  "Outputs": {
    "Console": {
      "Enabled": true,
      "SubscribedTo": ["Target:Action:Status"]
    }
  },
  "Integrations": {
    "IManage": {
      "URL": "<url>",
      "Username": "<username>",
      "Password": "<password>"
    }
  }
}

Failure and Skip Behaviour

This Orchestrator follows the standard behaviour for failed/skipped records:

Skipped = Scenarios configured to not be processed for a specific reason e.g. workspace was found in the destination library that matches the criteria specified in MatchOn.

Failed = Administrate tried to perform an action on the target object and an unexpected error occurred. e.g. iManage connection dropped and Administrate was unable to move a folder within the workspace.

iManage Behaviour

This section details the different behaviour across different versions of iManage i.e. On-Prem, iManage Cloud and Cloud iManage.


Limitations:

  • Subclasses associated with workspaces which are not present in the destination library will need to be added manually before the workspace can be successfully moved.

  • Enterprise users in the source library not present in the destination library will need to be manually added before the move operation can complete successfully.


Skip events:

Moving folders:

  • If folder is a shortcut or iManage Share folder

  • If a search folder has a search profile beyond the scope of the workspace being moved

Moving documents:

  • If a document is a document shortcut

Troubleshooting

Error “NRC_FILE_XFER_FAILURE", "code_message": "File transfer failed"

  • This error will be encountered upon attempting to Archive a workspace that contains a 0 byte file. The error you will see will be as follows:

image-20251001-134553.png
  • To resolve this issue, the 0 byte files must be removed from the workspace. iManage does not allow for 0 byte files to be added to a library, hence the error being generated. Any current 0 byte files present are likely older documents that were added prior to this rule being implemented.

Error “System.ArgumentNullException: Value cannot be null. (Parameter 'userId')"

  • This error occurs upon attempting to Archive a workspace that contains documents that do not have a ‘Last User’ associated with them. The error you will see will be as follows:

image-20251003-092749.png
  • Administrate expects there to be a ‘Last User’ present for all documents. In order to resolve this, there must be a user associated with the ‘Last User’ field.