この節では、組み込みの「Accept All Dates」サンプル規則について説明します。
テキストエディタで、Identity Manager の sample ディレクトリにある ReconRules.xml を開きます。
SCHEDULING_RULE_ACCEPT_ALL_DATES という名前の規則を検索します。
規則を「調整ポリシーの編集」ページの「タスクスケジュール繰り返し規則」ドロップダウンメニューに表示するには、subtype 属性を SUBTYPE_TASKSCHEDULE_REPETITION_RULE: に設定する必要があります。
<Rule subtype=’SUBTYPE_TASKSCHEDULE_REPETITION_RULE’ name=’SCHEDULING_RULE_ACCEPT_ALL_DATES’> |
前の説明にもあるとおり、タスクスケジュール繰り返し規則でデフォルトの調整スケジュールを変更できます。
変数 calculatedNextDate には、デフォルトの方法で計算された次の日付を設定することも、別の日付を返すこともできます。サンプル規則に記述されているように、calculatedNextDate は無条件にデフォルトの日付を受け付けます。次の箇所を参照してください。
<RuleArgument name=’calculatedNextDate’/> <block> <ref>calculatedNextDate</ref> </block> |
カスタムスケジュールを作成するには、<block> 要素の間にある規則のロジックを書き換えます。たとえば、調整開始時間を土曜日の午前 10:00 に変更するには、次のような JavaScript を <block> 要素の間に記述します。
<block> <script> var calculatedNextDate = env.get(’calculatedNextDate’); // Test to see if this task is scheduled for a Saturday // (Note that 6 is used to denote Saturday in JavaScript) if(calculatedNextDate.getDay() == 6) { // If so, set the time to 10:00:00 calculatedNextDate.setHours(10); calculatedNextDate.setMinutes(0); calculatedNextDate.setSeconds(0); } // Return the modified date calculatedNextDate; </script> </block> |
「サンプルの「Accept All Dates」規則を表示する」 では、calculatedNextDate は最初にデフォルトのスケジュール時刻に設定されています。次回のスケジュールされた実行日が土曜の場合、規則は調整を 10:00 に開始するようにスケジュールします。次回のスケジュールされた実行日が土曜以外の場合、「サンプルの「Accept All Dates」規則を表示する」は時間の調整を行わずに calculatedNextDate を返し、デフォルトのスケジュールが使用されます。
Identity Manager で使用するカスタム規則の作成については、『Sun Identity Manager Deployment Reference』の第 4 章「Working with Rules」を参照してください。