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

属性定義の作成

概要

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

サンプルプログラム

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

属性定義を作成するときの設定例

属性 設定値
ID sample_attr
名前(標準) sample attribute
名前(日本語) サンプル属性
名前(英語) sample attribute
名前(中国語) sample attribute
説明(日本語) サンプル属性の説明
説明(英語) sample attribute description
説明(中国語) sample attribute description
入力必須 必須
要素型 文字列

注意

属性の操作は、セッションの管理者モードを有効にする必要があります。
管理者モードについては、 intra-mart Accel Documents へのアクセス を参照してください。
// 属性IDを作成します。
AttributeId attrId = new AttributeId(KnSystemSchemas.CUSTOM_ATTRIBUTE_ID_PREFIX, "sample_attr");
// 属性の要素型を取得します。
AttributeType attrType = AttributeType.STRING;

// 属性定義のプロトタイプを作成します。
KnAttributeDefinitionPrototype proto = new KnAttributeDefinitionPrototype(attrId, attrType);

// 変更可能として設定します。
proto.setChangeable(true);

// 検索可能として設定します。
proto.setSearchable(true);

// ソート可能として設定します。
proto.setSortable(true);

// バージョン管理不可能として設定します。
proto.setVersionable(false);

// 入力必須として設定します。
proto.setMinMultiplicity(1);

// 属性定義を作成します。
session.createAttributeDefinition(proto);

// 属性定義の表示名を設定します。
Map<Locale, String> attrName = new HashMap<Locale, String>();
attrName.put(Locale.ROOT, "sample attribute");
attrName.put(Locale.JAPANESE, "サンプル属性");
attrName.put(Locale.ENGLISH, "sample attribute");
attrName.put(Locale.SIMPLIFIED_CHINESE, "sample attribute");
String attrNameKey = session.getAttributeDefinitionDisplayNameKey(attrId);
session.putDisplayName(attrNameKey, attrName);

// 属性定義の説明を設定します。
Map<String, String> attrDesc = new HashMap<String, String>();
attrDesc.put(CommonConst.LOCALE_JA, "サンプル属性の説明");
attrDesc.put(CommonConst.LOCALE_EN, "sample attribute description");
attrDesc.put(CommonConst.LOCALE_ZH, "sample attribute description");
String treeId = session.getAttributeDefinitionPreferenceTreeId(attrId);
session.putPreferenceNode(treeId, CommonPreferenceConst.DESCRIPTION_PATH, attrDesc);

コラム

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