サンプル事例:要件を追加する

前のステップで行ったことの詳細をこのセクションでフォローアップし、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 サービスのデモ クライアント クラスである com.microfocus.silkcentral.democlient.samples.AddingRequirement からも利用できす。