私は Spring 3.1 アプリケーションで作業しており、Alfresco のリポジトリにある文字列テンプレート ドキュメントを見つける必要があります。OpenCMIS を使用して屋外でファイルを作成することはできますが、テンプレートを見つける方法がわかりませんでした。その方法を知っている人や例を教えてください。事前に感謝します。
1 に答える
1
使用できるオプションは多数あります。まず、ドキュメントを一意に識別する基準が必要です。以下にいくつかを示します。うまくいけば、あなたのケースがそれらのいずれかに該当するか、適切な解決策に向けて刺激を受けるでしょう. 以下は疑似コードを使用しています。Java クライアント APIの操作については、 OpenCMIS 開発者ガイドを参照してください。
ID別
CMIS を介してドキュメントを作成すると、後で取得するためにアプリケーションに保存できる一意の ID を取得できます。
Map<String, Object> templateProperties = createDocumentProperties();
Folder folder = getTemplatesFolder();
ObjectId templateId = createTemplateIn(folder);
storeTemplateId(templateId.getId(), templateProperties); // persist the ID
...
// later on
...
String id = getTemplateId(); // retrieve the ID
Session session = openCMISSession();
Document template = (Document)session.getObject(id);
パス別
前の例と同様に、ID の代わりにドキュメントを保存した場所に注意するか、手動でパスを作成する方法を用意する必要があります。
String path = getTemplatePath(); // either recover it from DB or construct a path
Document template = (Document)session.getObjectByPath(path);
資産価値別
テンプレート Document で特定のメタデータ フィールドを使用して、後で簡単に取得できるとします (たとえば、ユース ケース用に特定のAlfresco メタデータ モデルを作成した場合)。
String meta = TemplateProperties.TEMPLATE_ID; // e.g. my:templateId
String type = TemplateProperties.TEMPLATE_TYPE; // e.g. my:template
String templateMeta = "TEMPLATE1";
Map<String, Object> templateProperties = createDocumentProperties();
templateProperties.put(meta, templateMeta);
templateProperties.put(PropertyIds.OBJECT_TYPE_ID, type);
createTemplate(templateProperties);
...
// later on
...
String type = TemplateProperties.TEMPLATE_TYPE; // e.g. my:template
String meta = TemplateProperties.TEMPLATE_ID;
String tplId = "TEMPLATE1";
String query = String.format("SELECT * FROM % WHERE % = '%'", type, meta, tplId);
ItemIterable<QueryResult> i = session.query(query, false);
QueryResult qr = i.iterator().next(); // let's assume we have one single match
String templateId = qr.getPropertyByQueryName("cmis:objectId").getFirstValue()
Document template = (Document)session.getObject(templateId);
クエリで
前のアプローチは、実際にはプロパティ名による検索に結びついておらず、テンプレートを識別するあらゆる種類のクエリを使用するように簡単に拡張できます。CMIS クエリ言語の実装の詳細については、Alfresco のページを参照して、リポジトリをクエリする方法をさらに確認してください。
于 2012-10-07T07:36:13.363 に答える