Hi,
Does anyone have a code example for creating a Scheduler Task from AutomationScript or QAction?
There is a CreateTask() method in the IDmsScheduler interface, but I can't work out how to use it.
Thanks in advance.
Hi,
below an example of a task that is created using this method:
var dms = new Dms(communication);
var dma = dms.GetAgent(Settings.TestElementAgentId);
var scheduler = dma.Scheduler;
DateTime startDate = DateTime.Now.AddDays(5);
DateTime endDate = DateTime.Now.AddDays(10);
string activStartDay = startDate.ToString("yyyy-MM-dd");
string activStopDay = endDate.ToString("yyyy-MM-dd");
string startTime = startDate.ToString("HH:mm:ss");
string endTime = endDate.ToString("HH:mm:ss");
string taskType = "once"; // Task type (1=once , 2=weekly, 3=monthly, 4=daily)
string runInterval = "1"; // Run interval (x minutes(daily) / 1,...,31,101,102(monthly) / 1,3,5,7 (1=Monday, 7=Sunday)(weekly))
string scriptName = "scriptName";
string elemLinked = ""; //"PROTOCOL:1:123:456", // example of linking element 123/456 to script dummy 1
string paramLinked = "";
string taskName = "SchedulerCreateTaskTest";
string taskDescription = "Task description";
object[] schedulerTaskData = new object[]
{
new object[]
{
new string[] // general info
{
taskName, // [0] : name
activStartDay, // [1] : start date (YYYY-MM-DD) (leave empty to have start time == current time)
activStopDay, // [2] : end date (YYYY-MM-DD) (can be left empty)
startTime, // [3] : start run time (HH:MM)
taskType, // [4] : task type (daily / monthly / weekly / once)
runInterval, // [5] : run interval (x minutes / 1,...,31,101,102 / 1,3,5,7 (1=Monday, 7=Sunday)) (101-112 -> months)
"", // [6] : # of repeats before final actions are executed
taskDescription, // [7] : description
"TRUE", // [8] : enabled (TRUE/FALSE)
endTime, // [9] : end run time (HH:MM) (only affects daily tasks)
"", // [10]: minutes interval for weekly/monthly tasks. Either an end date or a repeat count should be specified
}
},
new object[] // repeat actions
{
new string[]
{
"automation", // action type
scriptName, // name of automation script
elemLinked, // example of linking element 123/456 to script dummy 1
paramLinked, // ... other options & further linking of dummies to elements can be added
// elem2Linked,
"CHECKSETS:FALSE",
"DEFER:False", // run sync
}
},
new object[] {} // final actions
};
int taskId = scheduler.CreateTask(schedulerTaskData);