C# открыть экспортированный DXL как NotesDocument

Кто-нибудь знает, возможно ли открыть DXL (Domino XML) как объект NotesDocument?

Когда клиент Notes установлен, вы можете добавить ссылку на "Interop.Domino" и использовать объекты Domino с C#. На самом деле я пробовал некоторые вещи DXLImporter, но безуспешно... Кажется, что DXLImporter может импортировать только в NotesDatabase.

Есть ли способ открыть экспортированный файл DXL (NotesStream) в качестве NotesDocument для доступа к содержимому в качестве объектов Notes? (особенно Рихтекст)

Любая идея? Большое спасибо.

// SiL

1 ответ

Решение

NotesDocument- объект никогда не может стоять один. Ему всегда нужна родительская база данных. Это верно независимо от того, как вы получаете объект NotesDocument. В вашем особом случае вам нужен "тупой" контейнер nsf, который вы используете для импорта XML. После импорта вы можете получить доступ к NotesDocument.

Вам нужно найти документ, используя его universalid. Этот универсал можно найти в XML как "unid"- свойство nodeinfo-узла:

<document xmlns='http://www.lotus.com/dxl' version='9.0' maintenanceversion='1.4' 
  replicaid='C1257C270049C111' form='Offer'>
  <noteinfo noteid='188a6' unid='FE4CB54C2D7C9ABCC1257E620027FCE4' sequence='3'>

Как заявил Стэн в комментариях, это может или не может работать. Импортированный документ может получить другой Universalid, если документ с таким UNID уже существует и / или параметры импорта установлены соответствующим образом. Лучший пользователь NotesDXLExporter.GetFirstImportedNoteID для получения документа.

Вы даже можете импортировать всю базу данных из xml-структуры, но это может быть слишком затратно для такой простой задачи, но, конечно, это зависит от ваших потребностей.

в качестве "хака" или "обходного пути" вы можете импортировать этот документ в базу данных, которая всегда есть в любом клиенте Lotus Notes, например, bookmark.nsf или names.nsf, но я бы не рекомендовал это делать.

Другие вопросы по тегам