1

私は Alfresco CMS のローカル インスタンスを使用しており、Apache Chemistry Java CMIS を使用しています。オブジェクトの参照と作成にはすべてがうまく機能しますが、ドキュメントにメタデータを追加するのに苦労しています。

ソース ページ コードupdatePropertiesには、CmisObject. 残念ながら、これは機能しません。例外として、次のように述べています。Property 'my:property' is not valid for this type or one of the secondary types

カスタム プロパティを追加する方法を知っていますか? 既存のアスペクト コレクションを拡張する必要がありますか? その場合、どのようにすればよいですか?

ありがとう。

4

2 に答える 2

3

プロパティ 'my:property' は、このタイプまたはセカンダリ タイプのいずれかに対して無効です

my:property はカスタム プロパティのようであり、カスタム Alfresco アスペクトで処理する必要があります。

Alfresco のアスペクトを使用する場合は、Alfresco OpenCMIS Extensionが必要です。

次のコード フラグメントでは、OpenCMIS で Alfresco 拡張機能を使用できます。

Map<String, String> parameter = new HashMap<String, String>();
// user credentials
parameter.put(SessionParameter.USER, "admin");
parameter.put(SessionParameter.PASSWORD, "admin");

// connection settings
parameter.put(SessionParameter.ATOMPUB_URL, "http://localhost:8080/alfresco/cmisatom");
parameter.put(SessionParameter.BINDING_TYPE, BindingType.ATOMPUB.value());

// set the alfresco object factory
parameter.put(SessionParameter.OBJECT_FACTORY_CLASS, "org.alfresco.cmis.client.impl.AlfrescoObjectFactoryImpl");

// create session
SessionFactory factory = SessionFactoryImpl.newInstance();
Session session = factory.getRepositories(parameter).get(0).createSession();

次のコードでは、カスタム プロパティが入力された新しいドキュメントを作成できます。

Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.NAME, "doc1");
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:document,my:docProps");
properties.put("my:property", "My document");

Document doc = session.getRootFolder().createDocument(properties, null, null);
于 2013-06-21T08:23:00.650 に答える
1

カスタム プロパティはリポジトリで定義する必要があり、CMIS プロパティで設定を試みることができます。

于 2017-01-05T21:43:36.797 に答える