2016-09-05 1 views
0

ディスク上のファイルを知っているドキュメントのnodeRefを取得する必要があります。Content StoreでファイルのnodeRefを取得するにはどうすればよいですか?

例: ディスクに2016/6/1/8/0/087dabc7-6b5b-4840-8f3a-d45a55735fac.binファイルがあります。 このファイル内の文書のnodeRefに行きたいです。

このファイルのパスはノードのcm:contentプロパティに保存されていますが、すべてのドキュメントを取得してから右に移動するまで繰り返しません。これを行うには、(パフォーマンスの観点から)非凡な方法がありますか?

ありがとうございました!

+1

作業領域を試しましたか:// SpacesStore/087dabc7-6b5b-4840-8f3a-d45a55735fac? – Akah

答えて

0

.binファイルのnodeRefと名前が同じ文字列ではありません。したがって、ファイルの名前を取得してnodeRef、AFAIKとすることはできません。あなたが行うことができます

一つのことは、データベースを照会することです(残念ながら今は屋外ではありませんので、私は、クエリをテストすることはできませんが、それはこのようなものでなければなりません):

with tt as(
    select node_id 
    from alf_node_properties 
    where string_value like '%file-name.bin%') 
select * from tt, alf_node 
where tt.node_id = alf_node.node_id 

であなたはnodeRefであるuuidを持っているでしょう。

もう1つのことは、CMISで同時に作成されたドキュメントを照会することです。あなたのケースでは、2016年6月1日午前8時です。

+0

ああ、これは面白いです。それ本当 ?私はそれについての古いフォーラムの投稿を見たことがあります(https://forums.alfresco.com/forum/general/non-technical-alfresco-discussion/how-can-i-identify-what-document-bin-file-references )、それは時代遅れかもしれません。 – Akah

+1

@Akah、私はちょうどノードのブラウザでランダムなドキュメントの私のレポにチェックインしました。 'cm:content'プロパティのbinファイルの名前はnodeRefと同じではありません - ' sys:node-uuid'プロパティなので、今私は100%確信しています:) – streetturtle

関連する問題