• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

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

    Запись на курс до 25 апреля. Получить промодоступ ...

Notesdocument - MS Word - Notesdocument

imendan

Green Team
22.09.2010
159
4
BIT
0
Всем привет! Прошу помощи.
Задача такая: проект (NotesDocument) прилетает на согласование юзеру. В проекте вложенный MS Word документ. Юзер кликает ворд-файл и вносит в него поправки. В ворд-файле нужно нарисовать кнопку "Отправить замечания Lotus Notes", которая сохраняет новую версию проекта и отправляет уведомление автору. Скажите, мастера Lotus Domino, не сошел ли я с ума. Возможно ли такое сделать в природе? (Если вы считаете данное невозможным или слишком сложным, есть ли у вас альтернатива?)

Спасибо за внимание!
 
A

Anatoly

После открытия вордовского файла в одно из свойств/переменных файла пишем UNID дока и передаем управление Word.
После внесения изменений отрабатываем кнопку в Worde по обработке изменений. Соответственно в кнопке:
1) Устанавливаем связь с базой/сервером
2) По имеющемуся UNID получаем документ с исходной версией файла.
3) Создаем к нему наследника и аттачим сохраненный вариант файла с правками.
4) Кидаем автору исходного варианта письмо со ссылкой на документ с правками.
Где-то так. C Basic'ом в Word'е особых проблем быть не должно, синтаксис не сильно отличается от LotusScript
 

imendan

Green Team
22.09.2010
159
4
BIT
0
После открытия вордовского файла в одно из свойств/переменных файла пишем UNID дока и передаем управление Word.
После внесения изменений отрабатываем кнопку в Worde по обработке изменений. Соответственно в кнопке:
1) Устанавливаем связь с базой/сервером
2) По имеющемуся UNID получаем документ с исходной версией файла.
3) Создаем к нему наследника и аттачим сохраненный вариант файла с правками.
4) Кидаем автору исходного варианта письмо со ссылкой на документ с правками.
Где-то так. C Basic'ом в Word'е особых проблем быть не должно, синтаксис не сильно отличается от LotusScript

Один в один я и представлял. А есть ссылки с примерами? Куда проще было бы :)
[doublepost=1487050235,1487044436][/doublepost]В шагах 3 и 4 разобрался ( )
Вот как передать в открываемый Word UNID notes-документа (вариант передачи в названии файла не очень нравится)?
[doublepost=1487054596][/doublepost]В ворде создал макрос (
). Так некрасиво. Думал можно будет создать кнопку, которая мгновенно будет выполнять скрипт.
С макросом как-то некрасиво. Запускаешь его, потом выбираешь. Совсем не то.
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
После открытия вордовского файла в одно из свойств/переменных файла пишем UNID дока и передаем управление Word.
После внесения изменений отрабатываем кнопку в Worde по обработке изменений. Соответственно в кнопке:
1) Устанавливаем связь с базой/сервером
желательно DDA (будет вопрос секурити и атентификации), а не вызовом КОМ нотуса
2) По имеющемуся UNID получаем документ с исходной версией файла.
юнид в имени файла, при сохранении на диск, как временный файл и открытия ср-вами ОС
3) Создаем к нему наследника и аттачим сохраненный вариант файла с правками.
агент по DDA, есть тонкости с локировкой файла
4) Кидаем автору исходного варианта письмо со ссылкой на документ с правками.
стоит подумать, зависит от архитектуры приложения и используемой почтовой системы
Где-то так. C Basic'ом в Word'е особых проблем быть не должно, синтаксис не сильно отличается от LotusScript
общий посыл - использование http, а не КОМ
ссылки на DDA м.б. временными (чтобы не морочиться с паролем и пользователем)
Т.о. весь основной код будет на домине, а вордятине только ссылка, для POST измененного файла
детали, разумеется надо обдумывать
[doublepost=1487062669,1487062526][/doublepost]
Вот как передать в открываемый Word UNID notes-документа (вариант передачи в названии файла не очень нравится)?
в теле в виде ссылки/в св-вах документа....
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
А что такое DDA? Есть ссылки с примерами?
я, наверняка, внес сумятицу термином без ссылки ;) извините
говорил об этом


[doublepost=1487089066,1487081502][/doublepost]смысл действа таков:
- создаем док для отредактированного аттача
- открывает вордятину на детаченом (в темп) файле
- юнид из первого шага прописываем в св-ва файла, доступным способом, причем можем туда и ссылку для домины всобачить
- т.к. использование сервиса позволяет нам менять документ - мы эти и воспользуемся
- формируем json (как позволяют обстоятельства) и PUT его (по ссылке из предыдущих шагов)
как-то так
- заенкодить файло мы можем ср-вами ОС (скриптом, кот. услужливо положим рядом с вордятиной)

Т.о. мы можем не писать макросы в ворде, а написать ОС зависимые скрипты по работе, кот. складывать в домине (и выгружать вместе с вордятиной), и скрипт вызывать из вордятины (или вордятину открывать из скрипта, с ожиданием окончания его заюзывания)
т.к. док мы создавали временный и юнид известен только нам, секурити "условно" будет соблюдена (можно в отдельной БД, с анонимным доступом/спецюзера, на запись, делать это)

ЗЫЖ я не пытался отправлять так аттачи, но мну хочет верить ;)
[doublepost=1487089443][/doublepost]кста - вот
 
Последнее редактирование:

ToxaRat

Чёрный маг
Green Team
06.11.2007
3 332
42
BIT
0
сохранить ворд в XML увидеть разницу версий, указать её в уведомлении ;)
 

lmike

нет, пердело совершенство
Lotus Team
27.08.2008
7 941
609
BIT
214
допущение для скрипта - файло детачим во временный каталог (кот. создаем для каждого детача)
и этот каталог мониторим
на предмет Watcher.Delete после запука вордятины с ворд файлом!
а вот мониторим временный файл, кот. создает водятина


делать можно и через опрос процессов, с открытым файлом (по имени файла), в цикле (с засыпанием, код, здесь, выкладывал)
в каждом подходе есть тонкости

для чего эти все заморочки с файлом и DAS (Domino Data Access Service, тоже самое что и DDA, как выше я называл)!?
это специфика интерактивной работы:
- не блокировать нотусевого клиента
- не зависеть от того - когда юзер наиграется с файлом (в завершение "внешней" команды)
- более-менее контролировать момент окончания правок
- не быть завязанными на программирование в вордбэйсик (еще та забава- VB более коряв чем LS, и КОМы юзать полюбому придется)
- писать можно на любом языке, кот. нра и RT поддержвается ОС
 

garrick

Lotus Team
26.10.2009
1 351
151
BIT
187
там же все через... КОМ
будут разные траблы
COM это в Microsoft Office Documents Library, а я простую Documents Library имел ввиду. Там согласования, уведомления, версии документов, права доступа. А документы любые можно в виде аттачей вкладывать.
[doublepost=1487358220,1487358049][/doublepost]
В дистрибутиве Lotus Notes есть набор стандартных шаблонов - там поищите.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!