Агент По Расписанию Не Может Сохранить Объект Word

Sanchel

Active Member
28.05.2007
34
0
#1
Всем привет!
Есть агент по расписанию который, правит вложения (MS Word):
1. детачит вложение на диск (работает)
2. изменяет выгруженный файл (работает)
3. сохраняет файл .saveAs(путь_к_выгруженному_файлу) (не работает: Automation object error)
4. аттачит обратно в документ(из-за предыдущей ошибки до этого не доходит)
Может кто сталкивался?
 

ToxaRat

Чёрный маг
Lotus team
06.11.2007
3 224
24
#2
1 - служба домино работает не под админом
2 - нету ворда на сервере
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#4
ну вот еще один кандидат на пересмотр своего отношения к КОМе :(
варианты:
-больше не использовать КОМу ворда, использовать POI,
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться

-спросить на сайта МСО любителей - как с этим гагном работать
-не сохранять файл SaveAs в сучность ФС с тем же именем (добавить символы по вкусу)
-изменить УЗ сервера
-тупо делать Save

по факту - КОМа от МСО блокирует файл на перезапись, возможно требует интерактива, коего на сервере нет

Добавлено:
Служба домино работает под LocalSystem account
вот это сильно может мешать всяким КОМам

Добавлено: самый правильный вариант - java (POI... по списку)
 

Sanchel

Active Member
28.05.2007
34
0
#5
-больше не использовать КОМу ворда, использовать POI,
Чтобы видеть этот контент необходимо: Войти или зарегистрироваться
больше не буду )) но в данном случае отказаться не получится
-не сохранять файл SaveAs в сучность ФС с тем же именем (добавить символы по вкусу)
Пробовал - тоже самое
Пробовал - тоже самое
вот это сильно может мешать всяким КОМам
Есть какие-то предложения?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#6

Sanchel

Active Member
28.05.2007
34
0
#7
Что такое УЗ сервера и как его надо изменить?
каковы причины, если не секрет :(
Много логики написано на LS, придется все переписывать.

Просто не понятно: на клиенте все отрабатывает отлично, а на сервере почему не может?
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#8
Много логики написано на LS, придется все переписывать.
пишется рапер (под МСО интерфейсы), код переписывать не нужно (я такое делал для Эхель вызовов).
ЛС->джава бридж никто не отменял - писать можно на ЛС
 

Sanchel

Active Member
28.05.2007
34
0
#9
пишется рапер (под МСО интерфейсы), код переписывать не нужно (я такое делал для Эхель вызовов).
ЛС->джава бридж никто не отменял - писать можно на ЛС
Есть другой способ? без java
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#10
Просто не понятно: на клиенте все отрабатывает отлично, а на сервере почему не может?
очевидно - аккаунт "нормальный" и есть интерактив

Добавлено:
Есть другой способ?
не понял вопроса...
код переписывать не нужно будет ваще (почти :( - CreateObject заменить надо будет) просто подключается др. либа (с оберткой)
java и не увидите http://codeby.net/forum/threads/41201.html
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#12
Вы можете подсказать где что поправить?
я уже предложил - сменить аккаунт запускаемого сервиса домины
За java спасибо, но она мне не подходит.
если прочитали ссылку - не понятно чем?

Добавлено: ЗЫЖ у меня есть стойкое ощущение, что бороться с КОМ вы будете долго и шедульные агенты начнут падать пачками :(
 

Sanchel

Active Member
28.05.2007
34
0
#13
я уже предложил - сменить аккаунт запускаемого сервиса домины
А на кого лучше заменить? Есть только Local service, Network service и локальный администратор? чем это чревато?
если прочитали ссылку - не понятно чем?
Очень много логики написано именно для КОМ. Возможно некоторые функции (свойства) даже не реализованы в джава классе.

Добавлено:
ЗЫЖ у меня есть стойкое ощущение, что бороться с КОМ вы будете долго и шедульные агенты начнут падать пачками :(
пока проблема только с сохранением
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#14
А на кого лучше заменить? Есть только Local service, Network service и локальный администратор? чем это чревато?
лучше создать юзера notes, и дать ему права на запись/чтение каталогов, кот. необх. для работы домины и сопутствующих (типа хранилище доков и т.п.)
если планируете сетевые ресурсы юзать - то на файлопомойках д.б. соответ. юзер, с правами (если он не доменный)
доменного юзера ябы не заводил (для домины) - могут быть нюансы

Добавлено:
Очень много логики написано именно для КОМ. Возможно некоторые функции (свойства) даже не реализованы в джава классе.
интересно какие :( ?
базовая работа с заменой и шаблонизацией, в т.ч., уже решена в указанной либе, даже динамические таблицы генерить может
 

Sanchel

Active Member
28.05.2007
34
0
#15
лучше создать юзера notes, и дать ему права на запись/чтение каталогов, кот. необх. для работы домины и сопутствующих (типа хранилище доков и т.п.)
если планируете сетевые ресурсы юзать - то на файлопомойках д.б. соответ. юзер, с правами (если он не доменный)
доменного юзера ябы не заводил (для домины) - могут быть нюансы

Добавлено: интересно какие :( ?
базовая работа с заменой и шаблонизацией, в т.ч., уже решена в указанной либе, даже динамические таблицы генерить может
Запустил сервис под локальным администратором, но не помогло. Тоже самое: Automation object error
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#16
ошибка-то какая?
и где код, кот. не пущается?
 

Sanchel

Active Member
28.05.2007
34
0
#17
ошибка-то какая?
и где код, кот. не пущается?
Set oWord= CreateObject("Word.Application")
oWord.Documents.Add path 'path - путь к файлу на диске
.....' работаю с объектом, затем сохраняю чтобы вложить в RichTextItem документа
Call oWord.ActiveDocument.Save(true) ' тут валится "Automation object error".
'Call oWord.ActiveDocument.SaveAs(path) ' тоже вылится
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#18
из того что вижу - минимум визибилити не установлен в фалс

Добавлено: надо понимать, что МСО КОМ активно дергает отрисовку (из-за чего дико тормозит), если пытаться отрисовать в контексе сервиса, без галочки intaraction with desktop (или как оно там щаз в виндятке) - будет шванец
а если её поставить - то надо логиницо :(
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 484
360
#19
собсно подтверждение от создателя этого глюкодрома

Добавлено:
Interactivity with the desktop: Office applications assume that they are being run under an interactive desktop. In some circumstances, applications may need to be made visible for certain Automation functions to work correctly. If an unexpected error occurs, or if an unspecified parameter is needed to complete a function, Office is designed to prompt the user with a modal dialog box that asks the user what the user wants to do. A modal dialog box on a non-interactive desktop cannot be dismissed. Therefore, that thread stops responding (hangs) indefinitely. Although certain coding practices can help reduce the likelihood of this issue, these practices cannot prevent the issue entirely. This fact alone makes running Office Applications from a server-side environment risky and unsupported.
Добавлено: вероятно есть к-л вокэраунды - но они чреваты падениями и отжорами памяти