5.WorkItem与工作流
WorkItem可以用来跟踪开发过程中的问题和任务,并且是评估项目健康状况的重要因素。Rational Team Concert预定义了多个WorkItem类型,涵盖了计划、需求、用例、任务、构建和缺陷等方面。你还可以通过定义新的WorkItem类型以满足团队特别的流程需要。每一种WorkItem类型都会关联一个状态转移模型,在其中定义了该WorkItem类型可能的状态,在某一状态时用户可以采取的行为以及该行为所引起的状态的变迁。
你可以通过以下步骤添加新的WorkItem类型:
(1)在Team Artifacts视图中,右键Project Area,选择Open。选择Process Configuration,展开Project Configuration->Configuration Data->Work Items->Types and Attributes。
(2)在Work Item Types区域中,点击add,在弹出的窗口中输入Name和ID。然后在Custom Attributes区域中,点击add,在弹出的窗口中输入Name和Type创建该work item类型的属性。
添加新的WorkFlow:
(1)在Team Artifacts视图中,右键Project Area,选择Open。选择Process Configuration,展开Project Configuration->Configuration Data->Work Items->Workflows。
(2)点击Add,添加新的workflow.
(3)在States区域中,添加该workflow所拥有的状态。在Actions区域中,添加用户可以采取的Action。
(4)在Transition矩阵中,对于每一种状态的转移,在新老状态所对应的格子里选择合适的Action.
建立WorkItem类型与WorkFlow的关联,完成状态转移模型的配置。
(1)在Team Artifacts视图中,右键Project Area,选择Open。选择Process Configuration,展开Project Configuration->Configuration Data->Work Items->Workflow bindings。
(2)选择WorkItem类型,选择WorkFlow,点击Save保存配置。
此外,你可以通过编程方式得到WorkItem的状态,以及可采取的Action:
IWorkItemClient client= (IWorkItemClient) repository.getClientLibrary(IWorkItemClient.class);
IWorkflowInfo workflowInfo = workflowInfo = client.findWorkflowInfo(workItem, null);
Identifier<IState> state= workItem.getState2();
if (state != null) {
Identifier<IWorkflowAction>[] actionIds= workflowInfo.getActionIds(state);
if (actionIds.length > 0) {
for (int i= 0; i < actionIds.length; i++) {
Identifier<IWorkflowAction> actionId= actionIds[i];
ChangeWorkItemStateAction action= new ChangeWorkItemStateAction(workflowInfo.getActionName(actionId), workItem, actionId,this);
URL url= workflowInfo.getActionIconName(actionId);
if (url != null) {
ImageDescriptor descriptor= WorkItemUI.getImageDescriptor(url);
if (descriptor != null)
action.setImageDescriptor(descriptor);
}
}
}
}
在EasyInspect中,我们便采用了编程的方式来获取可进行的操作。
