本节介绍了内置的“接受所有日期”示例规则。
在文本编辑器中,打开位于 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,<block> 元素之间应包含以下 JavaScript:
<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> |
在查看“接受所有日期”示例规则中,最初将 calculatedNextDate 设置为默认预定时间。如果下次的预定运行日期为星期六,则规则将协调安排在 10:00 开始运行。如果下次的预定运行日期不是星期六,则查看“接受所有日期”示例规则将返回 calculatedNextDate(而未进行任何时间调整)并使用默认进度表。
有关创建用于 Identity Manager 的自定义规则的详细信息,请参见《Sun Identity Manager Deployment Reference》中的第 4 章 “Working with Rules”。