 Get schedule execution's Tasks
 Get schedule execution's Tasks
                                { getTasksIds }
Returns the list of tasks for a Schedule Execution
Method
Input Parameters
Name
executionsId
Type
string
Description
The execution's system ID
Output Response
Successful Result Code
200
Response List Type
Description of Response Type
A generic object used to contain ID's of items. Note that the response is returned as a list of items of this object type.
Notes
Each schedule produces an 'execution' each time it runs. The execution is effectively an instance of the schedule. Within each execution is a list of jobs or 'tasks' tha represent the atomic level of activity that will be executed.The task id list can be used to retrieve the task data or to rerun a specific job using 'reRunTask'
Examples
Find and Run a scheduled task (JavaScript):
This example demonstrates how to find a item's schedule and then run it programmatically.
The example uses API authentication driven from JavaScript. See Authentication APIs for alternatives.
// URL of the Pyramid installation and the path to the API 2.0 REST methods
var pyramidURL = "http://mysite.com/api2/";
// step 1: authenticate admin account and get token
// NOTE: callApi method is a generic REST method shown below.
let token = callApi("auth/authenticateUser",{
	"data":{
		"userName":"adminUser",
		"password":"abc123!"
	}
},false);
log("got token "+token);
// step 2: get all the schedules in the system based on name search
let findSchedule= callApi("tasks/findSchedule ",{
	"searchCriteria": {
		"searchCriteria":{
			"searchValue":"My Demo Schedule",
			"searchMatchType":2
		},
		"scheduleType":1
	},
	"auth": token
});
// step 3: extract the schedule ID property from the returned schedule that matches "My Demo Schedule"
let scheduleId = findSchedule.data[0].scheduleId
// step 4: launch a run of the chosen schedule now, without triggers
let runSchedule = callApi("tasks/runSchedule ",{
	"data":{"scheduleId": scheduleId,"checkTriggers":"false"},
	"auth": token
});
if(runSchedule.error!=null){
	throw new Error(runSchedule.error);
}
				
				
// step 5A: OPTIONAL: get details to check running status of scheduled event. First, get execution ID
let executionId=runSchedule.data;
				
//stet 5B: get execution item's status. 
let taskData= callApi("tasks/getScheduleExecutionStatus ",{
	"executionId": executionId,
	"auth": token
});
log("executionId status is "+executionStatus[taskData.data.status]);
//step 5C: check status every 3 seconds
if(taskData.data.status!=1){
	setTimeout(getStatus,3000);
}
			
				
////############ alternative approach #################
//step 6a: get task items in that execution. 
let tasks= callApi("tasks/getTasksIds ",{
	"executionId": executionId,
	"auth": token
});
//step 6B: get the ID of the single task in that execution. 
let taskId = tasks.data[0].id
log("got task "+taskId);
//step 6C: get status of the task. 
getStatus();
function getStatus(){
	let taskData= callApi("tasks/getTaskData ",{
		"taskId": taskId,
		"auth": token
	});
	log("task status is "+taskData.data.status);
	if(taskData.data.status!=1){
		setTimeout(getStatus,3000);
	}
}
				
////############ other methods #################
//step 7: pause the schedule
let suspend= callApi("tasks/suspendSchedule",{
	"scheduleId": scheduleId,
	"auth": token
});
//step 8: restart the schedule
let resume= callApi("tasks/resumeSchedule",{
	"scheduleId": scheduleId,
	"auth": token
});
// ##### optional generic login method for debugging ##############
function log(msg){
	document.write(msg);
	console.log(msg);
}
// ##### generic REST API calling method ##############
function callApi(path,data,parseResult=true){
	var xhttp = new XMLHttpRequest();
	xhttp.open("POST", pyramidURL+path, false);
	xhttp.send(JSON.stringify(data));
	if(parseResult){
		return JSON.parse(xhttp.responseText);
	}else{
		return xhttp.responseText;
	}
}
		 ItemId[]
 ItemId[]