вопрос по Web'ам и по Ale

  • Автор темы halabala
  • Дата начала
Статус
Закрыто для дальнейших ответов.
H

halabala

Гость
#1
Добрый день.

Задача следующая:
1) Нужно извлечь из запроса параметр(CGI) (/test.nsf/CheckForm?ReadForm&PARAM=VALUE)
2) Передать его Notes Script
3) Notes script вызывает нужный метод у COM объекта
4) Выплюнуть возвращаемое значение в html(окно браузера)

Не понятно как из формы позвать скрипт, причем передать ему параметр и получит возвращаемое значение, причем все это на открытие формы. (пока пробую так /test.nsf/CheckForm?ReadForm).

Полагаю нужно использовать WebQueryOpen, из него вызывать агента. Вот только как передать агенту CGI параметр и получить возвращаемое значение?


В агенте:
Dim s As New NotesSession
s.DocumentContext.Query_String(0) //значение "", т.е параметры не могу передать.
Print "Hello World!" не выплевывается в html формы.


Спасибо.
 
H

halabala

Гость
#2
Вобщем разобрался что к чему.
Нужно просто напрсто использовать web agent.

Вызывать его как /Test?OpenAgent?param=value
В теле:

Dim s As New NotesSession
Dim doc As NotesDocument
Set doc = s.DocumentContext

doc.Query_String(0) //собственно параметры. Для метода POST смотрим Request_Content.

.... тут дергаем инстанс COM объекта......

Print "context-type:text/xml" // выставляем context-type
Print "returnValue" //собственно возвращаемое значение
 
H

halabala

Гость
#3
Возникла новая проблема.
Не могу создать COM объект, в теле Web agent (описан выше).

Создаю вот так:

Set obj= CreateObject("MyTestik.Tesitk")


если вызывать агента локально (т.е. с машины где стоит сервер через designer), то все ок. Объкт создается, можно с ним работать.

Если же вызвать агента через веб: test.tml/TestAgent?OpenAgent, то вылетает ошибка:
"Cannot create automation object"


платформа windows 2003, естественно (dll)COM зарегистрировал (regsvr32), dll'ка тоже моя, самописанная...

В чем дело? Или это нельзя делать в web agent?

Спасибо.
 
H

halabala

Гость
#5
"Cannot create automation object" - а точна зарегин?
в реестре есть сслыка ProgID
- не знаю можно ли в вэб... но для проверки попробовать запустить агент не WEB

В том то и дело что не в WEB работает. Это сказал выше, что локально пускается.
Соотвественно и ProgID есть.
 

morpheus

скриптописец
07.08.2006
3 915
1
34
Украина, Киев
#6
<!--QuoteBegin-halabala+25:10:2006, 11:01 -->
<span class="vbquote">(halabala @ 25:10:2006, 11:01 )</span><!--QuoteEBegin-->Это сказал выше, что локально пускается.
[snapback]46287" rel="nofollow" target="_blank[/snapback]​
[/quote]
Сори не заметил


Agents cannot run in a browser. They can be activated from a browser but run on the Domino server containing the agent.

Значить так СОМ сервер срабатывает на СЕРВАКЕ домино... а результат надо кому? юзверю.... и как же он его получить? получаеться что у Вас тупиковое решение ИМХО

Надо определиться какая задача поставлена на СОМ - сервер...


CGI копать туда
 
H

halabala

Гость
#7
Сори не заметил
Значить так СОМ сервер срабатывает на СЕРВАКЕ домино... а результат надо кому? юзверю.... и как же он его получить? получаеться что у Вас тупиковое решение ИМХО

Надо определиться какая задача поставлена на СОМ - сервер...
CGI копать туда
Собственно никто и не утверждал, что аген исполняется в браузере :D
Извините, не понял вас. Причем тут CGI, когда я говорю, что COM объект не инстанциируется???
Результат чего??? Что значит тупиковое решение?

Для, тех кто не понял, задача:
в web agent(т.е. agent который дерягается через веб) создать инстанс COM объекта.
 

Constantin A Chervonenko

Well-Known Member
Lotus team
#8
... COM объект не инстанциируется
Для, тех кто не понял, задача:
в web agent(т.е. agent который дерягается через веб) создать инстанс COM объекта.
Чени-ть с правами (виндуЗячими). Соотв. приложение (хозяин COMа) доступно всем?
А попробуй разок поднять Домину НЕ как сервис, а в ручную (из клиентской сессии)! Чё будет?
 
Статус
Закрыто для дальнейших ответов.