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

Тема в разделе "Lotus - Программирование", создана пользователем phantom76, 29 июн 2010.

  1. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    Самое простое решение, сохранить все вложения из выбранных документов в представлении:

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


    P.S. Конечно , данную процедуру лучше реализовать на LS, но бывает иногда просят сделать очень срочно...
     
  2. Darker

    Darker Гость

    Вот оно как оказывается можно!
     
  3. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    phantom76 ,
    смекалка наше фсе!

    Рекомендую NotesUIWorkspace.CurrentView.Documents заменить на NotesDatabase.UnprocessedDocuments
     
  4. Мыш

    Мыш Lotus team
    Lotus team

    Регистрация:
    12 фев 2008
    Сообщения:
    1.019
    Симпатии:
    8
    Я бы не сказал, что способ "быстрый" - он же все аттачи перевставляет в новый док, да еще и рич-текст рендерит... Но для юзера подойдет! :)
     
  5. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Ну да, если надо пару фильмов по гигу выгрузить, то будет долго )))
     
  6. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    Именно, для юзера его и показал... Звонит юзер и говорит: "Как можно из данной базы срочно вынуть вложения по N документам?" . На предложения подождать, пока напишу агент, юзер не реагирует - ему нужно срочно в течение минуты- двух... вот оно решение - самое простое. Конечно я напишу агент и буду держать его на готове на будущее... Но для тех, кто сам не пишет - можно использовать данный способ.
     
  7. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    А Darker код потер... С чего бы это?
     
  8. Darker

    Darker Гость

    Akupaka просто, подумал, что это лишнее, ведь человек проще способ придумал
     
  9. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Darker, у вас способы разные. Код бы не помешал в теме, может кому-то именно твой вариант подошел бы :)
     
  10. phantom76

    phantom76 Lotus team
    Lotus team

    Регистрация:
    25 фев 2005
    Сообщения:
    363
    Симпатии:
    9
    Согласен, когда есть готовый универсальный код, его всегда можно быстро внедрить в бд :)
     
  11. Darker

    Darker Гость

    Код (LotusScript):
        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
     
  12. nvyush

    nvyush Lotus team
    Lotus team

    Регистрация:
    22 апр 2009
    Сообщения:
    2.317
    Симпатии:
    0
    Darker
    Только не мешало бы проверочку — в разных документах могут оказаться одноимённые вложения.
     
  13. hosm

    hosm * so what *

    Регистрация:
    18 май 2009
    Сообщения:
    2.450
    Симпатии:
    7
  14. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    Darker
    помимо ограничений с именами, упомянутых nvy , есть ограничения и по спсобу вложения, и типу поля боди (м.б. майм)
    есть "универсальный" в широком дипозоне :) - тот что проекте для ПДФ (на кот. я здесь ссылался неоднократно)
    он основан на DXL и SAX (с именами там "проблема" не решалась - не было задачи)
     
  15. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Господа, не допиливаем автора, а допиливаем код! :)
     
  16. Darker

    Darker Гость

    Может сюда еще прикрутить на валидность документа? а-ля (not .Isdeleted) и .isValid?
     
  17. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Если функция будет универсальна - да, если на выделенных доках - не обязательно ))
     
  18. Darker

    Darker Гость

    это как?
    Разве @AttachmentsNames(0 или 1) может что-то упустить?
     
  19. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    Если мне не изменяет память, то не все аттачи лежат в доке, могут лежать в РТ-полях, для таких надо идти через поле.
    Вот, попробуй отправить док из вне на лотус, и изнутри. В первом случае вложения будут в доке, а во втором должны быть в поле Боди.
     
  20. lmike

    lmike нет, пердело совершенство
    Команда форума Lotus team

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    и не забываем про майм!
    @AttachmentsNames(1) его не увидит

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

Поделиться этой страницей