Выгрузка документв в DXL, изменение и загрузка обратно в базу

Тема в разделе "Lotus - Программирование", создана пользователем fedotxxl, 5 ноя 2009.

  1. fedotxxl

    fedotxxl Well-Known Member

    Регистрация:
    9 ноя 2005
    Сообщения:
    614
    Симпатии:
    0
    Прошу прощения, что шпарю вопросами...

    Итак, нужно:
    1. Выгрузить notesDocument в domParser
    2. Изменить xml (это я сам)
    3. Загрузить измененный xml обратно в базу

    Код
    не работает, т.к., насколько я понял нельзя повторно вызывать метод .Process для "связанных" парсеров
     
  2. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    ты бы лучше сначала определил почему не работает. см свойство Log, например
     
  3. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    Код (Text):
    'где-то тут объявляется DOMParser

    Set dxlExporter = ns.CreateDXLExporter
    Call dxlExporter.SetInput(nd)
    Call dxlExporter.SetOutput(domParser)

    Dim dxlImporter As NotesDXLImporter
    Set dxlImporter = ns.CreateDXLImporter
    Call dxlImporter.setInput(domParser)
    Call dxlImporter.setOutput(ns.CurrentDatabase)

    Call dxlExporter.Process
    Process надо говорить тока инициатору.
    Это зовётся pipeline, прям как олдскульная песне Депешей :(
     
  4. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    кроме прогресса есть еще импорт и экспорт :(
     
  5. zum

    zum Гость

    Задача такая:
    Есть коллекция документов по одной форме (однотипных)
    Эта коллекция выгружается в DXL
    Документ простой несколько полей.
    Выгружается дабы, отредактировать данные и добавить еще много много таких документов, токо с другими значениями.
    Ну и затем импортируется обратно

    Проще говоря, выгружаем получаем шаблон документа, добавляем по шаблону еще.

    Вопрос собственно, такой
    Это вообще идея здравая или можно еще чтото придумать?
    Может кто уже сталкивался с похожей проблемой?
    И если здравая есть, какой-нить удобный редактор? или придется его написать?
     
  6. Omh

    Omh Lotus team
    Lotus team

    Регистрация:
    4 июл 2007
    Сообщения:
    2.210
    Симпатии:
    0
    DXLExporter -> DOMParser -> DXLImporter

    Если охота ручками, то, кмк, лучше notepad++ ничего нет.
     
  7. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    zum
    А почему нельзя просто копировать нотусовый документ и править в нём поля на эти самые другие значения?
     
  8. ToxaRat

    ToxaRat Чёрный маг
    Lotus team

    Регистрация:
    6 ноя 2007
    Сообщения:
    3.046
    Симпатии:
    18
    ну правильно, можно целую колекцию скормить :rolleyes:
     
  9. zum

    zum Гость

    ну из этого поста, понимаю что идея сама по себе не совсем больная.
    вот кусок документа
    Код (Text):
    <document form='formCompani'>
    <noteinfo noteid='1c542' unid='4A04C43E86BFA669C3257678002F0E56' sequence='2'>
    <created><datetime>20091124T113358,62+03</datetime></created>
    <modified><datetime>20091124T113406,33+03</datetime></modified>
    <revised><datetime>20091124T113406,32+03</datetime></revised>
    <lastaccessed><datetime>20091124T113406,32+03</datetime></lastaccessed>
    <addedtofile><datetime>20091124T113406,17+03</datetime></addedtofile></noteinfo>
    <updatedby><name>CN=User/O=SERV</name></updatedby>
    <revisions><datetime>20091124T113406,17+03</datetime></revisions>
    <item name='txtNameCompani'><text>Тест</text></item>
    <item name='Iss'><text>1</text></item></document>
    </database>
    Возникли следующие вопросы:
    1) что будет если передать юнид "00000...000"?
    2) что будет если будут одинаковые юниды?
    3) вся ли информация тут нужна? в частности noteinfo,revisions.



    Добавлено:
    Потому что, докуентов может быть тысячи...
    Я сделаю загрузку из фала по полям, или из экселевкой или еще какой таблицы не суть...
    Просто дают список большой, в каком угодно формате нужно будет создать сооветсвенно списку документы
     
  10. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Так тем более. Собственно создание документа через DXL гораздо тормознее, чем напрямую.
    Другое дело, из внешнего файла брать данные для заполнения новых документов-копий.

    Поведение задаётся через св-во NotesDXLImporter.DocumentImportOption
     
  11. zum

    zum Гость

    Ну сначала необходимо список весь получит, в лубом случае
    Чтобы пользователь видел, что будет добавлено. Ну или заменено.
    И чтоб, можно было и ручками добавить... кароч большой функционал редактирования, будет, тогды
    И источник может быть, в любом формате.

    Вот... А скорость не критично, установка начальных данных, один раз будет делаться.

    Дак чего по пунктам 1,2,3? Ктонить знает?
     
  12. Klido

    Klido Гость

    почитай про импорт в базу (создание документов) форматированных файлов, например, с помощью файла-настроек .col -создаёт документы без всякого dxl...
     
  13. Akupaka

    Akupaka А че я?.. О.о

    Регистрация:
    4 окт 2007
    Сообщения:
    3.373
    Симпатии:
    2
    см notesDXLImporter.DocumentImportOption

    и ты хочешь чтобы программа, которая экспортирует файл формировала весь DXL?
    а не проще будет свой XML формат сделать, и написать код, который будет его читать и создавать уже документы по данным оттуда, а не надеятся, что лотус съест DXL?

    от блин, шустрый TIA :rolleyes: радует, что разные люди мыслят схожими вариантами реализации ))
     
  14. Klido

    Klido Гость

    т.е. ты лотусиную базу хочешь в dxl всю выплюнуть, загрузить куда-то+внешние данные, поработать дать там юзеру и потом обратно в базу лотуса качнуть? ох-хо-хо...
     
  15. zum

    zum Гость

    А если будет другой шаблон?
    Тобишь мне надо написать алгоритм который, структуру документов создаст...
    хм... по сути тоже самое что и DXL.

    То есть я хочу сделать так:
    notesDXLExporter делает шаблон, я в него программно добавлю документы из внешнего источника.
    и обратно
     
  16. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Тогда берешь другой документ-шаблон и копируешь его.
     
  17. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.073
    Симпатии:
    299
    шаблоны шаблонами, но в алгоритме мне ненра создание доков (особливо массовое) "единомоментно"
    часы на сервере "убегут" однозначно :(
    ведь док можно и апдейтить (уже существующие) доки, кот. можно создавать "пулами" в к-л ненагрузочное время, с запасом
     
  18. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Уже не так однозначно. Дыры затыкаются.
     
  19. zum

    zum Гость

    Ну если кому интересно, то программа написана.
    Работает стабильно, импорт примерно 100 док в секунду
    Сервер не умирает, нигде ничего не убегает. тьфу-тьфу-тьфу
     
  20. TIA

    TIA :-)
    Lotus team

    Регистрация:
    15 май 2009
    Сообщения:
    790
    Симпатии:
    0
    Ну, левой рукой правое ухо тоже можно чесать. Не удобно только.
     
Загрузка...
Похожие Темы - Выгрузка документв DXL
  1. Mikle_GB
    Ответов:
    12
    Просмотров:
    631
  2. KapitoliyKakoyTo
    Ответов:
    1
    Просмотров:
    2.796
  3. JohnLemon
    Ответов:
    47
    Просмотров:
    2.723
  4. Надя1972
    Ответов:
    0
    Просмотров:
    638
  5. AndreiBY
    Ответов:
    0
    Просмотров:
    1.326

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