4 Scheduler Client API
All features relying on the Scheduler must use the SchedulerClient API to add, remove, update or get Triggers to or from the Scheduler instance.

Direct accesses into the repository to System Triggers, System Jobs are forbidden.
4.1 Detailed description of the SchedulerClient API
The SchedulerClient API is detailed into the JavaDoc provided with HOPEX installation.
See “MegaSchedulerClient” into either:
• online documentation: HOPEX Power Studio > HOPEX APIs > JavaDoc
• java\doc folder of HOPEX installation site: mj_api.doc.zip documentation package.
4.2 Java
4.2.1 Documentation
See “MegaSchedulerClient” into either:
• online documentation: HOPEX Power Studio > HOPEX APIs > JavaDoc
• java\doc folder of HOPEX installation site: mj_api.doc.zip documentation package.
4.3 VB Script
4.3.1 Documentation
To get access to the SchedulerClient API, use the SchedulerClient Method available on MegaRoot.
Example:
Set objSchedulerClient = GetRoot().InvokeFunction("~nNmUTwNTF94K[SchedulerClient]")
Members available on the SchedulerClient object are defined below (for detailed description see JavaDoc documentation):
Class SchedulerClient
Public Property Get State() As String
Public Property Get ConnectionMode() As Integer
Public Property Let ConnectionMode(Integer intConnectionMode)
Public Property Get DefaultUpdateMode() As Integer
Public Property Let DefaultUpdateMode(Integer intDefaultUpdateMode)
Public Sub StartScheduler()
Public Sub StopScheduler()
Public Sub ReloadTriggers()
Public Function NewTrigger() As MegaObject
Public Sub AddTrigger(mgobjTrigger As MegaObject, strOptions As String)
Public Sub RemoveTrigger(mgobjTriggerId As Object, strOptions As String)
Public Sub UpdateTrigger(mgobjTrigger As MegaObject, strOptions As String)
Public Function GetTrigger(mgidTriggerId As Object, strOptions As String) As MegaObject
Public Function GetAllTriggers() As MegaCollection
End Class
4.3.2 Example 1 : Registering a Trigger
Dim mgRoot
Dim objSchedulerClient
Dim mgobjScheduling
Dim mgobjScheduledTrigger
Dim mgobjScheduledJob
Set mgRoot = GetRoot()
' Get the SchedulerClient API object
Set objSchedulerClient = mgRoot.SchedulerClient
' Allocate a "System Trigger" MegaObject to be configured
Set mgobjScheduledTrigger = objSchedulerClient.NewTrigger()
' Get the Scheduling and "System Job" MegaObject to be configured
Set mgobjScheduling = mgobjScheduledTrigger.GetCollection("~e)PMRueCFbLR[Scheduling]").Item(1)
Set mgobjScheduledJob = mgobjScheduledTrigger.GetCollection("~pWuUJAATF5mD[System Job]").Item(1)
' Configure the Scheduling
mgobjScheduling.SetProp "~azPMryeCFfRR[Scheduling.IsRelative]", "A"
mgobjScheduling.SetProp "~h)PMS5fCFTXR[Scheduling.RepeatKind]", "S"
' Set the start at Now + 30 seconds
mgobjScheduling.SetProp "~CaW0Vl0PG1pC[Scheduling.Start.AbsDateTime]", DateAdd("s",30,Now)
' Configure the System Job (with dumy macro and contextstring, just for example)
mgobjScheduledJob.GetProp("~210000000900[Name]") = "My Job"
mgobjScheduledJob.GetProp("~MXuU7x9TFLlD[Implementation Macro]") = "~oHDN0jc0I1p4[My Macro]"
mgobjScheduledJob.CallMethod "~zdj0fUG4GXRM[SetContextString]", "my informations"
' Register the System Trigger into the Scheduler instance
objSchedulerClient.AddTrigger mgobjScheduledTrigger, "UPDATEMODE=TRANSACTIONAL"
4.3.3 Example2 : three ways to setup the scheduling
You can use different ways to setup the scheduling:
Configure the Scheduling directly using the Scheduling MegaObject properties
' Get the Scheduling MegaObject to be configured
Set mgobjScheduling = mgobjScheduledTrigger.GetCollection("~e)PMRueCFbLR[Scheduling]").Item(1)
' Set the Scheduling date as absolute
mgobjScheduling.SetProp "~azPMryeCFfRR[Scheduling.IsRelative]", "A"
' Set the Scheduling as single start
mgobjScheduling.SetProp "~h)PMS5fCFTXR[Scheduling.RepeatKind]", "S"
' Set the start at Now + 30 seconds
mgobjScheduling.SetProp "~CaW0Vl0PG1pC[Scheduling.Start.AbsDateTime]", DateAdd("s",30,Now)
Setup the Scheduling from a Scheduling definition stored in an XML string
' Get the Scheduling MegaObject to be configured
Set mgobjScheduling = mgobjScheduledTrigger.GetCollection("~e)PMRueCFbLR[Scheduling]").Item(1)
' Setup the Scheduling from Xml string
mgobjScheduling.CallMethod "~ sJYouhVuFP7S[UpdateFromString]", strXmlSchedulingDefinition
Recover the scheduling from a repository object on which it is defined
The repository object must have a “~iUhj4likEzJQ[Scheduling]” MetaAttribute. The Scheduling definition is stored into the standard “~iUhj4likEzJQ[Scheduling]” MetaAttribute.
In this example, the Scheduling definition is set as relative. Only the reference date and time have to be set.
' Get the repository object on which the Scheduling is defined
Set mgobjSteeringDate = mgobjSteeringCalendar.GetCollection("~qcuD3s3SFXL7[Steering Date]")
' Get the Scheduling MegaObject to be configured
Set mgobjScheduling = mgobjSteeringDate.GetCollection("~e)PMRueCFbLR[Scheduling]").Item(1)
' Set the reference date and time (VBScript Date type)
mgobjScheduling.getProp("~V(PMgweCF5OR[Scheduling.Reference.DateTime]")= dtReferenceDateTime