第10章_在Web中使用LotusScript在Web中使用LotusScript第10章 在Web中使用LotusScript 使用LotusScript的Web代理 激活一个代理的URL 编写WebQueryOpen代理 编写WebQuerySave代理 在代理中使用CGI变量 删除文档 在Web工作流中使用LotusScript 11本章主要说明在Domino的Web开发中使用LotusScript的方法,关于LotusScript的程序设计知识请参考第三章和IBM公司提供的帮助文档。使用LotusScript的Web代理LotusScript在Web上的唯一使用方法就是编写代理,完成比较复杂的程序逻辑,或者是只有通过操作Domino后端对象才能完成的功能。在Web上运行一个LotusScript代理有两种方法:使用***@URLOpen调用它的URL,例如,http://server/db/agentname?OpenAgent使用公式ToolsRunMacro和RunAgent调用代理。当使用ToolsRunMacro调用代理时,有两种特殊的应用场合,即在文档的WebQueryOpen和WebQuerySave事件中调用代理。当你在Web上运行一个LotusScript代理时,代理可以访问由浏览器和Domino提供的信息,即CGI变量,如果使用第二种方式运行代理,还可以访问当前文档中的域的值,这些信息都包含在NotesSession中的DocumentContext属性中。DocumentContext属性是一个特别的NotesDocument对象,它包含了关于当前环境的信息。这个文档内容类似于NotesUIDocument对象,你可以使用它在表单保存前从表单中得到值。另外,DocumentContext属性包含在CGI变量表单中的关于环境的信息。现在来看下面的脚本:SubInitialize DimsessionAsNewNotesSession DimdocAsNotesDocument Setdoc='CGI变量 Print"UserIDfrombrowser="&(0)&"<br>" Print"Browsersoftware="&(0)&"<br>" Print"Serversoftware="&(0)&"<br>"'文档中的域 Print"标题="&(0)&"<br>" Print"创建时间="&(0)EndSub这个代理打印从环境变量中收集的信息,包含CGI变量和当前表单的域值。当你使用POST方法提交表单的时候,这些信息有效。输出结果可能类似于如下:UserIDfrombrowser=Browsersoftware=Serversoftware=标题=IBM网上的Lotus资源创建时间=2005-9-228:24:03注意代理输出时包含HTML换行符<br>。这是由于我们将直接输出到Web浏览器中。在一个Domino代理中,Print语句直接输出到用户的浏览器中,因此你完全可以使用HTML标签对你的输出进行格式化。你还可以使用LotusScript的Print语句把浏览器重新指向不同的Web页,比如说你可以输出一个包含在方括号中的URL,例如:Print"[]"Print语句使用户能够非常简单地获得正在运行的信息,例如你可以使用Print语句:当用户输入无效值时显示错误信息。提示用户表单提交成功。显示相关数据库查询结果。根据用户的输出显示不同的响应。显示到其他文档或其他URL的<aherf>链接。激活一个代理的URL你可以通过简单地将浏览器指向一个代理URL运行一个代理。例如下面的URL运行test代理http://Server/Database/test?OpenAgent图表1使用OpenAgent激活代理当你使用这种方法运行代理的时候,代理可以访问CGI环境变量,但是不能访问当前文档域值,因为现在实际上并没有当前文档。这类似于在Notes中打开代理面板,选择代理,然后选择操作-运行,只是在此你将得到CGI变量。例如,假设你在表单中创建一个热点或者操作执行如下公式:***@Command([ToolsRunMacro];"test");在数据库的属性中设置如下:图表2在Web中使用JavaScript代理可以访问当前文档中的域值,但是不能访问CGI变量。执行结果如下图:图表3代理访问当前文档中的域·如果希望使用ToolsRunMacro运行代理时,能够访问CG
第10章 在Web中使用LotusScript 来自淘豆网www.taodocs.com转载请标明出处.