示例使用案例:添加需求

作为本节前面详述步骤的后续步骤,本主题将完成将需求添加到 Silk Central 的使用案例。

在继续操作之前,必须满足以下前提条件:

  • 您已完成针对 requirements Web 服务详述的步骤。
  • 已创建采用绑定和登录方法的工作 POJO 或 JUnit 类。
  • 您已经熟悉了其他 Silk Central API 帮助主题。
  1. 用户设置页面中生成 Web 服务令牌。
    1. 单击 Silk Central 菜单中的用户名。 此时将打开用户设置页面。
    2. 在页面的 Web 服务令牌部分,单击生成令牌
  2. 构建包含所需数据的需求对象。
  3. 使用已生成的 Web 服务令牌、项目 ID 和需求对象来调用 updateRequirement 方法。
  4. 保存由 updateRequirement 方法返回的需求 ID。
  5. 创建需求属性的 PropertyValue 数组。
  6. 使用之前创建的数组调用 updateProperties 方法。
wsimport 将创建上述 Web 服务对象:
  • Requirement
  • PropertyValue

您现在可以通过上述对象的 OOP 方法来使用 Web 服务。无需使用 SOAP 信封结构。以下是完成此使用案例所需代码的摘要。

/** project ID of Silk Central project */
private static final int PROJECT_ID = 0; 
 
/** propertyID for requirement risk */
public static final String PROPERTY_RISK = "Risk";
 
/** propertyID for requirement reviewed */
public static final String PROPERTY_REVIEWED = "Reviewed";
 
/** propertyID for requirement priority */
public static final String PROPERTY_PRIORITY = "Priority";
 
/** propertyID for requirement obsolete property */
public static final String PROPERTY_OBSOLETE = "Obsolete";
 
 
// Get the Requirements service
RequirementsService service = getRequirementsService();
 
// The web-service token that you have generated in the UI. Required to authenticate when using
// a web service.
String webServiceToken = "e39a0b5b-45db-42db-84b2-b85028d954d5";
 
// Construct Top Level Requirement
Requirement topLevelRequirement = new Requirement();
topLevelRequirement.setName("tmReqMgt TopLevelReq");
topLevelRequirement.setDescription("tmReqMgt TopLevel Desc");
 
PropertyValue propRisk = new PropertyValue();
propRisk.setPropertyId(PROPERTY_RISK);
propRisk.setValue("2");
PropertyValue propPriority = new PropertyValue();
propPriority.setPropertyId(PROPERTY_PRIORITY);
propPriority.setValue("3");
PropertyValue[] properties = new PropertyValue[] {propRisk, propPriority};
 
/*
* First add requirement skeleton, get its ID
* service is a binding stub, see above getRequirementsService()
*/
int requirementID = service.updateRequirement(webServiceToken, PROJECT_ID, topLevelRequirement, -1);
 
// Now loop through and set properties
for (PropertyValue propValue : properties) {
propValue.setRequirementId(requirementID);
service.updateProperty(webServiceToken, requirementID, propValue);
}
 
// Add Child Requirement
Requirement childRequirement = new Requirement();
childRequirement.setName("tmReqMgt ChildReq");
childRequirement.setDescription("tmReqMgt ChildLevel Desc");
childRequirement.setParentId(requirementID);
propRisk = new PropertyValue();
propRisk.setPropertyId(PROPERTY_RISK);
propRisk.setValue("1");
propPriority = new PropertyValue();
propPriority.setPropertyId(PROPERTY_PRIORITY);
propPriority.setValue("1");
properties = new PropertyValue[] {propRisk, propPriority};
 
int childReqID = service.updateRequirement(webServiceToken, PROJECT_ID, childRequirement, -1);
 
// Now loop through and set properties
for (PropertyValue propValue : properties) {
propValue.setRequirementId(requirementID);
service.updateProperty(webServiceToken, childReqID, propValue);
}
 
// Print Results
System.out.println("Login Successful with web-service token: " + webServiceToken);
System.out.println("Top Level Requirement ID: " + requirementID);
System.out.println("Child Requirement ID: " + childReqID);
注: 此示例代码也适用于 Web Service Demo Client 的类 com.microfocus.silkcentral.democlient.samples.AddingRequirement