ОБСУЖДЕНИЕ

Notesdocument - MS Word - Notesdocument

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

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

Один в один я и представлял. А есть ссылки с примерами? Куда проще было бы :)
[doublepost=1487050235,1487044436][/doublepost]В шагах 3 и 4 разобрался (http://www.fabalou.com/vbandvba/lotusnotesmail.asp)
Вот как передать в открываемый Word UNID notes-документа (вариант передачи в названии файла не очень нравится)?
[doublepost=1487054596][/doublepost]В ворде создал макрос (
). Так некрасиво. Думал можно будет создать кнопку, которая мгновенно будет выполнять скрипт.
С макросом как-то некрасиво. Запускаешь его, потом выбираешь. Совсем не то.
 
После открытия вордовского файла в одно из свойств/переменных файла пишем UNID дока и передаем управление Word.
После внесения изменений отрабатываем кнопку в Worde по обработке изменений. Соответственно в кнопке:
1) Устанавливаем связь с базой/сервером
желательно DDA (будет вопрос секурити и атентификации), а не вызовом КОМ нотуса
2) По имеющемуся UNID получаем документ с исходной версией файла.
юнид в имени файла, при сохранении на диск, как временный файл и открытия ср-вами ОС
3) Создаем к нему наследника и аттачим сохраненный вариант файла с правками.
агент по DDA, есть тонкости с локировкой файла
4) Кидаем автору исходного варианта письмо со ссылкой на документ с правками.
стоит подумать, зависит от архитектуры приложения и используемой почтовой системы
Где-то так. C Basic'ом в Word'е особых проблем быть не должно, синтаксис не сильно отличается от LotusScript
общий посыл - использование http, а не КОМ
ссылки на DDA м.б. временными (чтобы не морочиться с паролем и пользователем)
Т.о. весь основной код будет на домине, а вордятине только ссылка, для POST измененного файла
детали, разумеется надо обдумывать
[doublepost=1487062669,1487062526][/doublepost]
Вот как передать в открываемый Word UNID notes-документа (вариант передачи в названии файла не очень нравится)?
в теле в виде ссылки/в св-вах документа....
 
А что такое DDA? Есть ссылки с примерами?
я, наверняка, внес сумятицу термином без ссылки ;) извините
говорил об этом https://www-10.lotus.com/ldd/ddwiki.nsf/xpAPIViewer.xsp?lookupName=IBM+Domino+Access+Services+9.0.1
https://www-10.lotus.com/ldd/ddwiki.nsf/dx/Create_your_own_Domino_REST_service_using_DAS

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

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

ЗЫЖ я не пытался отправлять так аттачи, но мну хочет верить ;)
[doublepost=1487089443][/doublepost]кста - вот пример бинарника
 
Последнее редактирование:
сохранить ворд в XML увидеть разницу версий, указать её в уведомлении ;)
 
допущение для скрипта - файло детачим во временный каталог (кот. создаем для каждого детача)
и этот каталог мониторим https://msdn.microsoft.com/en-us/library/system.io.filesystemwatcher.aspx
на предмет Watcher.Delete после запука вордятины с ворд файлом!
а вот мониторим временный файл, кот. создает водятина
http://stackoverflow.com/questions/760904/how-can-i-monitor-a-windows-directory-for-changes

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

для чего эти все заморочки с файлом и DAS (Domino Data Access Service, тоже самое что и DDA, как выше я называл)!?
это специфика интерактивной работы:
- не блокировать нотусевого клиента
- не зависеть от того - когда юзер наиграется с файлом (в винде Shell не будет ждать завершение "внешней" команды)
- более-менее контролировать момент окончания правок
- не быть завязанными на программирование в вордбэйсик (еще та забава- VB более коряв чем LS, и КОМы юзать полюбому придется)
- писать можно на любом языке, кот. нра и RT поддержвается ОС
 
там же все через... КОМ
будут разные траблы
COM это в Microsoft Office Documents Library, а я простую Documents Library имел ввиду. Там согласования, уведомления, версии документов, права доступа. А документы любые можно в виде аттачей вкладывать.
[doublepost=1487358220,1487358049][/doublepost]
В дистрибутиве Lotus Notes есть набор стандартных шаблонов - там поищите.
 

Похожие темы

Ответы
76
Просмотры
54 тыс.

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

Создано
imendan,
Последний ответ от
garrick,
Ответы
12
Просмотры
4 164