Les calendriers peuvent également être spécifiés dans le code du workflow en tant que propriété de l'objet workflow. La syntaxe de la propriété utilisée dans ce cas est différente de celle utilisée pour la création du calendrier via la CLI. Trois propriétés sont utilisées ici :
|
L'exemple de code suivant illustre l'utilisation des propriétés. Notez que l'arithmétique en ligne contribue à rendre plus lisibles les déclarations offset et period.
// Example of using Schedule definitions within a workflow var MyTextObject = { MyVersion: '1.0', MyName: 'Example 9', MyDescription: 'Example of use of Timer', Origin: 'Oracle' }; var MySchedules = [ // half hr interval { offset: 0, period: 1800, units: "seconds" }, // offset 2 days, 4hr, 30min , week interval {offset: 2*24*60*60+4*60*60+30*60, period: 604800,units: "seconds" } ]; var workflow = { name: MyTextObject.MyName, description: MyTextObject.MyDescription, version: MyTextObject.MyVersion, alert: false, setid: true, schedules: MySchedules, scheduled: true, origin: MyTextObject.Origin, execute: function () { audit('workflow started for timer; '); } } };
La propriété units dans l'objet MySchedules spécifie le type d'unité utilisé pour les propriétés offset et period. Il peut être défini sur 'seconds' (secondes) ou sur 'month' (mois). La propriété period indique la fréquence de l'événement et la propriété offset indique les unités au cours de la période. Dans l'exemple qui précède, la période du deuxième calendrier est définie sur une semaine et commence le second jour, à 4 h 30. Plusieurs calendriers peuvent être définis dans la propriété calendriers.
L'objet MySchedules utilise dans cet exemple les trois propriétés suivantes :
offset : point de départ du calendrier, le premier janvier 1970. Le point de départ est donné dans l'unité définie dans la propriété "units".
période : Période du calendrier située entre deux répétitions, également donnée dans l'unité définie dans la propriété "units".
units : peut être définie en secondes ou en mois.
Les calendriers hebdomadaires débutent le jeudi. Cela est dû au fait que l'époque est définie comme débutant le premier janvier 1970, un jeudi.
Exemple 30 Calendrier de workflow tel qu'affiché dans la CLIDans l'exemple ci-dessus, la période du deuxième calendrier a pour point de départ 2 jours, 4 heures et 30 minutes. Ainsi, il aura pour point de départ le 3 janvier 1970 à 4 h 30. Ce calendrier se reproduit indéfiniment tous les samedis à 4 h 30. La disposition du calendrier de la CLI est représentée ci-dessous.
<small>dory:> maintenance workflows dory:maintenance workflows> list WORKFLOW NAME OWNER SETID ORIGIN VERSION workflow-000 Configure for Oracle Solaris Cluster NFS root false Oracle Corporation 1.0.0 workflow-001 Unconfigure Oracle Solaris Cluster NFS root false Oracle Corporation 1.0.0 workflow-002 Configure for Oracle Enterprise Manager Monitoring root false Sun Microsystems, Inc. 1.1 workflow-003 Unconfigure Oracle Enterprise Manager Monitoring root false Sun Microsystems, Inc. 1.0</small>
dory:maintenance workflow-002 schedules>
NAME FREQUENCY DAY HH:MM schedule-000 halfhour - --:00 schedule-001 week Saturday 04:30