ProSnippets WorkflowManager - kataya/arcgis-pro-sdk GitHub Wiki

Language:              C#  
Subject:               WorkflowManager  
Contributor:           ArcGIS Pro SDK Team <[email protected]>  
Organization:          esri, http://www.esri.com  
Date:                  12/11/2020  
ArcGIS Pro:            2.7  
Visual Studio:         2017, 2019  
.NET Target Framework: 4.8  

How to get managers objects

// WorkflowModule.GetManager returns a manager of the type specified
// keyword is currently just an empty string
var wfCon = await WorkflowModule.ConnectAsync();
var jobManager = wfCon.GetManager<JobsManager>();
var configManager = wfCon.GetManager<ConfigurationManager>();

How to get groups

// GetAllGroups returns a list of Workflow Manager groups
var wfCon = await WorkflowModule.ConnectAsync();
var configManager = wfCon.GetManager<ConfigurationManager>();
var allGroups = configManager.GetAllGroups();

How to get users

// GetAllUsers returns a list of Workflow Manager users
var wfCon = await WorkflowModule.ConnectAsync();
var configManager = wfCon.GetManager<ConfigurationManager>();
var allUsers = configManager.GetAllUsers();

How to get job types

// GetVisibleJobTypes returns a list of job types
var wfCon = await WorkflowModule.ConnectAsync();
var configManager = wfCon.GetManager<ConfigurationManager>();
var jobTypes = configManager.GetVisibleJobTypes();

How to create a job

// CreateJob returns an ID of a new job
// it is a passed a valid job type ID as an integer
var wfCon = await WorkflowModule.ConnectAsync();
var jobManager = wfCon.GetManager<JobsManager>();
var jobID = jobManager.CreateNewJob(jobTypeID);

How to get a job

// GetJob returns an existing job
// it is passed a valid job ID as an integer
var wfCon = await WorkflowModule.ConnectAsync();
var jobManager = wfCon.GetManager<JobsManager>();
var job = jobManager.GetJob(jobID);

How to get a job associated with a map

// Get a job associated with the map
var wfCon = await WorkflowModule.ConnectAsync();
var jobManager = wfCon.GetManager<JobsManager>();
var job = jobManager.GetJob(map);
if (job != null)
{
    // Job found, do something with the job
    var jobId = job.ID;
}

How to close a job

// CloseJobs returns a list of closed job IDs
// it is passed a list of job IDs to close
var wfCon = await WorkflowModule.ConnectAsync();
var jobManager = wfCon.GetManager<JobsManager>();
var jobIDs = jobManager.CloseJobs(jobIdsToClose);

How to access job info and change it

// You can change many of the exposed properties of a job and then save them
var wfCon = await WorkflowModule.ConnectAsync();
var jobManager = wfCon.GetManager<JobsManager>();
var job = jobManager.GetJob(jobID);
job.Description = "This is a test";
job.Save();

How to Execute a step on a job

// Gets the current step
// checks to see if it can execute it
// proceeds to do so if it can
var wfCon = await WorkflowModule.ConnectAsync();
var jobManager = wfCon.GetManager<JobsManager>();
var job = jobManager.GetJob(jobID);
string stepID = job.GetCurrentSteps().First();
if (job.CanExecuteStep(stepID).Item1)
    job.ExecuteStep(stepID);

How to execute a Query

// ExecuteQuery returns a query result
// Its passed either an ID or a name
var wfCon = await WorkflowModule.ConnectAsync();
var jobManager = wfCon.GetManager<JobsManager>();
var queryResultReturn = jobManager.ExecuteQuery("All Jobs");
⚠️ **GitHub.com Fallback** ⚠️