Share this page

# Rule Definitions

Each rule definition is an XML file that uses the structure of the following example:

    <derivation>
       <name>work_items_on_last_time_sheet</name>
       <description>text description</description>
       <reason>OnLastTimeSheet</reason>
       <resource-bundle>suggested_items</resource-bundle>
       <context>TIME_WORK_ITEM</context>
       <sql>
          <![CDATA[
            SELECT ...
            FROM ...
            WHERE ...
          ]]>
       </sql>
    </derivation>

The values for the `name, description, reason, resource-bundle, context,` and `sql` tags are described in the following sections. The `description` and `resource-bundle` tags are optional.

### Name

This tag is a case-sensitive code-style name (that is, one with no spaces or special characters) that uniquely identifies the rule. The `<name>` value in the rule definition and the `<name>` value to be used in the `QuickListMaster.xml` file must match.

### Description

This tag is an optional text description of the rule definition. The description must not use any XML special characters. You can arrange to translate this field into other languages supported by PPM, as described in Translating Descriptions and Reasons in Custom Rule Definition Files

The description must be included in the .properties file that has the file name specified for the <resource-bundle> tag in the rule definition XML file, which is suggested_items in the example so the file name with extension is suggested_items.properties. This file must be located in the following directory:

       <PPM_Home>/conf/custom_resources/suggested_items

### Reason

This tag is the key for the text that explains to the user the reason the item is being included in the Suggested Items list. The reason must not use any XML special characters. For example, the key `OnLastTimeSheet` could display the text `Item from previous time sheet.` You can arrange to translate this field into other languages supported by PPM, as described in Translating Descriptions and Reasons in Custom Rule Definition Files.

The reason must be included in the `.properties` file that has the file name specified for the `<resource-bundle>` tag in the rule definition XML file, which is `suggested_items` in the example so the file name with extension is `suggested_items.properties.` This file must be located in the following directory:

       <PPM_Home>/conf/custom_resources/suggested_items

### Resource Bundle

If values for `description` and/or `reason` are to be translated into other languages, this tag is the name of the `.properties` file that contains those values. A new `.properties` file must be created for each language to which `description` and/or `reason` are to be translated. The file name must conform to Java resource bundle naming conventions, including any required suffix such as `_de` for German or `_pt_BR` for Brazilian Portuguese. For more information, see Translating Descriptions and Reasons in Custom Rule Definition Files.

### Context

Keep the value of this tag as `TIME_WORK_ITEM.`

### SQL

Define an SQL statement to identify work items for the Suggested Items list. Multiple lines are allowed.

Including `<![CDATA[` and `]]>` tags around your SQL statement allows inclusion of special or reserved characters.

The following tokens are supported:

- `[TMG.RESOURCE_ID]`

- `[TMG.PERIOD_ID]`

To be read correctly, the `SELECT` columns of the SQL statement must be aliased to the following column names (but the return order of the columns does not matter):

- `work_item_id` (ID of the work item)

  - For projects or tasks (including summary tasks/root node): `task_id`

  - For requests: `request_id`

  - For packages: `package_id`

  - For miscellaneous: `lookup_code`

- `work_item_name` (display name of the work item)

  - For projects or tasks: `task_name`

  - For requests: `request_id`

  - For packages: `package_id`

  - For miscellaneous: `lookup_meaning`

- `work_item_set_id` (ID of the work item set, such as project or request type)

  - For projects or tasks: `work_plan_id`

  - For requests: `request_type_id`

  - For packages: `workflow_id`

  - For miscellaneous: `validation_id`

- `work_item_set_name` (name of the work item set)

  - For projects or tasks: `work_plan_name`

  - For requests: `request_type_name`

  - For packages: `workflow_name`

  - For miscellaneous: `lookup_type`

- `description` (any plain text description of the work item, with suggested descriptions as follows)

  - For projects: the project description

  - For tasks: project path list to the task

  - For requests: request description

  - For packages: package description

  - For miscellaneous: lookup description

- `work_item_type` (type of the work item�internal code)

  - For projects or tasks: `TASK`

  - For requests: `REQUEST`

  - For packages: `PACKAGE`

  - For miscellaneous: `MISC`

- `wp_task_info_name` (this is required only when you select `TASK` for `work_item_type`)

- `pfm_request_id` (this is required only when you select `TASK` for `work_item_type`)

For example, the following SQL selects all the requests that are both assigned to the user and in Approved status:

    <sql>
      <![CDATA[
    SELECT r.request_id work_item_id,
           r.request_id work_item_name,
           r.request_type_id work_item_set_id,
           rt.request_type_name work_item_set_name,
           r.description description,
           'REQUEST' work_item_type
      FROM kcrt_requests r,
           kcrt_request_types rt,
           kcrt_statuses s
     WHERE r.assigned_to_user_id = [TMG.RESOURCE_ID]
       and r.request_type_id = rt.request_type_id
       and r.status_id = s.status_id
       and s.status_name = 'Approved'
      ]]>
    </sql>

https://admhelp.microfocus.com PPM 8942
Tips to improve your search results... OpenText™ Project and Portfolio Management Help Center PPM Help 26.2-26.3 All View Local Help Center View Online Help Center Version: