この章では、ベンダーAPIのユースケースについて説明します。このユースケースで、Oracle Enterprise Repositoryにおいてベンダーの追加または割当てを行う方法について解説します。
この章では、次の項目について説明します。
ベンダーはアセットの元のソースであり、アセットをサポートします。ベンダーは、単一の名前の文字列で識別されます。
検証: ベンダーを保存する場合、Oracle Enterprise Repositoryは、現在、次の内容を検証します。
ベンダー名は、250文字未満にする必要があります。
ベンダー名は一意です。
関連するサブシステム
アセットとベンダー間には1対多の関係があります(たとえば、複数のアセットは同じベンダーにリンクできますが、1つのアセットは1つのベンダーしか持つことができません)。アセットを作成または編集する場合、ベンダーをアセットに関連付けるベンダーIDメタデータ要素を変更できます。
追加で必要なインポート
import com.flashline.registry.openapi.entity.Vendor; import com.flashline.registry.openapi.query.VendorCriteria;
この項では、ベンダーAPIを使用するユースケースについて説明します。内容は次のとおりです。
説明
新しいベンダーをOracle Enterprise Repositoryに追加します。
既存のベンダーをアセットに割り当てます。
サンプル・コード
例32-1 ユースケース: ベンダーの追加または割当て
package com.flashline.sample.vendorapi;
import java.net.MalformedURLException;
import java.net.URL;
import java.rmi.RemoteException;
import javax.xml.rpc.ServiceException;
import com.flashline.registry.openapi.base.OpenAPIException;
import com.flashline.registry.openapi.entity.Asset;
import com.flashline.registry.openapi.entity.AuthToken;
import com.flashline.registry.openapi.entity.Vendor;
import com.flashline.registry.openapi.query.VendorCriteria;
import com.flashline.registry.openapi.service.v300.FlashlineRegistry;
import
com.flashline.registry.openapi.service.v300.FlashlineRegistryServiceLocator;
public class Vendors {
public static void main(String pArgs[]) throws OpenAPIException,
RemoteException,
ServiceException {
try {
///////////////////////////////////////////////////////////
// Connect to Oracle Enterprise Repository
///////////////////////////////////////////////////////////
URL lURL = null;
lURL = new URL(pArgs[0]);
FlashlineRegistry repository = new
FlashlineRegistryServiceLocator().getFlashlineRegistry(lURL);
// //////////////////////////////
// Authenticate with OER
// //////////////////////////////
AuthToken authToken = repository.authTokenCreate(pArgs[1],pArgs[2]);
// -----------------------------------------
// Create a new vendor
String newVendorName = "My Vendor";
Vendor newVendor = repository.vendorCreate(authToken, newVendorName);
System.out.println("The new vendor id =\"" + newVendor.getID() + "\"");
// -----------------------------------------
// Find a vendor and update an asset to use it
VendorCriteria criteria = new VendorCriteria();
criteria.setNameCriteria(newVendorName);
Vendor[] vendors = repository.vendorQuery(authToken, criteria);
long myVendorID = vendors[0].getID();
long MY_ASSET_ID = 569;
Asset myAsset = repository.assetRead(authToken, MY_ASSET_ID);
// MY_ASSET_ID must be the asset id of an asset in the repository
myAsset.setVendorID(myVendorID);
repository.assetUpdate(authToken, myAsset);
// ----------------------------------------
// clean up
myAsset.setVendorID(0);
repository.vendorDelete(authToken, newVendor.getID());
} catch (OpenAPIException lEx) {
System.out.println("ServerCode = " + lEx.getServerErrorCode());
System.out.println("Message = " + lEx.getMessage());
System.out.println("StackTrace:");
lEx.printStackTrace();
} catch (RemoteException lEx) {
lEx.printStackTrace();
} catch (ServiceException lEx) {
lEx.printStackTrace();
} catch (MalformedURLException lEx) {
lEx.printStackTrace();
}
}
}