ОБСУЖДЕНИЕ

Быстрый способ сохранить все вложения из выделенных документов

39 ответов 19,9 тыс.
AI-выжимка обсуждения скоро

Краткие тезисы обсуждения со ссылками на ключевые ответы появятся здесь.

Автор темы
Самое простое решение, сохранить все вложения из выбранных документов в представлении:

- помечаем документы в представлении
- на выделенных документах, правой кнопочкой мыши из контекстного меню выбираем "Forward"
- создается документ содержащий выделенный документы
- отправлять ничего не надо, в открывшемся документе кликаем правой кнопкой мыши по любому вложенному файлу,
в контекстном меню выбираем - "Save All" , указываем путь и сохраняем. Все.


P.S. Конечно , данную процедуру лучше реализовать на LS, но бывает иногда просят сделать очень срочно...
 
Вот оно как оказывается можно!
 
Я бы не сказал, что способ "быстрый" - он же все аттачи перевставляет в новый док, да еще и рич-текст рендерит... Но для юзера подойдет! :-)
 
Я бы не сказал, что способ "быстрый" - он же все аттачи перевставляет в новый док, да еще и рич-текст рендерит... Но для юзера подойдет! :-)

Именно, для юзера его и показал... Звонит юзер и говорит: "Как можно из данной базы срочно вынуть вложения по N документам?" . На предложения подождать, пока напишу агент, юзер не реагирует - ему нужно срочно в течение минуты- двух... вот оно решение - самое простое. Конечно я напишу агент и буду держать его на готове на будущее... Но для тех, кто сам не пишет - можно использовать данный способ.
 
А Darker код потер... С чего бы это?
 
Akupaka просто, подумал, что это лишнее, ведь человек проще способ придумал
 
Darker, у вас способы разные. Код бы не помешал в теме, может кому-то именно твой вариант подошел бы :)
 
Darker, у вас способы разные. Код бы не помешал в теме, может кому-то именно твой вариант подошел бы :)
Согласен, когда есть готовый универсальный код, его всегда можно быстро внедрить в бд :)
 
Код:
	Dim s As New NotesSession
Dim col As NotesDocumentCollection
Dim doc As NotesDocument
Dim o As NotesEmbeddedObject
Set col=s.CurrentDatabase.UnprocessedDocuments
If col.Count=0 Then End
path="c:\Temp"
Set doc=col.GetFirstDocument
For i=1 To col.Count
attNames=Evaluate("@AttachmentNames(1)",doc)
Forall a In attNames
Set o=doc.GetAttachment(a)
o.ExtractFile(path+"\"+a)
End Forall
Set doc=col.GetNextDocument(doc)
Next
 
Darker
Только не мешало бы проверочку — в разных документах могут оказаться одноимённые вложения.
 
+ темповую папку нормально получать...
PS: link removed
 
Darker
помимо ограничений с именами, упомянутых nvy , есть ограничения и по спсобу вложения, и типу поля боди (м.б. майм)
есть "универсальный" в широком дипозоне :) - тот что проекте для ПДФ (на кот. я здесь ссылался неоднократно)
он основан на DXL и SAX (с именами там "проблема" не решалась - не было задачи)
 
Господа, не допиливаем автора, а допиливаем код! :)
 
Может сюда еще прикрутить на валидность документа? а-ля (not .Isdeleted) и .isValid?
 
Если мне не изменяет память, то не все аттачи лежат в доке, могут лежать в РТ-полях, для таких надо идти через поле.
Вот, попробуй отправить док из вне на лотус, и изнутри. В первом случае вложения будут в доке, а во втором должны быть в поле Боди.
 
и не забываем про майм!
@AttachmentsNames(1) его не увидит

да и в "общем" - не всегда нужно получать оригинальный файл, и взаимодействие с ФС м.б. ограничено
 

Статистика тем

Создано
phantom76,
Последний ответ от
lmike,
Ответы
39
Просмотры
19 908