内容


Rational Change 中的动态必要属性功能

基于其他属性定义的值,根据需要设置一个属性

Comments

Rational Change 中的必要属性

IBM® Rational® Change 拥有静态的必要属性,如果 Rational Change 请求表上存在这样的必要属性,则必须为它分配一个值。这些必要属性是使用 Rational Change 管理员界面的生命周期编辑器来定义的,而且它们是静态的。这些属性存在于一个表单上时,它们总是必需的。变更请求只在定义了必要属性后才能被保存。静态的必要属性仅适用于通过生命周期编辑器为其定义这些属性的状态或过渡状态。只在根据需要来定义属性的表单时才定义这些属性。对于其他表单,这些属性被视为可选的。

动态的必要属性具有很高的灵活性

在 Rational Change 5.3.1 中,动态必要属性 功能在将属性设置为强制性或可选的过程中增加了灵活性。动态的必要属性类似于静态定义的属性,但它的定义方式和在 Rational Change 表单上的呈现方式不同。可以根据为表单中其他属性选择的值,在该表单中将动态必要属性设置为强制性或可选的。

动态必要属性使使得管理员能够只在需要设为强制属性时才将属性定义为强制性属性。否则该属性是可选的,具有与表单中任何其他属性相同的行为。动态必要属性的用途是,帮助收集与输入 Rational Change system 中的问题或场景最相关的数据。

动态必要属性是基于规则的

可将动态必要属性视为基于规则的必要属性。如果对 Rational Change 表单应用了规则,那么一组特定的属性会变成必需属性。否则这些属性被视为可选属性。您在一个文件中定义规则,而不是在生命周期编辑器中定义规则。可为一个流程中的多个生命周期定义规则。

在 <CHANGE_APP_HOME>/WEB-INF/wsconfig 目录中的 dynamic_required_attribute_config.json 文件中定义动态必要属性的规则。此文件以 JSON 结构格式来包含所有规则。JSON 格式可由基于浏览器的 Rational Change 表单直接使用。

规则存储为 JSON 格式

如清单 1 所示,JSON 数据结构表示一个数组(JavaScript 格式)。定义每条规则时,该规则将成为一个添加到此数组中的 JavaScript 对象。

清单 1. JSON 数据结构
[         
	{
        "attribute_name":"<name_of_the_attribute>",
        "lifecycle":"<lifecycle_name>",
        "rule":[
            {
                "value":"<value1_of_the_attribute_above>",
                "req_attributes":[
                    <list_of_attribute_names_as_comma_separated_values>
                ]
            },
            {
                "value":"<value2_of_the_attribute_above>",
                "req_attributes":[
                    <list_of_attribute_names_as_comma_separated_values>
                ]
            }
        ]
    }
]

每条规则包含以下元素:

  • attribute_name:该规则应用于的来源属性 的名称。来源属性的值的改变会触发对规则的处理。如果为此属性的一个特定值定义了规则,则会在用户选择这个特定值时应用该规则。
  • lifecycle:使用该规则的来源属性的生命周期名称。当流程中存在多个生命周期时,可以使用 lifecycle 元素来指定将该规则应用于哪个特定生命周期。在各种生命周期之间可以共享任何属性。
  • ruleattribute_name 上指定的属性的规则列表。
  • valueattribute_name 上指定的属性的值,规则是为该属性定义的。仅在用户选择属性的 value 元素指定的值时应用此规则。
  • req_attributes目标属性 的逗号分隔列表,这些属性会在执行此规则时变成必要属性。目标属性会根据为来源属性的任何值定义的规则而变成必要属性或可选属性。

针对不同的规则集,同一个属性可配置为多个生命周期的来源属性。例如,清单 2 给出了 Rational Change 中包含的开发流程,该代码包含在 dev_process.xml 文件中。

清单 2. Rational Change 中的开发流程 dev_process.xml 文件
[
    {
        "attribute_name":"product_name",
        "lifecycle":"Default Lifecycle",
        "rule":[
            {
                "value":"Product A",
                "req_attributes":[
                    "browser",
                    "browser_version"
                ]
            },
            {
                "value":"Product B",
                "req_attributes":[
                    "os",
                    "os_version",
                ]
            }
        ]
    }
]

在此示例中,属性 product_name 上设置的规则指定使用此属性作为来源属性。要定义 product_name 属性,可从 Rational Change 表单中的列表中选择一个值。从值列表中选择值 Product A 时,BrowserBrowser Version 将变成必要属性。必要属性的标签将以红色字体显示。从属性列表选择值 Product B 时,OS OS Version 将变成必要属性,BrowserBrowser Version 被还原为可选属性。

启用动态必要属性并应用规则后,此功能会被应用于各种 Rational Change 表单(比如提交表单、显示表单或过渡表单)和应用中创建、修改或过渡变更请求(从一个状态转移到另一个状态)的其他操作。

启用动态必要属性功能

要启用帮助利用动态必要属性的功能,可执行以下步骤。

  1. 使用 pt.cfg 配置文件来启用或禁用动态必要属性功能:
    • 要启用该功能,可使用配置条目: [CCM_SYSTEM][ENABLE_DYNAMIC_REQUIRED_ATTRIBUTE]true[/ENABLE_DYNAMIC_REQUIRED_ATTRIBUTE][/CCM_SYSTEM]
    • 要禁用该功能,可使用配置条目:[CCM_SYSTEM][ENABLE_DYNAMIC_REQUIRED_ATTRIBUTE]false[/ENABLE_DYNAMIC_REQUIRED_ATTRIBUTE][/CCM_SYSTEM]
  2. 在 <CHANGE_APP_HOME>/WEB-INF/wsconfig/ 目录中的 dynamic_required_attribute_config.json 文件中创建或修改规则。(dynamic_required_attribute_config.json 文件是管理员手动定义此功能的规则的地方。)
  3. 重新加载配置数据。
  4. 要确认规则文件具有有效的 JSON 格式,可在 event.log 文件中查找消息:
	Start initializing dynamic required attribute cache.
        Dynamic required attribute cache has been initialized.

如果该格式无效,那么您会看到以上的一条错误消息。

用户会在启用该功能时观察到一些变化

在某些情况下,用户可能在启用动态必要属性功能时注意到细微的变化。

一条规则在修改或过渡操作期间被忽略

如果管理员要为某个属性定义规则,而该属性在修改或过渡操作 期间是空的,那么将打开一个对话框来提醒用户需要一个属性。在变更请求从一种状态转移到另一种状态时,就会出现过渡操作。这些操作由用户而不是管理员执行。

一个来源属性被设置为用户首选项属性

如果管理员要为某个属性定义规则,而该属性被设置为用户首选项属性,则会为其分配了一个值,在成功地将 Rational Change 表单加载到浏览器中后,该属性将成为必要属性。

变更请求被批量修改或执行过渡操作

在 Rational Change 中批量修改变更请求或对它们执行过渡操作时,会应用动态必要属性规则。如果选择为其定义一个规则的属性,那么目标属性会自动添加到列表中。

一个目标属性未存在于表单中

如果一个目标属性未存在于 Rational Change 表单中,则会显示一条消息。该消息会询问是否继续此操作。如果用户选择继续,则会忽略操作规则,而且可以提交 Rational Change 表单。

使用动态必要属性时要考虑的重要因素

管理员需要知道动态必要属性功能的一些重要事项。

  • 管理员需要通过直接编辑配置文件,手动创建或修改规则。没有提供用户界面来管理动态必要属性功能。
  • 只有 JSON 结构将会生效。配置文件中输入的数据不会生效。
  • 只有基于 Web 类型 CCM_LISTBOXCCM_TOGGLE 的属性可以是规则配置文件中的来源属性。目标属性可以是任何类型。
  • 为动态必要属性定义的规则,也会应用于通过其他接口(比如 Perl API 或 Web 服务)在变更请求上完成的提交或修改。这些规则会采用通过浏览器界面提交的方式执行。

结束语

动态必要属性可与 Rational Change 使用的传统的必要属性机制共存。动态必要属性有助于使用 Rational Change 管理员所定义的逻辑点(包含在规则表单中)来收集有关变更请求的更多相关信息。


相关主题


评论

添加或订阅评论,请先登录注册

static.content.url=http://www.ibm.com/developerworks/js/artrating/
SITE_ID=10
Zone=Rational
ArticleID=1004422
ArticleTitle=Rational Change 中的动态必要属性功能
publish-date=04282015