Sun Identity Manager 8.1 业务管理员指南

Procedure查看“接受所有日期”示例规则

本节介绍了内置的“接受所有日期”示例规则。

  1. 在文本编辑器中,打开位于 Identity Manager 的 sample 目录中的 ReconRules.xml

  2. 搜索名为 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”