Configure the TimeBasedReviewReport job in the schedule.xml file

To configure time-based review notifications, you first configure the job in the schedule.xml file.

You have two options to configure the connection to the Content Store:
  • Use the default connection settings configured in the <configuration> element.
  • Configure a Content Store that is specific to a Scheduler job. This option is recommended only if you want to run a Scheduler job using a Content Store other than the one defined in the <configuration> element. If the Content Store is the same you do not need to additionally configure the connection to the Content Store within a specific Scheduler job. The configuration will fall back to the default Content Store connection.

To configure the time-based review notifications job:

  1. Open the %SchedulerDir%/conf/schedule.xml file.
  2. Look for the TimeBasedReviewReport default job; it looks as follows:
    <job useClass="com.ixiasoft.cms.plugins.TimeBasedReviewReport" enable="false">
    	<!-- You can add the tag  <textml>, <dita.out>, or <smtp/> to override the default value -->
    	<schedule>
    		<when>40 2 * * *</when><!-- The job will run at 2:40 am -->
    	</schedule>
    	<configuration>
    		<property name="notification.1" value="n1"/>
    		<property name="n1.role" value="Reviewer"/>
    		<property name="n1.percentage" value="50"/>
    		<property name="n1.xsl" value="report_reviewer.xsl"/>
    		<property name="n1.tsv" value="report_reviewer_tsv.xsl"/>
    		<property name="n1.ismanager" value="no"/>
    		<property name="n1.subject" value="Reviewer  Review Report (Time Based) TXT."/>
    		<property name="notification.2" value="n2"/>
    		<property name="n2.role" value="Project Coordinator"/>
    		<property name="n2.percentage" value="80"/>
    		<property name="n2.xsl" value="report_manager.xsl"/>
    		<property name="n2.tsv" value="report_manager_tsv.xsl"/>
    		<property name="n2.ismanager" value="yes"/>
    		<property name="n2.subject" value="Manager CCMS Review Report (Time Based) TXT."/>
    		<property name="email.from" value="admin@cms"/>
    	</configuration>
    </job>
  3. Change the value of enable to true.
    Note: The Scheduler job will not run if the enable value is set to false.
  4. Edit the <when> element to configure when the job will run.

    Use a crontab-like pattern, as shown below:

    <when>minute hour day month weekday</when>

    Where:

    • minute specifies the minutes (0-59) of the hour that the job will run; a value of * indicates that the job will run every minute
    • hour specifies the hours (0-23, 0=midnight) of the day that the job will run; a value of * indicates that the job will run every hour
    • day specifies the days (1-31) of the month that the job will run; a value of * indicates that the job will run every day
    • month specifies the months (1-12) of the year that the job will run; a value of * indicates that the job will run every month
    • weekday specifies the days (0-6, 0 = Sunday) of the week that the job will run; a value of * indicates that the job will run every day

    For example, to indicate that a job should run at midnight every day, enter the following:

    <when>0 0 * * *</when>

    To indicate that a job should run at 6:15 every day, enter the following:

    <when>15 6 * * *</when>

    There are other options that you can use. For example, to indicate that a job should run every 15 minutes, enter the following:

    <when>*/15 * * * *</when>

    For more information about all available Cron options, see the following URL:

    http://www.sauronsoftware.it/projects/cron4j/manual.php#p02

  5. For each notification to send, repeat the following lines:
    <property name="notification.X" value="notif_name"/>
    <property name="notif_name.role" value="role_name"/>
    <property name="notif_name.percentage" value="percentage_value"/>
    <property name="notif_name.recipient" value="cc|to"/>
    Where:
    Table 1. TimeBasedReviewReport parameters
    Field Value to enter
    "notification.X" Notification ID uniquely identifying the notification sent to the reviewer. The value of X is an integer counting up from 1; it must be unique within all the notifications.
    notif_name Notification name uniquely identifying the notification sent to the reviewer. This name is used to specify the following three properties:
    notif_name.role / role_name Role assigned to the person reviewing the topic. For example, Technical SME, Supervisor, Project Coordinator, etc. The role name must exist in the Content Store; otherwise, you need to create it and assign it to the appropriate user.
    notif_name.percentage / percentage_ value

    Threshold to reach before sending the notification to the reviewer. This threshold is the percentage of elapsed days in the review period. The review period is defined as the number of days between the day that the topic is put in the review state and the due date. Note that week-end days are not counted.

    notif_name.recipient / cc|to Specifies how to send the email; valid values are to (send directly to reviewer) or cc (copy reviewer on email sent).

    This field is optional. If not specified, it defaults to to.

    The notifications are cumulative. Therefore, if notification.1 is configured for User_A, and notification.2 is configured for User_B, notification.2 will be sent both to User A and User B.

    For example, consider the default configuration for the TimeBasedReviewReport job in the schedule.xml file:

    <configuration>
       <property name="notification.1" value="reviewer"/>
       <property name="reviewer.role" value="Reviewer"/>
       <property name="reviewer.percentage" value="50"/>
       <property name="notification.2" value="manager"/>
       <property name="manager.role" value="Project Coordinator"/>
       <property name="manager.percentage" value="80"/>
       <property name="manager.recipient" value="cc"/>
    </configuration>
    This configuration would implement the following scenario:
    • Send a first email to the Reviewer at 50% of the review period
    • Send a second email to the Reviewer and copy the Project Coordinator at 80% of the review period
    You can also implement more complex scenarios; for example, to implement the following scenario:
    • Send a first email to the Technical SME at 30% of the review period
    • Send an email to the Technical SME and copy the Project coordinator at 80% of the review period
    • Send an email to the Technical SME and copy the Project coordinator and Technical SME's Supervisor at 90% of the review period
    You would configure the job as follows:
    <configuration>
       <property name="notification.1" value="First_reminder"/>
       <property name="First_reminder.role" value="Technical SME"/>
       <property name="First_reminder.percentage" value="30"/>
       <property name="First_reminder.recipient" value="to"/>
    
       <property name="notification.2" value="Project_coordinator_notif"/>
       <property name="Project_coordinator_notif.role" value="Project coordinator"/>
       <property name="Project_coordinator_notif.percentage" value="80"/>
       <property name="Project_coordinator_notif.recipient" value="cc"/>
    
       <property name="notification.3" value="Supervisor_notif"/>
       <property name="Supervisor_notif.role" value="Supervisor"/>
       <property name="Supervisor_notif.percentage" value="90"/>
       <property name="Supervisor_notif.recipient" value="cc"/>
  6. (Optional) You can add additional optional fields in the configuration element. See "Additional optional fields" below for more information.
  7. When you are done, save and close the schedule.xml file.
  8. Restart the CCMS Scheduler service:
    • On Windows: Open the Services console, right-click Ixiasoft Scheduler and click Stop, and then right-click Ixiasoft Scheduler and click Start.
    • On Linux: Run the following commands:
      systemctl restart Scheduler

Additional optional fields

You can also add the following properties in the <configuration> element of the TimeBasedReviewReport job:

Table 2. Additional fields
Property name Value to enter
default.percentage If a person is assigned to review the map, but this person's role is not specified in a notification, this person will receive an email when the default threshold is reached. For example, if an editor is also assigned to review the map, but the "editor" role is not specified in one of the <notification_name>.role properties, this person will be notified when the default threshold is reached.

This field is optional.

email.subject Subject of the email sent.

This field is optional. If not specified, it defaults to: "Notification of Late Reviews"

email.xsl Path to XSL template for the email. The path is relative to the /%SchedulerDir%/templates/ directory.

This field is optional. If not specified, it defaults to "timebasedreport.xsl".

email.from Email address put in the From: field when the email is sent.

This field is optional. If not specified, it defaults to admin@cms.

For example, to change the default percentage to 80, and to change the details of the email sent, you would add the following code:
       ...
      <property name="default.percentage" value="80"/>
      <property name="email.subject" value="Map Review Report"/>
      <property name="email.xsl" value="timebasedreport_acme.xsl"/>
      <property name="email.from" value="admin@acme.com"/>
   </configuration>
</job>