Upload file from lotus to sql

Тема в разделе "Lotus - Программирование", создана пользователем swyatogor, 6 апр 2016.

Метки:
  1. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    Добрый день..
    Собственно ломаю голову над сабжем..
    Есть пусть получить файл как атач выложить его на диск и потом через стрим вычитать и передать в SQL.. Пытаюсь найти способ короче (без выкладывания на диск).. Что то не получается найти необходимые функции..
    Хотел попользоваться getValueCustomDataBytes - ругается - тип данных не совпадает.. что ей пихнуть не понятно((
    Подскажите в какую сторону копнуть кто знает..
     
  2. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    сомневаюсь, что ошибка типов. Вероятно ошибка, что для атачей вышеупомянутый метод не работает.
     
  3. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    стрим для аттача нужен?
     
  4. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    я с джавой ни бельмес.. потому хз.. если бы все было на LS то траблов бы не было..
     
  5. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    на LS ты не сделаешь. Java надо осваивать.
    На Java можно попробовать так:
    Код (Java):
    EmbeddedObject att = doc.getAttachment("logo.gif");
    InputStream is = att.getInputStream();
    ByteArrayOutputStream fos = new ByteArrayOutputStream();
    byte buffer[] = new byte[(int) att.getFileSize()];
     
    int read;
    do {
    read = is.read(buffer, 0, buffer.length);
    if (read > 0) {
    fos.write(buffer, 0, read);
    }
    } while (read > -1);
     
    fos.close();
    is.close();
    // recycle the domino variables
    doc.recycle();
    db.recycle();
    att.recycle();
    Но даже тут по сути будет детач, но прозрачно для разработчика
     
    #5 NickProstoNick, 6 апр 2016
    Последнее редактирование модератором: 6 апр 2016
  6. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    http://codeby.net/forum/threads/57017/#post-258845 там много чего
    в т.ч. дергание файлов из потока...
    если не сохранять на диск - можно сразу в др. стрим передавать
    см. агент testSAXForFiles
    там на пайпах, в 2-ух нитях, без промежуточных файлов
    достаточно переписать, для своего варианта, консьюмер

    забыл... - используется старая модель SAX - переписывать было лень
    коротко:
    -из дока получаем в поток doc.generateXML(bw)
    -поток через pipe передаем
    Код (Java):
                PipedInputStream in = new PipedInputStream();
                final PipedOutputStream out = new PipedOutputStream(in);
                thread1 = new NotesThread(new DataSource(doc, out));// new FileOutputStream("./out.dxl")));
                thread1.start();
                thread2 = new NotesThread(new DataConsumer(in));// new FileInputStream("./out.dxl")));
                thread2.start();
     
    -в консьюмере обрабатываем как InputStream
     
    #6 lmike, 6 апр 2016
    Последнее редактирование модератором: 6 апр 2016
  7. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    Честно - не совсем понятно для чего такое делать.
     
  8. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    кому вопрос?
     
  9. NickProstoNick

    NickProstoNick Статус как статус :)

    Регистрация:
    22 авг 2008
    Сообщения:
    1.766
    Симпатии:
    39
    риторический :)
     
  10. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    если по БД, выше...
    была древняя идея (не моя, там и ссылка есть) "упростить" общение с SAX
    данный подход - тоже калбэки, но по инъекции конкретных классов, что удобнее написание портянки свича
    про пайпы - экономия памяти и времени обработки (байтэррэй дублирует все что скачали с сервера еще раз в памяти), а время экономится асинхронностью (не ждем получения всего стрима, теоретически)
    можно произвести замеры, но у меня "не дошли руки"
     
  11. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    А если ко мну - то стоит задача - сделать возможность запускать бизнес-процесс в 1С из Lotus)))
     
  12. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @swyatogor, what?
    Вы в аттаче что держите то? Может не надо его в 1С тянуть?
    Что за бс в 1С? (у нас тут сделали odin ass... много хорошего могу сказать про исполнителей)
     
  13. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    @savl, На сколько я могу знать в 1с встроенная система бизнес процессов (может наши что допиливали еще - хз). там красявость есть - визуализированная структура бизнес-процесса с указанием на какой стадии находится процесс (сколько я не думал как это сделать на клиенте лотуса ни как(().. уже года 4 работает.. вроде норм..
    Тащить нуно.. нужно чтобы процессы шли синхронно и в 1с и в лотусе))) и у пользователей была возможность выбора - через какую программу с этим работать).. как то вот так)
     
  14. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    нудык на JS куча визуализаторов
     
  15. savl

    savl Lotus team
    Lotus team

    Регистрация:
    28 окт 2011
    Сообщения:
    2.052
    Симпатии:
    146
    @lmike, так клиент же, не страница... Хотя
    @swyatogor, жесть... ну а аттач то зачем? Это типа документ, текст которого согласовывается?
    Нельзя ссылку просто передавать на файл, а сам файл хранить вне систем?
    А из 1С аттач в лотус тянете?
     
  16. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    #16 lmike, 7 апр 2016
    Последнее редактирование модератором: 7 апр 2016
  17. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    https://habrahabr.ru/sandbox/75826/ ну назвать-то можно... :)
     
  18. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
  19. swyatogor

    swyatogor Lotus team
    Lotus team

    Регистрация:
    24 фев 2014
    Сообщения:
    432
    Симпатии:
    10
    @lmike,
    1. ненаю что там кто говорит про 1с-ку - но у нас реально есть бизнес процессы работающие на ее платформе, любого уровня сложности их утверждают, а потом туда переносят, и они работают..
    2. Не все решения можно отобразить удобоваримо и с требуемой наглядностью (хотя бы повторить функционал 1с-ки) на Basic клиенте лотуса..

    @savl, аттач - необходим скан документа для старта БП в 1с - так поставлена задача..
    Вообще набор полей для старта БП заполняется в форме, к той же форме прикладывается необходимый файлик.. Потом это закидывается в SQL в определенную табличку в определенном формате (файлик как бинарник тоже ложится в SQL только в другую базу, а для БП передается ИД записи)..

    нет.. стоит задача (пока)) только дать возможность стартовать БП в лотусе и потом синхронизировать процесс согласования.. Файлы вроде летать не должны, только документы и их содержание..
     
  20. lmike

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

    Регистрация:
    27 авг 2008
    Сообщения:
    6.083
    Симпатии:
    300
    basic клиент - этож не висящая в воздухе система, она опирается на сервер, ничто не мешает обрабатывать сервером (хттп) и показывать в бэйзик клиенте (http://www-01.ibm.com/support/docview.wss?uid=swg21268588)
    да и потом - почему именно бэйзик? настолько плох бюджет - что компы не меняются 10-летиями ?
    [DOUBLEPOST=1460059339,1460059218][/DOUBLEPOST]см. примеры выше - "просто" JS
     
Загрузка...
Похожие Темы - Upload file from
  1. alxndr
    Ответов:
    3
    Просмотров:
    662
  2. Amfion
    Ответов:
    7
    Просмотров:
    667
  3. susinmn
    Ответов:
    1
    Просмотров:
    1.002
  4. NickProstoNick
    Ответов:
    4
    Просмотров:
    1.329
  5. StarikStarik2705
    Ответов:
    17
    Просмотров:
    4.053

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