2011-04-04 67 views
2

我正在開發一個將文檔作爲dm_document導入Documentum的DFS應用程序(оnС#)。文檔可以採用任何格式 - DOC,DOC,PDF,等等。因此,當我創建一個文檔時,我必須指定相應的格式(它將被放入a_content_type中):「gif」,「msw8」等。在DFS中創建文檔時如何填充格式(a_content_type)?

我該如何解決此任務?我已經瀏覽了DFS_66_reference.pdf和DFS-SDK的幫助 - 還沒有看到簡單的解決方案。你能給我一個建議嗎?

回答

0

您是否在問如何將dos擴展名與Documentum格式相匹配?

如果是,最簡單的方法就是直接在應用程序中對映射進行硬編碼。

在Webtop文件wdk/app.xml中有它使用的映射。

以下是我在我的:

   <format extension="txt" name="crtext"/> 
       <format extension="xls" name="excel8book"/> 
       <format extension="doc" name="msw8"/> 
       <format extension="ppt" name="ppt8"/> 
       <format extension="vsd" name="vsd"/> 
       <format extension="zip" name="zip"/> 
       <format extension="wpd" name="wp8"/> 
       <format extension="psd" name="photoshop6"/> 
       <format extension="au" name="audio"/> 
       <format extension="jpeg" name="jpeg"/> 
       <format extension="jpg" name="jpeg"/> 
       <format extension="html" name="html"/> 
       <format extension="htm" name="html"/> 
       <format extension="ai" name="illustrator10"/> 
+0

嗯,我的問題更廣泛 - 我想知道問題的最佳解決方案:如何指定相應的格式,當我的軟件[自動,無需詢問用戶]可以將大量文檔導入Documentum。是的,我已經理解你的答案 - 這是我需要的。 – KellyLynch 2011-04-06 07:34:29

+0

我沒有看到我建議詢問用戶的位置。而對於更通用的解決方案,您可以閱讀文檔庫中的dm_format對象......但我並沒有真正瞭解這一點,這些對象幾乎不會改變。硬編碼映射更簡單。 – 2011-04-06 11:51:35

3

我通常做什麼大衛建議,凡我期待着遇到的常見格式。這有額外的好處,可以在調試應用程序時給你一個參考。對於其他格式,您可以進行以下查詢。

DQL:

SELECT name from dm_format WHERE dos_extension = lower('<extension>') 

請注意,這並不總是可靠的,因爲它可以返回一個擴展多個結果(XLS是一個很好的例子),所以你應該決定如何處理多個結果。在這種情況下,您可能需要詢問用戶。

我建議在應用程序中緩存響應,以免不必要地執行此查詢。正如戴維上面所說,除非你改變它們,否則這些值不會改變。

+0

謝謝。另外我可以告訴:原則上可以使用讀取文件並通過其內容識別其格式的軟件。這種軟件的例子是Oracle Outside In組件 - 它可以識別100種格式。但是,這個解決方案當然是昂貴的一個。 – KellyLynch 2011-06-28 06:51:28

+0

@KellyLynch是的,你可以嘗試使用其他工具/庫來確定類型(使用MIME或其他頭文件)。 – 2012-12-14 15:58:22