Форум программистов, компьютерный форум, киберфорум
HCL Notes: Программирование
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.97/63: Рейтинг темы: голосов - 63, средняя оценка - 4.97
roddm

Ssjs И Activexobject

19.05.2014, 23:24. Показов 12642. Ответов 21
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
При выполнении следующего SSJS:

Code
1
var objWord = new ActiveXObject("Word.Application")
сервер выдает ошибку:
20.05.2014 15:14:48 HTTP JVM: com.ibm.xsp.webapp.FacesServlet$Extended ServletException: com.ibm.xsp.exception.EvaluationExceptio nEx: Error while executing JavaScript computed expression
20.05.2014 15:14:48 HTTP JVM: CLFAD0134E: Exception processing XPage request. For more detailed information, please consult error-log-0.xml located in D:/Lotus/Domino/data/domino/workspace/logs
В log-файле ничего вразумительного не нашел.
В случае CSJS данная конструкция отрабатывает нормально.
В чем проблема с созданием объекта ActiveX на стороне сервера?

Кроме того, попробовал сделать аналогичный эксперимент с агентами. Простейший агент выполняется на клиенте отлично.

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
Sub Initialize
Dim session As NotesSession
Dim db  As NotesDatabase
Dim agent   As NotesAgent
 
Set session = New NotesSession
Set db  = session.CurrentDatabase
Set agent   = session.CurrentAgent
 
Dim Obj As Variant
 
Set Obj = CreateObject("Word.Application")
Obj.Documents.Open "D:\Temp\test.doc"
 
If Obj.ActiveDocument.ReadOnly Then
Print "Obj.ActiveDocument.ReadOnly"
End If
 
Obj.ActiveDocument.Save
Obj.Application.Quit(True)
End Sub
При запуске этого же агента на сервере (Call agent.RunOnServer()) Word запускается и виснет, при этом агент выдает сообщение, что файл открыт как ReadOnly.
В чем проблема? Почему ReadOnly? Почему Word виснет?
Сервер - Release 9.0.1FP1, Windows/Longhorn/64 6.1
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.05.2014, 23:24
Ответы с готовыми решениями:

Обновление Полей В Ssjs
Всем привет. добрался и я к Xpage. работаю над первым проектом и солкнулся с траблом как обновить несколько полей. искал инфу и все...

SSJS а что у нас с датами
а вот с датами у "нас" некоторый конфуз Код (Javascript): var keys = ; keys.push(context.getUser().getCommonName()); var dt =...

Activexobject
Есть некий ОСХ, нужно его встроить на страницу. Объясните как и что ... ни когда не работал

21
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
20.05.2014, 11:41
На сервере запускать Word. Зачем?
ActiveX официально обрабатываются только Microsoft Internet Explorer и операционной системой Microsoft Windows/

В LS ты создаешь COM/OLE объект.
Нужен экспорт в Word - делай связку с агентом LS
0
roddm
21.05.2014, 22:00
Цитата Сообщение от NickProstoNick
Нужен экспорт в Word - делай связку с агентом LS
Вот я и сделал LS-агент.
Только при запуске на сервере (Call agent.RunOnServer()) Word почему-то открывает файл в режиме чтения. Соответственно при попытке сохранить файл Word подвисает.
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
22.05.2014, 15:27
1. На сервере сам Office установлен?
2. Нужно обрабатывать ситуацию с заблокированным документом

Code
1
2
3
4
5
6
    If Obj.ActiveDocument.ReadOnly Then
Print "Obj.ActiveDocument.ReadOnly"
End If
 
Obj.ActiveDocument.Save
Obj.Application.Quit(True)
Странноватая конструкция. Если ты узнаешь, что документ заблокирован - зачем его пытаться сохранять?
0
roddm
22.05.2014, 23:04
Цитата Сообщение от NickProstoNick
1. На сервере сам Office установлен?
Конечно! Пробовал на разных серверах Domino 8.5.3 и 9.0.1.


Цитата Сообщение от NickProstoNick
2. Нужно обрабатывать ситуацию с заблокированным документом
<!--shcode--><pre><code class=lsscript> If Obj.ActiveDocument.ReadOnly Then
Print "Obj.ActiveDocument.ReadOnly"
End If[/CODE]
Агент тестовый. Сообщение выведено для того, чтобы разобраться почему не сохраняется документ и виснет Word.
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
25.05.2014, 11:25
Цитата Сообщение от roddm
Конечно! Пробовал на разных серверах Domino 8.5.3 и 9.0.1.
Агент тестовый. Сообщение выведено для того, чтобы разобраться почему не сохраняется документ и виснет Word.
Зачем сохранять документ, если он заблокирован? даже если агент тестовый. Код надо писать правильно
0
roddm
25.05.2014, 23:14
Цитата Сообщение от NickProstoNick
Код надо писать правильно
1 шаг. Я написал агент, который только открывает документ и сохраняет его. Так правильно?
2 шаг. После того как Word подвис пришлось разбираться с причиной. Для этого прописал проверку на Obj.ActiveDocument.ReadOnly.
Так правильно?
3 шаг. Убедившись что Word открывает документ только для чтения попробовал:
а) запустить агент на другом сервере;
б) проверил права на доступ к папке, в которой находится документ;
в) проверил права локального администратора на сервере и запустил сервер Domino как сервис под аккаунтом локального администратора.
Так правильно?

Тогда как правильнее?
Возможно Вы знаете ПОЧЕМУ Word открывает документ только для чтения?
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
26.05.2014, 12:15
Ты явно упускаешь один момент и не хами!

ты привел код

LotusScript
1
2
3
4
5
6
    If Obj.ActiveDocument.ReadOnly Then
Print "Obj.ActiveDocument.ReadOnly"
End If
 
Obj.ActiveDocument.Save
Obj.Application.Quit(True)
Согласно твоего кода документ сохраняется в любом случае (доступен документ на редактирование или нет). Думаю это может привести к ошибке и объект не выгрузится. И при следующем запуске ты получишь ошибку, что документ занят и получишь его только для чтения.
Проверь процессы ОС. Возможно в памяти висят не закрытые процессы Word.
В общем обрабатывай ошибки и удаляй объекты.
Ну и надеюсь что Wodr-документ не ограничен внутренними средствами офиса

А в принципе - твой код рабочий. У меня никаких проблем не возникло.
0
roddm
26.05.2014, 23:50
Цитата Сообщение от NickProstoNick
И при следующем запуске ты получишь ошибку, что документ занят и получишь его только для чтения.
Документ открывается в режиме чтения при первом (и единственном) запуске агента после перезагрузки Windows и старта Domino.
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
27.05.2014, 11:10
вложи свой документ Word сюда
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
27.05.2014, 11:43
а может проще POI или https://code.google.com/p/xdocreport/ использовать, а не решать проблемы кот. создает интерактив от МСО ?
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
27.05.2014, 12:02
Цитата Сообщение от lmike
а может проще POI или https://code.google.com/p/xdocreport/ использовать, а не решать проблемы кот. создает интерактив от МСО ?
Не думаю что в этом случае будет проще.
К тому же XDocReport держит только новые форматы docx
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
27.05.2014, 15:12
Цитата Сообщение от NickProstoNick
Не думаю что в этом случае будет проще.
зависит от уровня взаимодействия


К тому же XDocReport держит только новые форматы docx
и это скорей хорошая новость
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
27.05.2014, 15:31
Цитата Сообщение от lmike
зависит от уровня взаимодействия
Зависит от умений


Цитата Сообщение от lmike
и это скорей хорошая новость ;)
Ну как сказать
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
27.05.2014, 17:07
Ну как сказать
я из сугубо практических соображений, ОЛЕ ФС и прочая бинарная хэрь от МС - это жуткий месс и избавление от него дает положительный сдвиг
0
roddm
27.05.2014, 22:44
Почитал на форуме о проблемах с выгрузкой данных в Excel и попробовал по аналогии создать папку Desktop в подкаталогах:
C:\Windows\SysWOW64\config\systemprofile \
C:\Windows\System32\config\systemprofile \

После этого при ПЕРВОМ запуске агент нормально открывает документ Word-a на чтение-запись, вносит данные, сохраняет. Все красиво.
При последующих запусках агента - снова открытие файла в режиме только чтения.

Однако есть интересная закономерность!!!
После блокировки клиента (Ctrl-F5) и подключения к LN агент снова ПЕРВЫЙ раз отрабатывает нормально, а затем начинает открывать файлы в режиме только чтения.

В тоже время при Web-доступе к базе и запуске агента из SSJS - работает на УРА. По крайней мере пару десятков документов подряд для теста выгрузил в Word без проблем.

С одной стороны проблема решена, но с другой - остается вопрос с обычным клиентом LN.
Как блокировка клиента может влиять на работу агента?
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
28.05.2014, 12:55
roddm лучше потратьте время на изучение альтернативных технологий, чем на борьбу МСО
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
28.05.2014, 13:23
Автор просто что-то мутит и сам не понимает чего мутит.
В системные каталоги полез зачем-то...
МСО в принципе нормально работает. Да и разбирательства с альтернативной технологией тоже не поможет.
Помимо методов записи не стоит забывать про политики пользователей на данном компе.
Я в таких случаях работаю либо с каталогом data в директории сервера Lotus. Пользователь, под которым крутится сервере - имеет туда полный доступ.
Либо с временным каталогом ОС. Туда у всех пользователей есть полные права.
Так что надо разбираться с правами, а потом пениться почему что-то не работает
0
0 / 0 / 0
Регистрация: 23.08.2008
Сообщений: 6,252
28.05.2014, 13:42
МСО в принципе нормально работает
на сервере это не совсем так..
вот именно что надо разбираться с правами и в т.ч. взаимодействии с UI винды, без кот. МСО может вести себя непредсказуемо (по словам самого МС)

Добавлено: вот тоже человек боролся и возможно забил
0
0 / 0 / 0
Регистрация: 18.08.2008
Сообщений: 1,698
28.05.2014, 13:57
Не знаю... МСО пользуюсь уже очень давно. Проблем не наблюдал. Главное делать все по порядку
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
28.05.2014, 13:57
Помогаю со студенческими работами здесь

Ssjs - Partial Update Нескольких Элементов ?
Как сделать Partial Update нескольких элементов в серверном скрипте? Подскажите плиз.

Запустить ssjs функцию из xsp.partialrefreshpost
Собственно весь вопрос в заголовке, можно ли запустить SSJS функцию из XSP.partialRefreshPost, что бы данная функция обработала переданные...

Как показать сообщение с результатом выполнения Ssjs?
На xPage есть кнопка. По клику выполняется какой-то SSJS. Как сделать, что бы после завершения этого SSJS пользователю показывалось...

Javascript activexobject in hta
Добрый день. При подключение через активх к базе акцесс на сетевом диске получаю сообщение о безопасности , подскажите как убить его?

Перечень всех ActiveXObject
вопрос от нуба: подскажите - как получить список всех ActiveXObject's, имеющихся на конкретном компьютере и где взять формальное...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Архитектура слоя интернета для сервера-слоя.
Hrethgir 11.04.2026
В продолжение https:/ / www. cyberforum. ru/ blogs/ 223907/ 10860. html Знаешь что я подумал? Раз мы все источники пишем в голове ветки, то ничего не мешает добавить в голову такой источник, который сам. . .
Подстановка значения реквизита справочника в табличную часть документа
Maks 10.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: при выборе сотрудника (справочник Сотрудники) в ТЧ документа. . .
Очистка реквизитов документа при копировании
Maks 09.04.2026
Алгоритм из решения ниже применим как для типовых, так и для нетиповых документов на самых различных конфигурациях. Задача: при копировании документа очищать определенные реквизиты и табличную. . .
модель ЗдравоСохранения 8. Подготовка к разному выполнению заданий
anaschu 08.04.2026
https:/ / github. com/ shumilovas/ med2. git main ветка * содержимое блока дэлэй из старой модели теперь внутри зайца новой модели 8ATzM_2aurI
Блокировка документа от изменений, если он открыт у другого пользователя
Maks 08.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в конфигурации КА2. Задача: запретить редактирование документа, если он открыт у другого пользователя. / / . . .
Система безопасности+живучести для сервера-слоя интернета (сети). Двойная привязка.
Hrethgir 08.04.2026
Далее были размышления о системе безопасности. Сообщения с наклонным текстом - мои. А как нам будет можно проверить, что ссылка наша, а не подделана хулиганами, которая выбросит на другую ветку и. . .
Модель ЗдрввоСохранения 7: больше работников, больше ресурсов.
anaschu 08.04.2026
работников и заданий может быть сколько угодно, но настроено всё так, что используется пока что только 20% kYBz3eJf3jQ
Дальние перспективы сервера - слоя сети с космологическим дизайном интефейса карты и логики.
Hrethgir 07.04.2026
Дальнейшее ближайшее планирование вывело к размышлениям над дальними перспективами. И вот тут может быть даже будут нужны оценки специалистов, так как в дальних перспективах всё может очень сильно. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru