как заполнить формат (a_content_type) при создании документа в DFS?

Я разрабатываю приложение DFS (на С#), которое импортирует документ в Documentum как dm_document. Документ может быть в любом формате — DOC, DOC, PDF, любом другом. Таким образом, когда я создаю документ, я должен указать соответствующий формат (он будет помещен в a_content_type): «gif», «msw8» и т. д.

Как я могу решить эту задачу? Я просмотрел DFS_66_reference.pdf и справку DFS-SDK - пока не вижу простого решения. Можете ли вы дать мне совет?


person KellyLynch    schedule 04.04.2011    source источник


Ответы (2)


Обычно я делаю то, что предлагает Дэвид для распространенных форматов, с которыми я ожидаю столкнуться. Это имеет дополнительное преимущество, поскольку дает вам ссылку для просмотра при отладке вашего приложения. Для других форматов вы можете сделать следующий запрос.

ДКЛ:

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

Обратите внимание, что это не всегда надежно, поскольку может возвращать несколько результатов для расширения (хорошим примером является XLS), поэтому вам следует решить, как обрабатывать несколько результатов. В этом случае вам, возможно, придется спросить пользователя.

Я бы рекомендовал кешировать ответы в вашем приложении, чтобы вы не делали этот запрос без необходимости. Как сказал Дэвид выше, эти значения не изменятся, пока вы их не измените.

person Brendan Hannemann    schedule 27.06.2011
comment
Спасибо. В дополнение могу сказать: в принципе можно использовать софт, который читает файл и УЗНАЕТ его формат по содержимому. Примером такого программного обеспечения является компонент Oracle Outside In - он распознает СОТНИ форматов. Но это решение, конечно, дорогое - person KellyLynch; 28.06.2011
comment
@KellyLynch да, вы можете попробовать использовать другой инструмент/библиотеку для определения типа (используя MIME или другие заголовки). - person Brendan Hannemann; 14.12.2012

Вы спрашиваете, как сопоставить расширение 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"/>
person David Pierre    schedule 05.04.2011
comment
Ну, мой вопрос был шире - я хотел бы знать лучшее решение проблемы: как указать соответствующий формат, когда моя программа [автоматически, без возможности спросить пользователя] импортирует много документов в Documentum. Да, я понял ваш ответ - это то, что мне нужно. - person KellyLynch; 06.04.2011
comment
Я не вижу, где я предлагаю спросить пользователя. А для более общего решения можно почитать объекты dm_format в докбазе... Но я особо не вижу смысла, эти объекты почти никогда не меняются. Жестко закодированное отображение просто проще. - person David Pierre; 06.04.2011