Hi, I'm looking for a way to create a scheduled task in an automation script. The NuGet package apparently cannot be found in Visual Studio. Is this outdated?
"Skyline.DataMiner.Core.Scheduler.Automation"
Thank you!
David Rid [DevOps Enabler] Selected answer as best 7 days ago
Using the IDmsScheduler from the Skyline.DataMiner.Core.DataMinerSystem.Common nuget, you can create and schedule your tasks in the Task Scheduler.
David Rid [DevOps Enabler] Posted new comment 7 days ago
Miguel Obregon [SLC] [DevOps Catalyst] Answered question 6th December 2024
Thank you! The documentation helped me out. With some modifications, I was able to make it run in the automation script.
Here is my code:
private void RunSafe(IEngine engine)
{
var dms = engine.GetDms();
var dma = dms.GetAgent(Engine.SLNetRaw.ServerDetails.AgentID);
var scheduler = dma.Scheduler;
DateTime startDate = DateTime.Now.AddMinutes(1);
DateTime endDate = DateTime.Now.AddMinutes(2);
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
};
scheduler.CreateTask(schedulerTaskData);
}