2016-07-26 14 views
1

特定のドキュメントの物理ファイルパスを取得する必要があります。Bentley ProjectWise Explorer - 物理ファイルパス(DMS)を取得する方法

o_pathをdms_stor、dms_projからo_projectcodeと[dms_doc]からo_filenameから:私はいくつかのテーブル内の情報のほとんどを得ることができることを私はそれを把握するデータベース内のいくつかのquerysを実行

Server  Path 
VIRM-RGR016 D:/PW_RGR_STORAGE/ECX/1197_00/dms00166/ 

これは、例の90%のために働く:

 SELECT o_node 'Server' 
       ,c.o_path + '/' + b.o_projectcode + '/' + o_filename 'Path' 
     FROM [PW_Engevix_ECO].[dbo].[dms_doc] a 
     JOIN [PW_Engevix_ECO].[dbo].[dms_proj] b ON a.o_projectno = b.o_projectno 
     JOIN [PW_Engevix_ECO].[dbo].[dms_stor] c ON c.o_storno = a.o_storno 

、結果は似ています。

もう1つのサブフォルダが作成されることがありますが、それは常に「ver」で始まります。

最終結果:

New file at:  
Server Path 
VIRM-RGR016 D:/PW_RGR_STORAGE/ECX/1197_00/dms00166/ 

Old file at: 
Server Path 
VIRM-RGR016 D:/PW_RGR_STORAGE/ECX/1197_00/dms00166/ver00000 
時には

それはのように作成しています:ver00001、ver00002 ...

私は知らないか、与えられた文書のファイルが入っている場合はどのように私は知ることができますルートまたはサブフォルダ。私は、ドキュメントファイルがどのフォルダにあるかを確実に知る必要があります。

私はこのファイルがその文書に属しているかどうかはわかりません。

私は、PW API(aaApi_CopyOutDocument)がそのことを知っていますが、私はどのようにしているのか分かりません。

この現在のアプリケーションでPW APIを使用することはできません。

おかげ

答えて

1

は、このためにあなたのキャリーを変更してみてください。

SELECT o_node 'Server' 
     ,c.o_path + '/' + b.o_projectcode + '/' + CASE 
      WHEN o_original <> 0 
        THEN 'ver' + REPLICATE('0', 5 - LEN(CAST(a.o_version_seq AS NVARCHAR(MAX)))) + CAST(a.o_version_seq AS NVARCHAR(MAX)) + '/' 
      ELSE '' 
      END + o_filename 'Path' 
FROM [PW_Engevix_ECO].[dbo].[dms_doc] a 
JOIN [PW_Engevix_ECO].[dbo].[dms_proj] b ON a.o_projectno = b.o_projectno 
JOIN [PW_Engevix_ECO].[dbo].[dms_stor] c ON c.o_storno = a.o_storno 

私はこれが動作すると思います...それは魔法のように動作

+0

おかげで、。 –

関連する問題