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

プリファレンスの利用

概要

プリファレンス機能についての説明と使い方について記載します。

プリファレンス機能は、アプリケーション独自の情報などをキャビネットやオブジェクトなどに紐付けて保持する機構です。

  • データ構造
  • 階層ツリー内のノードには、次の要素を設定します。
    • ノード名
      ノードを識別する名前を指定します。
      1 文字以上128 文字以内の文字列で、英数字と「_」、「.」、「:」、または「-」が利用できます。
      正規表現で記述すると次のとおりです。
      [a-zA-Z0-9_:.-]{1,128}
      例) 「メンテナンス」→「アプリケーション設定」の「メールアドレス」設定の場合
      mailAddress
    • 絶対パス名
      ノードの階層ツリー内での位置をあらわすパスを指定します。
      階層ツリーの一番上のノード(ルートノード)の絶対パス名は、「/」(スラッシュ)です。
      ルートノード以外のノードの絶対パス名は、ノード名を「/」で連結した文字列です。
      例) 「メンテナンス」→「アプリケーション設定」の「メールアドレス」設定の場合
      /kiun_repo_web/tenant/
      絶対パス名は最大で4000文字です。
  • 各ノードには、文字列を「キー」とするマップ型でデータを持ちます。

  • ノードの値は、属性型で定義されている型の値を使用できます。

  • 階層ツリーの同一階層内で、同じノード名は作成できません。

コラム

プリファレンスにアクセスするためには、ノードの絶対パスを使用します。

注意

プリファレンスの設定データは、検索できません。

  • ツリー管理
プリファレンスのツリーは、intra-mart Accel Documentsを利用するアプリケーション側で作成できます。
ツリーには、次の要素があります。
  • 識別子
    ツリーを識別する文字列です。 作成されたツリーは、識別子によって識別します。
    1 文字以上128 文字以内の文字列で、英数字、「_」、「.」、「:」、または「-」が利用できます。
    正規表現で記述すると次のとおりです。
    [a-zA-Z0-9_:.-]{1,128}
    ドロワやフォルダなどオブジェクトごとにプレフィックスを付けたツリー識別子を指定します。
    例) 検索フォルダの場合
    object.kn:queryFolder-XXX

注意

intra-mart Accel Documentsで使用しているTreeIDは操作しないでください。
intra-mart Accel Documentsが正しく動作しなくなる場合があります。

コラム

オブジェクトと生存期間を一緒にしたい場合は、オブジェクトやスキーマ定義が削除した場合に、
対応するツリーを一緒に削除します。
  • 使用されるプレフィックスの一覧

    ツリーの識別子に含めるプレフィックスを次に説明します。

object
オブジェクト用のツリーのプレフィックスです。
このプレフィックスに、固有のオブジェクト識別子を連結したものをツリー識別子として指定します。
classDefinition
クラス用のプレフィックスです。
このプレフィックスに、固有のクラス識別子を連結したものをツリー識別子として指定します。
attributeDefinition
属性用のツリーのプレフィックスです。
このプレフィックスに、固有の属性識別子を連結したものをツリー識別子として指定します。
application
アプリケーション用の設定を保持するツリーのプレフィックスです。
このプレフィックスに、固有のアプリケーション名を連結したものをツリー識別子として指定します。

プリファレンスの使用箇所

intra-mart Accel DocumentsのWebアプリケーションで使用しているプリファレンスについて説明します。

  • 「メンテナンス」→「アプリケーション設定」→「メールアドレス設定」で設定するメールアドレス情報

    • ツリー識別子
      application.service
    • パス
      /kiun_repo_web/tenant/mailAddress
      • キー (メールアドレス)
        typical_mail_address
      • キー (メールアドレス名:日本語)
        ja
      • キー (メールアドレス名:英語)
        en
      • キー (メールアドレス名:中国語)
        zh_CN
  • 「メンテナンス」→「タイムスタンプオプション設定」で設定するタイムスタンプ設定情報

    • ツリー識別子
      application.cert
    • パス
      /kiun_repo_system/pades
      • キー (TSAの接続先URL)
        tsa_url
      • キー (TSAへの接続ID)
        tsa_id
      • キー (TSAへの接続パスワード)
        tsa_password
      • キー (TSAのポリシー)
        tsa_policy
      • キー (ハッシュアルゴリズム)
        algorithm

      コラム

      TSAへの接続パスワードは暗号化された状態で保存されています。

  • キャビネット属性の最大コンテントサイズ

    • ツリー識別子
      application.cabinet
    • パス
      /kiun_repo_web/document
      • キー (制限サイズ)
        content_size_limit
  • キャビネット属性の最大検索結果数

    • ツリー識別子
      application.cabinet
    • パス
      /kiun_repo_web/search
      • キー (制限サイズ)
        result_limit
  • キャビネット属性の保管期限切れ文書の表示設定

    • ツリー識別子
      application.cabinet
    • パス
      /kiun_repo_web/retention
      • キー (表示設定フラグ)
        display_expired_document
      • キー (設定日時)
        modified_date
  • 属性定義の説明

    • ツリー識別子
      attributeDefinition.(属性ID)
    • パス
      /kiun_repo_web/description
      • キー (日本語)
        ja
      • キー (英語)
        en
      • キー (中国語)
        zh_CN
  • 属性定義の候補値

    • ツリー識別子
      attributeDefinition.(属性ID)
    • パス
      /kiun_repo_web/candidate
      • キー (候補値)
        (ソート順のインデックス)
  • 属性定義のデフォルト値

    • ツリー識別子
      attributeDefinition.(属性ID)
    • パス
      /kiun_repo_web/defaultValue
      • キー (デフォルト値) ※文字列の場合
        default_value_string
      • キー (デフォルト値) ※真偽値の場合
        default_value_boolean
      • キー (デフォルト値) ※日時の場合
        default_value_date
      • キー (デフォルト値) ※整数の場合
        default_value_integer
      • キー (デフォルト値) ※長整数の場合
        default_value_long
      • キー (デフォルト値) ※固定小数点の場合
        default_value_bigdecimal
      • キー (デフォルト値) ※UG識別子の場合
        default_value_ugid
      • キー (作成日をデフォルト値とするかどうか) ※日時の場合
        is_created_date
      • キー (操作ユーザをデフォルト値とするかどうか) ※UG識別子の場合
        is_registered_ugId
  • クラス定義の説明

    • ツリー識別子
      classDefinition.(クラスID)
    • パス
      /kiun_repo_web/description
      • キー (日本語)
        ja
      • キー (英語)
        en
      • キー (中国語)
        zh_CN
  • クラス定義のバージョン設定

    • ツリー識別子
      classDefinition.(クラスID)
    • パス
      /kiun_repo_web/version
      • キー (プレフィックス)
        prefix
      • キー (初期バージョン)
        firstVersion
      • キー (バージョンの桁数)
        numberOfVersion
      • キー (サフィックス)
        suffix
  • クラス定義の属性表示設定

    • ツリー識別子
      classDefinition.(クラスID)
    • パス
      /kiun_repo_web/attrViewSetting
      • キー (表示属性)
        items
  • 検索フォルダの検索条件(簡易検索)

    • ツリー識別子
      object.(クラスID)
    • パス
      /kiun_repo_web/query_folder/condition_simple
      • キー
        検索条件
  • 検索フォルダの検索条件(詳細検索)

    • ツリー識別子
      object.(クラスID)
    • パス
      /kiun_repo_web/query_folder/condition_advance
      • キー
        検索条件
  • 一覧表示設定の名前

    • ツリー識別子
      application.listViewSetting
    • パス
      /kiun_repo_web/(一覧表示設定ID)/name
      • キー (標準表示名)
        default
      • キー (日本語)
        ja
      • キー (英語)
        en
      • キー (中国語)
        zh_CN
  • 一覧表示設定の説明

    • ツリー識別子
      application.listViewSetting
    • パス
      /kiun_repo_web/(一覧表示設定ID)/description
      • キー (日本語)
        ja
      • キー (英語)
        en
      • キー (中国語)
        zh_CN
  • 一覧表示設定の表示属性

    • ツリー識別子
      application.listViewSetting
    • パス
      /kiun_repo_web/(一覧表示設定ID)/items
      • キー (表示属性)
        attributes
  • 一覧表示設定の表示属性の表示幅

    • ツリー識別子
      application.listViewSetting
    • パス
      /kiun_repo_web/(一覧表示設定ID)/width
      • キー (表示属性の表示幅)
        (属性ID)
  • 一覧表示設定の初期ソート条件

    • ツリー識別子
      application.listViewSetting
    • パス
      /kiun_repo_web/(一覧表示設定ID)/sort
      • キー (ソート条件)
        (ソート条件のインデックス)
  • ドロワ/フォルダの一覧表示設定

    • ツリー識別子
      object.(オブジェクトID)
    • パス
      /kiun_repo_web/listViewSetting
      • キー (デフォルト設定)
        default
      • キー (一覧表示設定)
        settings
  • メニュー表示設定の名前

    • ツリー識別子
      application.menuViewSetting
    • パス
      /kiun_repo_web/settings/(メニュー表示設定ID)/name
      • キー (標準表示名)
        default
      • キー (日本語)
        ja
      • キー (英語)
        en
      • キー (中国語)
        zh_CN
  • メニュー表示設定の説明

    • ツリー識別子
      application.menuViewSetting
    • パス
      /kiun_repo_web/settings/(メニュー表示設定ID)/description
      • キー (日本語)
        ja
      • キー (英語)
        en
      • キー (中国語)
        zh_CN
  • メニュー表示設定の表示属性

    • ツリー識別子
      application.menuViewSetting
    • パス
      /kiun_repo_web/settings/(メニュー表示設定ID)/items
      • キー (一括操作)
        batch_operation
      • キー (新規登録(フォルダ))
        create_folder
      • キー (新規登録(文書))
        create_document
      • キー (新規登録(セキュア文書))
        create_secure_document
      • キー (ドロワ操作)
        drawer_operation
      • キー (フォルダ操作)
        folder_operation
      • キー (文書操作)
        document_operation
      • キー (セキュア文書操作)
        secure_document_operation
      • キー (検索条件属性)
        attribute_condition
      • キー (検索対象クラス)
        class_condition
  • デフォルトのメニュー表示設定

    • ツリー識別子
      application.menuViewSetting
    • パス
      /kiun_repo_web/default
      • キー (デフォルトのメニュー表示設定ID)
        id
  • ドロワ/フォルダのメニュー表示設定

    • ツリー識別子
      object.(オブジェクトID)
    • パス
      /kiun_repo_web/menuViewSetting
      • キー (デフォルト設定)
        id
  • セキュリティ定義の名前

    • ツリー識別子
      application.securityDefinition.(セキュリティ定義のID)
    • パス
      /kiun_repo_web/displayname
      • キー (標準表示名)
        default
      • キー (日本語)
        ja
      • キー (英語)
        en
      • キー (中国語)
        zh_CN
  • 保管定義の名前

    • ツリー識別子
      application.reteintionDefinition.(保管定義のID)
    • パス
      /kiun_repo_web/displayname
      • キー (標準表示名)
        default
      • キー (日本語)
        ja
      • キー (英語)
        en
      • キー (中国語)
        zh_CN
  • メッセージテンプレート

    • ツリー識別子
      application.cabinet
    • パス
      /kiun_repo_web/template/(通知タイプ)/(通知種類)/(通知言語)
      • 通知タイプ
        • imbox(IMBox)
        • mail(メール)
      • 通知種類
        • notice(通知先指定通知)
        • monitor(モニタ通知)
        • share_st/gst(ゲストユーザ向け文書公開開始通知)
        • share_ed/gst(ゲストユーザ向け文書公開終了通知)
        • share_cl/gst(ゲストユーザ向け文書公開終了通知(公開中止))
        • share_st/user(認証済みユーザ向け文書公開開始通知)
        • share_ed/user(認証済みユーザ向け文書公開終了通知)
        • share_cl/user(認証済みユーザ向け文書公開終了通知(公開中止))
        • owner(保管責任者変更通知)
        • expiration(保管期限切れ予告通知)
        • timestamp_attach_error(タイムスタンプ付与失敗通知)
        • validationExpireDate(検証有効期限終了予告通知)
      • キー (本文)
        body
      • キー (件名)
        subject

サンプルプログラム

intra-mart Accel Documents の検索フォルダ機能は、プリファレンス機能を利用して、検索条件をフォルダに紐付けています。

この機能における利用方法をサンプルとして記載します。

コラム

サンプルコード中のsessionはKnSessionを表します。

生成方法は intra-mart Accel Documents へのアクセス、 を参照してください。

プリファレンス登録の例

// 検索フォルダオブジェクトのIDを指定します。
ObjectId folderId = ObjectId.fromIdString("kn:queryFolder-01");

// 各アプリケーションごとに設定するパスを定義します。
String applicationPath = "/kiun_repo_web";

// 「検索フォルダ機能」で使用するパスを定義します。
String queryFolderPath = applicationPath + "/query_folder";

// 検索フォルダの検索条件用のパスを定義します。
String conditionPath = queryFolderPath + "/condition";

// 検索条件値をマップにセットするためのKEYを定義します。
String queryKey = "query";

// フォルダオブジェクトの識別子からツリーIDを取得します。
String treeId = session.getObjectPreferenceTreeId(folderId);

// 検索条件をMAPで用意します。
Map<String, Object> valueMap = new HashMap<String, Object>();
valueMap.put(queryKey, "QueryValue");

// 検索条件のMAPをプリファレンスに登録します。
session.putPreferenceNode(treeId, conditionPath, valueMap);

保存された検索条件は以下のようにツリー構造で保存されます。

コラム

サンプルのツリー構造は、intra-mart Accel Documents アプリケーションの検索フォルダ機能における実際のツリー構造とはパス名およびKEYが異なります。

/

/kiun_repo_web

/kiun_repo_web/query_folder

/kiun_repo_web/query_folder/condition
   ・ query : "QueryValue" (String)

プリファレンスからの値取得の例

次のコードはフォルダに紐付けた条件を取得するコードのサンプルです。

// 検索フォルダオブジェクトのIDを指定します。
ObjectId folderId = ObjectId.fromIdString("kn:queryFolder-01");

// 検索フォルダの検索条件用のパスを定義します。
String conditionPath = "/kiun_repo_web/query_folder/condition";

// 検索条件値をマップから取得するためのKEYを定義します。
String queryKey = "query";

// フォルダオブジェクトの識別子からツリーIDを取得します。
String treeId = session.getObjectPreferenceTreeId(folderId);

// プリファレンスのノードを取得します。
KnPreferenceNode node = session.getPreferenceNode(treeId, conditionPath);

if (node != null) {
   // ノードから検索条件のマップを取得します。
   Map<String, Object> valueMap = node.getValueMap();

   // マップから検索条件を取得します。
   String queryString = (String) valueMap.get(queryKey);
}

プリファレンスからの部分ツリー削除の例

次のコードは検索フォルダの条件を削除するコードのサンプルです。

// 検索フォルダオブジェクトのIDを指定します。
ObjectId folderId = ObjectId.fromIdString("kn:queryFolder-01");

// 文書管理アプリケーションの検索フォルダ機能用のパスを定義します。
String queryFolderPath = "/kiun_repo_web/query_folder";

// フォルダオブジェクトの識別子からツリーIDを取得します。
String treeId = session.getObjectPreferenceTreeId(folderId);

// プリファレンスから検索フォルダ機能の条件を削除します。(子ツリーも一緒に削除されます。)
session.removePreferenceNode(treeId, queryFolderPath);