updateRequirementsByExtId インターフェイス

updateRequirementsByExtId インターフェイスは、XML ファイルから既存のルート ノードに対して要件を更新します。要件は、外部 ID で識別されます。要件ツリー ノードと、そのノードのすべての子が更新されます。Silk Central において、新しいノードは追加され、紛失しているノードは廃止 (obsolete) となり、移動されたノードは単純に移動されます。すべての呼び出しの HTTP の応答には、変更された要件の XML 構造が含まれます。新しいコードの識別子は、更新された XML 要件の構造から取得できます。

次の表は、updateRequirementsByExtId インターフェイスのパラメータを表しています。

インターフェイス URL パラメータ 説明

http://<front-end URL>/servicesExchange?hid=updateRequirementsByExtId

sid ユーザー認証用の Web サービス トークンまたはセッション識別子。Web サービス トークンは、Silk Central UI の 設定ページ から生成できます。このページにアクセスするには、Silk Central メニューに表示されているユーザー名にマウス カーソルを移動し、ユーザー設定 を選択します。セッション識別子は、利用可能な Web サービス のうちの logonUser メソッドを呼び出すことで取得できます。
  nodeID 更新される要件ツリー内のノード ID

例: http://<front-end URL>/servicesExchange?hid=updateRequirementsByExtId&nodeID=<id>&sid=<webServiceToken>

要件を検証するために使用される XML スキーマ定義ファイルは、フロントエンド サーバー URL http://<フロントエンド URL>/silkroot/xsl/requirements.xsd を使用してダウンロードするか、フロントエンド サーバーのインストール フォルダ <Silk Central インストール フォルダ>/wwwroot/silkroot/xsl/requirements.xsd からコピーできます。

updateRequirementsByExtId Web サービスの例

以下のコードでは、Apache HttpClient を使用して、要件が更新されます。

import org.apache.commons.httpclient.*; // Apache HttpClient
		
String webServiceToken = "e39a0b5b-45db-42db-84b2-b85028d954d5";
URL service = new URL("http", mWebServiceHelper.getHost(),
  mWebServiceHelper.getPort(), 
  String.format("/servicesExchange?hid=%s&sid=%s",&nodeID=%s",
    "updateRequirementsByExtId",
    webServiceToken, rootNodeId));

HttpClient client = new HttpClient();
PostMethod filePost = new PostMethod(service.toExternalForm());
string xmlFile = loadRequirementsUtf8(fileName);
StringPart xmlFileItem = new StringPart("requirements", xmlFile,
  "UTF-8");
xmlFileItem.setContentType("text/xml");
Part[] parts = {xmlFileItem};

filePost.setRequestEntity(new MultipartRequestEntity(parts,
  filePost.getParams()));
client.getHttpConnectionManager().getParams().setConnectionTimeout(60000);
int status = client.executeMethod(filePost);
System.out.println(filePost.getStatusLine());

String responseXml = filePost.getResponseBodyAsString();

リクエスト毎に 1 つの添付ファイルのみアップロードすることができます。Apache HttpComponents をダウンロードするには、http://hc.apache.org/downloads.cgi を参照してください。必要なライブラリについては、コンポーネントのドキュメントを参照してください。

要件の例

次のコードは、createRequirements サービス、updateRequirements サービス、および updateRequirementsByExtId サービスを使用して、Silk Central へアップロードすることができる要件の例を示しています。

<?xml version="1.0" encoding="UTF-8"?>
<Requirement id="0" name="name" xmlns="http://www.borland.com/RequirementsSchema" 
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://<front-end URL>/silkroot/xsl/requirements.xsd">
	<ExternalId>myExtId1</ExternalId>
	<Description>Description</Description>
	<Priority value="Low" inherited="false"/>
	<Risk value="Critical" inherited="false"/>
	<Reviewed value="true" inherited="false"/>
	<Property inherited="false" name="Document" type="string">MyDocument1.doc</Property>
	<Requirement id="1" name="name" />
	<Requirement id="2" name="name1">
		<Requirement id="3" name="name" />
		<Requirement id="4" name="name1">
			<Requirement id="5" name="name" />
      <Requirement id="6" name="name1">
        <ExternalId>myExtId2</ExternalId>
        <Description>Another Description</Description>
        <Priority value="Medium" inherited="false"/>
        <Risk value="Critical" inherited="false"/>
        <Reviewed value="true" inherited="false"/>
        <Property inherited="false" name="Document" type="string">MyDocument2.doc</Property>
			</Requirement>
		</Requirement>
	</Requirement>
</Requirement>