ArcGIS Pro 3.3 API Reference Guide
ArcGIS.Desktop.Workflow.Client Namespace / WorkflowClientModule Class / JobsManager Property
Example

In This Topic
    JobsManager Property
    In This Topic
    Get the manager class for all Job-related functionality.
    Syntax
    public static IJobsManager JobsManager {get;}
    Public Shared ReadOnly Property JobsManager As IJobsManager
    Remarks
    The manager references the active connection set in the Workflow Client Module. This means that activating a new connection will cause the connection to change for any stored references to the manager.
    Example
    How to get the job Id associated with the active map view
    // Get the job Id associated with the active map view
    var jobManager = WorkflowClientModule.JobsManager;
    var jobId = jobManager.GetJobId();
    How to get the job Id associated with a map
    // Get the job Id associated with a map
    mapUri = "myMapUri"; // Get a reference to a map using the ArcGIS.Desktop.Mapping API (active view, project item, etc.)
    var jobManager = WorkflowClientModule.JobsManager;
    var jobId = jobManager.GetJobId(mapUri);
    How to get a job
    // GetJob returns an existing job
    try
    {
      var jobManager = WorkflowClientModule.JobsManager;
      var job = jobManager.GetJob(jobId);
      // Do something with the job
    }
    catch (NotConnectedException)
    {
      // Not connected to Workflow Manager server, do some error handling
    }
    Search for jobs using a detailed query
    var search = new SearchQuery()
    {
      // Search for all open high priority jobs assigned to users
      Q = "closed=0 AND assignedType='User' AND priority='High'",
      Fields = new List<string> { "jobId", "jobName", "assignedTo", "dueDate" },
      // Sort by job assignment in ascending order and due date in descending order
      SortFields = new List<SortField> 
      { 
        new SortField() { FieldName = "assignedTo", SortOrder = ArcGIS.Desktop.Workflow.Client.Models.SortOrder.Asc },
        new SortField() { FieldName = "dueDate", SortOrder = ArcGIS.Desktop.Workflow.Client.Models.SortOrder.Desc }
      }
    };
    var jobManager = WorkflowClientModule.JobsManager;
    var searchResults = jobManager.SearchJobs(search);
    var fields = searchResults.Fields;
    var results = searchResults.Results;
    Search for jobs using a detailed query with an arcade expression
    var search = new SearchQuery()
    {
      // Search for jobs assigned to the current user using the arcade expression '$currentUser'
      Q = "\"assignedType='User' AND closed=0 AND assignedTo='\" + $currentUser + \"' \"",
      Fields = new List<string> { "jobId", "jobName", "assignedTo", "dueDate"},
      // Sort by job name in ascending order
      SortFields = new List<SortField> { new SortField() { FieldName = "jobName", SortOrder = ArcGIS.Desktop.Workflow.Client.Models.SortOrder.Asc }}
    };
    var jobManager = WorkflowClientModule.JobsManager;
    var searchResults = jobManager.SearchJobs(search);
    var fields = searchResults.Fields;
    var results = searchResults.Results;
    Search for jobs using a simple string
    var search = new SearchQuery() { Search = "My Search String" };
    var jobManager = WorkflowClientModule.JobsManager;
    var searchResults = jobManager.SearchJobs(search);
    var fields = searchResults.Fields;
    var results = searchResults.Results;
    Get statistics for jobs
    var query = new JobStatisticsQuery()
    {
      // Search for open jobs assigned to users
      Q = "\"assignedType='User' AND closed=0 \""
    };
    var jobManager = WorkflowClientModule.JobsManager;
    var results = jobManager.CalculateJobStatistics(query);
    var totalJobs = results.Total;
    How to run steps on a job
    var jobManager = WorkflowClientModule.JobsManager;
    jobManager.RunSteps(jobId);
    How to run specific steps on a job
    var jobManager = WorkflowClientModule.JobsManager;
    // Specify specific current steps in a job to run
    stepIds = new List<string> { "step12345", "step67890" };
    jobManager.RunSteps(jobId, stepIds);
    How to stop running steps on a job
    var jobManager = WorkflowClientModule.JobsManager;
    // Get the job Id associated with the active map view
    var jobId = jobManager.GetJobId();
    // Stop the current steps in the job with the given id.
    jobManager.StopSteps(jobId);
    How to stop specific running steps on a job
    var jobManager = WorkflowClientModule.JobsManager;
    // Get the job Id associated with the active map view
    var jobId = jobManager.GetJobId();
    // Specify specific running steps in a job to stop
    stepIds = new List<string> { "step12345", "step67890" };
    jobManager.StopSteps(jobId, stepIds);
    How to finish steps on a job
    var jobManager = WorkflowClientModule.JobsManager;
    // Finish the current steps in the job with the given id.
    jobManager.FinishSteps(jobId);
    How to finish specific steps on a job
    var jobManager = WorkflowClientModule.JobsManager;
    stepIds = new List<string> { "step12345", "step67890" };
    jobManager.FinishSteps(jobId, stepIds);
    Requirements

    Target Platforms: Windows 11, Windows 10

    ArcGIS Pro version: 3.1 or higher.
    See Also