Production Manager (.NET)

A production is a group of non-privileged documents delivered to opposing counsel as part of a legal proceeding. Relativity uses a production set to define the markup set for redactions, numbering, and other settings applied to the documents during a production job. For general information, see Production and Production sets on the Relativity Server 2024 Documentation site.

The Production Manager API exposes methods that provide the following functionality for productions:

  • Creating, deleting, staging, running, and performing other tasks with production sets
  • Retrieving default fields on a production
  • Setting and removing production restrictions defined in a workspace
  • Retrieving information about production jobs, such as status, progress, and production results
  • Retrieving information about production errors and document conflicts
  • Retrieving, running, staging, and canceling re-production jobs

You can also use the Production Manager API through REST. For more information, see Production Manager (REST).

See these related pages:

Fundamentals for the Production Manager API

The Production Manager API contains the multiple methods used for manipulating productions as described in this section.

Production sets and jobs

This section contains code samples that illustrate how to create, stage, run, and perform other tasks with productions.

Create a production set

Use the CreateSingleAsync() method to add a new production set to a Relativity workspace.

Retrieve a production set

Use the ReadSingleAsync() method to retrieve a production set.

Delete a production set

Use the DeleteSingleAsync() method to remove a production set from Relativity.

Stage a production

Use the StageProductionAsync() method to stage a production.

Run a production job

Use the RunProductionAsync() method to run a production job.

Stage and run multiple productions

Use the MassStageAndRunAsync() method to stage and run multiple productions in a workspace. If the production is already staged, this method only runs it.

Re-run a production

Use the RerunProductionAsync() method to re-run a production.

Default fields and restrictions for productions

This section contains code samples that illustrate how to retrieve default field values, and how to set and remove production restrictions.

Retrieve default field values for a production

Use the GetProductionDefaultFieldValues() method to retrieve default field values for a production. This method doesn't return empty or null fields.

Set production restrictions on a workspace

Use the SetProductionRestrictionsAsync() method to add a production restriction to a workspace. Pass the Artifact ID of a saved search in the workspace if this value isn't already set. If the value is set, this method replaces the current production restriction with a new one.

Note: Use 0 as the ID for a saved search if you want to clean up the current production restriction.

Retrieve the ID of a save search used for production restrictions

Use the GetProductionRestrictionAsync() method to retrieve the Artifact ID of a save search used for production restrictions in a workspace. This method returns 0 if a production restriction hasn't been set.

Production job status, progress, and other information

This section contains code samples that illustrate how to retrieve information about production jobs, including status, progress, production results, and others.

Retrieve the job status of a production

Use the GetJobStatus() method to retrieve the job status of a production.

Retrieve progress details for a production

Use the ProgressAsync() method to retrieve progress details for a production.

Retrieve production status details

Use the GetProductionStatusDetails() method to retrieve production status details.

Retrieve results for produced image files

Use the GetProductionImagesAsync() method to retrieve information about produced image files. This method returns an ImageFilesResult object for each file associated with a specific workspace and production. The list of ImageFilesResult object doesn't have a specific order.

Retrieve all productions in a workspace

Use the GetAllAsync() method to retrieve all productions in a workspace.

Retrieve produced productions for documents

Use the GetProducedProductionsFromDocumentsAsync() method to retrieve produced productions for documents by using document IDs or a mass operation token.

Retrieve a token for paging through images

Use the GetProductionImagesTokenAsync() method to retrieve a unique token for paging through images.

Production errors and document conflicts

This section contains code samples that illustrate how to retrieve information about production errors and document conflicts.

Retrieve conflicts, errors, and other production information

Use the ProductionRunCheckAsync() method to retrieve document conflicts, production errors, and information about whether the production can be run.

Retrieve staging errors for a production

Use the StagingErrorsAsync() method to retrieve staging errors and duplicate documents for a production.

Retrieve branding errors for a production

Use the GetBrandingErrorsAsync() method to retrieve a specified number of branding errors for a production. The MaxListItems instance setting controls the number of branding errors returned.

This method returns an empty list if the production isn't in an errored state or if the user doesn't have permission to view the errored documents.

Retrieve documents conflicting with production restrictions

Use the DocumentConflictsAsync() method to retrieve documents conflicting with the production restrictions defined for the workspace.

Remove documents conflicting with production restrictions

Use the DeleteDocumentConflictsAsync() method to remove documents from a production that conflict with the restrictions set on a workspace. This method deletes documents from a production with a status of Staged or ErrorStartingProduction. The user must have edit permission to the production set.

Re-production jobs

This section contains code samples that illustrate how to retrieve, run, stage, and cancel re-production jobs.

Retrieve productions eligible for re-production

Use the GetProductionsEligibleForReproductionAsync() method to retrieve productions eligible for re-production based on the production type.

Retrieve re-productions for a specific production

Use the GetReproductionsAsync() method to retrieve re-productions performed for a specific production. Any re-production that has been deleted has an Artifact ID of -1. The user must have permissions to view a production.

Stage and run a re-production job

Use the MassStageAndRunProductionsAsync() method to stage and run a re-production job, and to retrieve job details.

Cancel jobs for a re-production

Use the CancelReproductionJobAsync() method to cancel jobs for a re-production. This method cancels all production jobs for the re-production.