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

保管定義の作成

概要

保管定義の作成機能について記載します。

サンプルプログラム

以下の条件で 保管定義を作成するコードのサンプルです。

保管定義を作成するときの設定例

属性 設定値
名前(標準) sample retention definition
名前(日本語) サンプル保管定義
名前(英語) sample retention definition
名前(中国語) sample retention definition
文書の保護 有効
期限日 期限変更を許可する
期限切れ文書 期限切れ文書の操作を制限する
デフォルト保管責任者 hayashi
デフォルト保管期間 起算日: 今年度の開始日、期間: 1年間
デフォルトタイムスタンプ対象 デフォルトでタイムスタンプ対象に設定する
文書コピー時の動作 保管責任者と期限日にコピー元の値を設定する
期限切れ予告通知日 10日前
通知方法 メール、ポートレット、IMBox
設定レベル 文書登録時に保管設定を許可する

注意

保管定義の操作は、セッションの管理者モードを有効にする必要があります。
管理者モードについては、 intra-mart Accel Documents へのアクセス を参照してください。
Map<AttributeId, Object> attributeMap = new HashMap<AttributeId, Object>();

// 文書の保護を設定します。
attributeMap.put(KnSystemSchemas.RESTRICT_DELETION_ATTRIBUTE_ID,
      Boolean.TRUE);

// 期限日の変更許可を設定します。
attributeMap.put(KnSystemSchemas.ACCEPT_EXTENTION_PERIOD_ATTRIBUTE_ID,
      Boolean.TRUE);

// 期限切れ文書の操作制限を設定します。
attributeMap.put(KnSystemSchemas.RESTRICT_EXPIRED_DOCUMENT_OPERATIONS_ATTRIBUTE_ID,
      Boolean.TRUE);

// デフォルト保管責任者を設定します。
attributeMap.put(KnSystemSchemas.DEFAULT_OWNERS_ATTRIBUTE_ID,
      Arrays.asList("kn_user:hayashi"));

// 保管期間の起算日タイプを設定します。
attributeMap.put(KnSystemSchemas.RETENTION_PERIOD_INITIAL_DATE_TYPE_ATTRIBUTE_ID,
      KnRetentionPeriodInitialDateType.FIRST_DAY_OF_BUSINESS_YEAR.name());

// 保管期間の年度の開始月を設定します。
attributeMap.put(KnSystemSchemas.FIRST_MONTH_OF_BUSINESS_YEAR_ATTRIBUTE_ID,
      Integer.valueOf(4));

// デフォルト保管期間を設定します。
attributeMap.put(KnSystemSchemas.DEFAULT_RETENTION_PERIOD_ATTRIBUTE_ID,
      Integer.valueOf(1));

// デフォルト保管期間単位を設定します。
attributeMap.put(KnSystemSchemas.DEFAULT_RETENTION_PERIOD_UNIT_ATTRIBUTE_ID,
      KnDefaultRetentionPeriodUnit.YEAR.name());

// デフォルトタイムスタンプ対象を設定します。
attributeMap.put(KnSystemSchemas.DEFALUT_CERT_TARGET_ATTRIBUTE_ID,
      Boolean.TRUE);

// 文書コピー時の保管責任者を設定します。
attributeMap.put(KnSystemSchemas.OWNER_OF_COPY_DESTINATION_ATTRIBUTE_ID,
      KnOwnerOfCopyDestination.VALUE_OF_SOURCE.name());

// 文書コピー時の保管期限日を設定します。
attributeMap.put(KnSystemSchemas.RETENTION_PERIOD_OF_COPY_DESTINATION_ATTRIBUTE_ID,
      KnRetentionPeriodOfCopyDestination.VALUE_OF_SOURCE.name());

// 期限切れ予告通知日を設定します。
attributeMap.put(KnSystemSchemas.NOTICE_DAYS_BEFORE_ATTRIBUTE_ID,
      Integer.valueOf(10));

// 通知方法を設定します。
attributeMap.put(KnSystemSchemas.NOTICE_METHODS_ATTRIBUTE_ID,
      Arrays.asList(KnSubscriptionType.MAIL.name(),
            KnSubscriptionType.PORTAL.name(),
            KnSubscriptionType.BOX.name()));

// 設定レベルを設定します。
attributeMap.put(KnSystemSchemas.CONFIGURATION_LEVEL_ATTRIBUTE_ID,
      KnConfigurationLevel.CONFIGURABLE.name());

// 保管定義を作成します。
KnRetentionDefinitionId retentionDefinitionId =
      session.createRetentionDefinition(attributeMap);

// 保管定義の表示名を設定します。
String treeId = session.getRetentionDefinitionPreferenceTreeId(retentionDefinitionId);
Map<String, String> displayNames = new HashMap<String, String>();
displayNames.put("default", "sample retention definition");
displayNames.put("ja", "サンプル保管定義");
displayNames.put("en", "sample retention definition");
displayNames.put("zh_CN", "sample retention definition");
session.putPreferenceNode(treeId, "/kiun_repo_web/displayname", displayNames);

コラム

サンプルコード中に出現するsessionはKnSessionを表します。
KnSessionの取得/生成方法は、 intra-mart Accel Documents へのアクセス を参照してください。