intra-mart Accel Documents プログラミングガイド 第7版 2018-04-01

キャビネット作成

概要

キャビネットの作成方法について記載します。

サンプルプログラム

管理者「aoyagi」を指定してキャビネットを作成し、そのキャビネットに利用者「ueda」を設定するコードのサンプルです。

サービス管理セッションを生成するユーザには、Accel Documents管理者用のロールが割り当てられている必要があります。

// ユーザコードからサービス管理セッションを生成するユーザのUgIdを生成します。このユーザがキャビネットの作成者となります。
UgId serviceAdminUgId = KnUgIdUtil.getUserUgId("hayashi");

// サービス管理セッションを生成します。
KnServiceAdminSession serviceAdminSession = repository.createServiceAdminSession(serviceAdminUgId);

try {
   // キャビネットの属性をMAPで用意します。
   Map<AttributeId, Object> attributeMap = new HashMap<AttributeId, Object>();
   attributeMap.put(KnSystemSchemas.CABINET_NAME_ATTRIBUTE_ID, name);

   // キャビネットの管理者群をListで用意します。
   List<UgId> adminUgIdList = new ArrayList<UgId>();
   adminUgIdList.add(KnUgIdUtil.getUserUgId("aoyagi"));

   // キャビネットを作成します。
   KnCabinetId cabinetId = serviceAdminSession.createCabinet(attributeMap, adminUgIdList);

   // キャビネットの利用者群をListで用意します。
   List<UgId> accessibleUgIdList = new ArrayList<UgId>();
   accessibleUgIdList.add(KnUgIdUtil.getUserUgId("ueda"));

   // キャビネットの利用者を登録します。
   serviceAdminSession.updateAccessiblePrincipal(cabinetId, accessibleUgIdList);
} finally {
   // サービス管理セッションをクローズします。
   serviceAdminSession.close();
}

コラム

intra-mart Accel Documents アプリケーションでは、キャビネット作成後にメニュー表示設定のインポート処理などを行っています。 APIのキャビネット作成ではインポート処理は行われないため、以下の公開ソースコードを参照して必要な情報のインポート処理を追加で行ってください。

jp.co.fujixerox.kiun.repository.web.common.util.KnCabinetUtil#settingAfterCreateCabinet(KnSession)