Mass Operations (.NET)
The Mass Operations .NET API allows for the bulk processing of Documents and RDOs in Relativity for the following operations:
- Edit
- Move (Document only)
- Delete
- Replace
- Tally/Sum/Average
- Export to file
- Save as list
- Copy (RDO only)
Code Samples
These code samples utilize a .NET service proxy. See the topic Client .NET proxy for details on working with a service proxy.
Mass copy
Initiates a mass copy operation.
Method |
Task<MassOperationResult> MassCopyAsync(int workspaceID, MassCopyRequest request)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation takes place.
- request: A request object containing information needed to perform the copy operation.
|
Copy
int workspaceId = 111111; //ID of workspace
MassCopyRequest request = new MassCopyRequest {
ArtifactTypeID = 1000056,
ParentArtifactID = 1003663, // parent RDO or 'system' artifactID
Query = new QueryRequest {
Condition = "'ArtifactID' IN VIEW 1056059"
}
};
MassOperationResult result = await massOperationManager.MassCopyAsync(workspaceId, request);
MassOperationProcessState status = await massOperationManager.CheckProgress(workspaceId, result.ProcessID);
while (status.State != Relativity.MassOperations.Services.Interfaces.v1.Enums.MassProcessState.Completed) {
await Task.Delay(1000);
status = await massOperationManager.CheckProgress(workspaceId, result.ProcessID);
}
Mass move
Initiates a mass move operation.
Method |
Task<MassOperationResult> MassMoveAsync(int workspaceID, MassMoveRequest request)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation takes place.
- request: A request object containing information needed to perform the move operation.
|
Copy
int workspaceId = 1111111; //ID of Workspace
MassMoveRequest request = new MassMoveRequest() {
ArtifactTypeID = 10,
DestinationFolderArtifactID = 1055389,
Query = new QueryRequest {
Condition = "('Folder Name' IN ['responsive'])" // can also use folder artifactID
}
};
MassOperationResult result = await massOperationManager.MassMoveAsync(workspaceId, request);
Mass edit
Initiates a mass edit operation.
Method |
Task<MassOperationResult> MassEditAsync(int workspaceID, MassEditRequest request)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation takes place.
- request: A request object containing information needed to perform the edit operation.
|
Copy
int workspaceId = 1111111; //ID of workspace
MassEditRequest request = new MassEditRequest() {
ArtifactTypeID = 10,
Query = new QueryRequest {
Condition = "'ArtifactID' IN SAVEDSEARCH 1043981"
},
Fields = new EditField[] {
new EditField {
ArtifactID = 1035387,
Value =
new MultipleArtifactEditSelectionValue() {
ArtifactsToSet = new List<ArtifactRef> {
new ArtifactRef { ArtifactID = 1055381 },
new ArtifactRef { ArtifactID = 1038090 }
},
ArtifactsToUnset = new List<ArtifactRef> {
new ArtifactRef { ArtifactID = 1055382 },
new ArtifactRef { ArtifactID = 1038089 }
}
}
}
}
};
MassOperationResult result = await massOperationManager.MassEditAsync(workspaceId, request);
Mass delete
Initiates a mass delete operation.
Method |
Task<MassOperationResult> MassDeleteAsync(int workspaceID, MassDeleteRequest request)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation takes place.
- request: A request object containing information needed to perform the delete operation.
|
Copy
int workspaceId = 1111111; //ID of Workspace
MassDeleteRequest request = new MassDeleteRequest() {
ArtifactTypeID = 10,
DocumentDeleteOptions = Relativity.MassOperations.V2.Enums.DocumentDeleteOptions.DeleteDocumentAndAllAssociatedFiles,
ForceDelete = true,
Query = new QueryRequest {
Condition = "'ArtifactID' IN [1055430, 1055431]"
}
};
MassOperationResult result = await massOperationManager.MassDeleteAsync(workspaceId, request);
Mass replace
Initiates a mass replace operation. Note that mass replace can only be performed on fixed-length text and long text fields.
Method |
Task<MassOperationResult> MassReplaceAsync(int workspaceID, MassReplaceRequest request)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation takes place.
- request: A request object containing information needed to perform the replace operation.
|
Copy
int workspaceID = 1111111; //ID of workspace
MassReplaceRequest request = new MassReplaceRequest() {
ArtifactTypeID = 10,
Query = new QueryRequest {
Condition = "'ArtifactID' IN VIEW 1042421"
},
Fields = new ReplaceField[] {
new ReplaceField {
ArtifactID = 1038073,
ReplaceOptions = new ReplaceOptions {
Options = Relativity.MassOperations.V2.Enums.ReplaceActionOptions.ReplaceEntireField // replace current value with new value
},
ReplaceAction = new ReplaceAction {
Options = Relativity.MassOperations.V2.Enums.ReplaceWithOptions.Text,
ReplacementField = new FieldRef { ArtifactID = 1038073 },
ReplacementText = "new text value"
}
},
new ReplaceField {
ArtifactID = 1003667,
ReplaceOptions = new ReplaceOptions {
Options = Relativity.MassOperations.V2.Enums.ReplaceActionOptions.SearchFor, // replace substring with new value
Value = "ZIPPER"
},
ReplaceAction = new ReplaceAction {
Options = Relativity.MassOperations.V2.Enums.ReplaceWithOptions.Text,
ReplacementText = "ZIPPY"
}
}
}
};
MassOperationResult result = await massOperationManager.MassReplaceAsync(workspaceID, request);
Save-as-list
Initiates a save-as-list operation.
Method |
Task<MassOperationResult> MassSaveAsListAsync(int workspaceID, MassSaveAsListRequest request)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation takes place.
- request: A request object containing information needed to perform the save-as-list operation.
|
Copy
int workspaceID = 1111111; //ID of workspace
MassSaveAsListRequest request = new MassSaveAsListRequest {
ArtifactTypeID = 10,
ListName = "Important docs",
Notes = "These are important docs",
Options = Relativity.MassOperations.V2.Enums.SaveAsListOptions.CreateNewList,
Query = new QueryRequest {
Condition = "'ArtifactID' IN VIEW 1042421"
}
};
MassOperationResult result = await massOperationManager.MassSaveAsListAsync(workspaceID, request);
Tally/sum/average
Initiates a tally/sum/average operation.
Method |
Task<IEnumerable<TallySumAverageResult>> TallySumAverageAsync(int workspaceID, MassTallySumAverageRequest request)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation takes place.
- request: A request object containing information needed to perform the operation.
|
Copy
int workspaceID = 1111111; //ID of workspace
MassTallySumAverageRequest request = new MassTallySumAverageRequest {
ArtifactTypeID = 10,
Operation = Relativity.MassOperations.V2.Enums.TallySumAverageOptions.Tally,
Field = new FieldRef { Name = "Number of Attachments" },
Query = new QueryRequest {
Condition = "'ArtifactID' IN SAVEDSEARCH 1056050"
}
};
IEnumerable<TallySumAverageResult> results = await massOperationManager.TallySumAverageAsync(workspaceID, request);
Export to file
Initiates a export to file operation.
Method |
Task<IKeplerStream> MassExportToFileAsync(int workspaceID, MassExportToFileRequest request)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation takes place.
- request: A request object containing information needed to perform the operation.
|
Copy
int workspaceID = 1111111; //ID of workspace
MassExportToFileRequest request = new MassExportToFileRequest {
ArtifactTypeID = 10,
EscapeFormulas = true,
ExportFileFormat = Relativity.MassOperations.V2.Enums.ExportFileFormat.Csv,
ExportEncodingType = Relativity.MassOperations.V2.Enums.ExportEncodingType.UnicodeUTF8,
ViewID = 1042421,
Query = new QueryRequest {
Condition = "'ArtifactID' IN SAVEDSEARCH 1056050"
}
};
IKeplerStream exportStream = await massOperationManager.MassExportToFileAsync(workspaceID, request);
using (FileStream file = File.Create(@"C:\ExportResults.csv")) {
await exportStream.GetStreamAsync().Result.CopyToAsync(file);
}
Returns state information on a specified operation.
Method |
Task<MassOperationProcessState> CheckProgress(int workspaceID, long processID)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation was run.
- processID: The identifier of the job. See the processID property on the MassOperationResult model.
|
Cancel a specific operation
Cancels the specified operation.
Method |
Task CancelAsync(int workspaceID, long processID)
|
Parameters |
- workspaceID: The artifactID of the workspace in which the operation is running.
- request: The identifier of the job to cancel.
|
Considerations
- Mass operations are run on the Mass Operations Manager agent (except for Tally/Sum/Average and Export to file).
- The condition property on mass operation request models uses Object Manager query syntax.