![]() |
|
Create Schedule by Script - Printable Version +- LogicMachine Forum (https://forum.logicmachine.net) +-- Forum: LogicMachine eco-system (https://forum.logicmachine.net/forumdisplay.php?fid=1) +--- Forum: Scripting (https://forum.logicmachine.net/forumdisplay.php?fid=8) +--- Thread: Create Schedule by Script (/showthread.php?tid=3786) |
Create Schedule by Script - DGrandes - 04.01.2022 Hi, I need to create a lot of schedules and I have not found to do it by script in the forum. Is that possible? Thanks!! RE: Create Schedule by Script - admin - 04.01.2022 It's possible to do via db queries. The easiest approach is to duplicate existing schedule and change the mapped object. I can provide an example if this works for you. RE: Create Schedule by Script - DGrandes - 05.01.2022 (04.01.2022, 16:21)admin Wrote: It's possible to do via db queries. The easiest approach is to duplicate existing schedule and change the mapped object. I can provide an example if this works for you. Ok thanks!! Could you provide me the example? RE: Create Schedule by Script - admin - 05.01.2022 Use this function to duplicate a scheduler. Arguments: 1. id - source scheduler ID 2. address - object to map the new scheduler to 3. name - new scheduler name (optional) Code: function copyscheduler(id, address, name)
local scheduler = db:getrow('SELECT * FROM schedulers WHERE id=?', id)
local events = db:getall('SELECT * FROM scheduler_events WHERE scheduler=?', id)
if scheduler then
scheduler.id = nil
scheduler.name = name or (scheduler.name .. ' copy')
scheduler.object = buslib.encodega(address)
db:insert('schedulers', scheduler)
local newid = db:getlastautoid()
for _, event in ipairs(events) do
event.id = nil
event.scheduler = newid
db:insert('scheduler_events', event)
end
end
io.writefile('/tmp/lm-scheduler-clear', '')
end
-- duplicate scheduler ID 1, map it to 1/1/1 and set name to 'test2'
copyscheduler(1, '1/1/1', 'test2') |