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

文書作成

概要

文書を作成する機能について記載します。

サンプルプログラム

フォルダ(kn:folder-01)を指定し、直下に名前が「sampleDocument」の文書を作成するサンプルコードを記載します。

// 文書を作成するドロワ/フォルダのIDを指定します。
ObjectId parentObjectId = ObjectId.fromIdString("kn:folder-01");

// 登録する文書のコンテンツをファイルから指定します。
KnFileContent content = new KnFileContent(new File("sample.txt"));

// 作成時に設定する属性値を指定します。
Map<AttributeId, Object> attributeMap =
        new HashMap<AttributeId, Object>();
// 名前属性の値を指定します。
attributeMap.put(KnSystemSchemas.OBJECT_NAME_ATTRIBUTE_ID, "sample.txt");
// 表示用の初期バージョン(0.0.0.1)を指定します。
List<Integer> firstVersion = Arrays.asList(
       Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(0), Integer.valueOf(1));
attributeMap.put(KnSystemSchemas.DISPLAY_VERSION_NO_ATTRIBUTE_ID, firstVersion);

session.createDocument(parentObjectId, attributeMap, content);

以上のコードで名前が「sampleDocument」の文書が作成できます。 クラスはデフォルトの「kn:document」となります。 アクセス権は親ドロワ/フォルダのアクセス権が設定されます。

コラム

クラスやアクセス権を指定して文書を作成する場合は

createDocument(ObjectId, ClassId, Map<AttributeId, ?>, Map<UgId, Set<Permission>>, KnContent)

を使用します。

コラム

IM-Workflowから文書を作成/チェックインする場合は

List<String> workflowMatter = Arrays.asList(%ワークフロー案件名%, %システム案件ID%);
attributeMap.put(KnSystemSchemas.WORKFLOW_MATTER_ATTRIBUTE_ID, workflowMatter);

のようにワークフロー案件属性を設定します。