LotusScript 代理
大纲
• Web 代理和 Notes 代理的异同点
• 编写 Web 代理前的预备知识
• 三种 Web 代理的编写
• 在 Ls 代理种使用 CGI 变量
• Web 代理运行时的相关设置
LotusScript 代理
Web 代理和 Notes 代理的异同点
代码编写方式基本一致 Web 代理不能使用 UI 类
(在 Web 上 LotusScript 只能用在代理中)
LotusScript 代理
编写 Web 代理前的预备知识
LotusScript 代理
从 Web 上运行一个 LotusScript 代理有三种方法:
• 使用一个 WebQueryOpen 代理。
• 使用一个 WebQuerySave 代理
• 使用它的 URL ,例如, http://server/database/agent_name?OpenAgent 。。
LotusScript 代理• 如何访问当前正在处理的文档
Doc=Notessession.DocumentContext
• DocumentContext 属性是一个特别的 NotesDocument对象,它包含了关于当前环境的信息。这个文档内容类似于 NotesUIDocument 对象,你可以使用它在表单保存前从表单中得到值。另外, DocumentContext 属性包含在 CGI 变量表单中的关于环境的信息。
LotusScript 代理• Web 代理中 Print 语句(一)
• 在 Domino 代理中, Print 语句直接输出到用户的浏览器中,因此你完全可以使用 HTML标签对你的输出进行格式化。
• print“<a href=‘#’>OK</a>”• print|<a href=“#”>OK</a>|
LotusScript 代理• Web 代理中 Print 语句(二)
• 你还可以使用 LotusScript 的 Print 语句把浏览器重新指向不同的 Web 页,比如说你可以输出一个包含在方括号中的 URL ,例如: Print ”[http://www.acme.com]”
LotusScript 代理
你可以使用 P r i n t 语句做以下事情:
• 当用户输入无效值时显示错误信息。
• 提示用户表单提交成功。
• 显示相关数据库查询结果。
• 根据用户的输出显示不同的响应。
• 显示到其他文档或其他 U R L 的 <a herf> 链接。
但 Print 在 WebQueryOpen 代理失效
LotusScript 代理
三种 Web 代理的编写
WebQueryOpen 代理的编写
• 什么时候运行
• 能为我们做什么
• 怎么做
什么时候运行
• WebQueryOpen 代理运行于以下情况:
• 用户请求一个文档之后。• 文档被转换为 HTML 以前。• 在计算显示域被刷新以后。
能为我们做什么
1. 在页面打开前修改文档
2. HTML 代码的动态内嵌
怎么做
• Set doc=NotesSession.DocumentContext
• Doc. 域名 =xxx
WebQuerySave 代理的编写
• 什么时候运行
• 能为我们做什么
• 怎么做
什么时候运行
• WebQuerySave 代理运行于以下情况:
• 当用户提交一个表单之后。• 当计算域和有效的公式被刷新之后。• 在文档保存在硬盘之前。
能为我们做什么
• 对于复杂的、不能通过公式完成操作
• 复杂的有效性逻辑验证
• 可以输出到浏览器
• 浏览器重新指向 U R L
怎么做
• setdoc=NotesSession.DocumentContext
• Doc. 域名 =xxx
• Print 方法
使用 URL 运行的代理
• 对于复杂的不能通过公式完成的有效性逻辑验证非常有用。
• 可以输出到浏览器
• 浏览器重新指向 U R L
在 Ls 代理种使用 CGI 变量
• 主要使用的 CGI 变量
• Query_String
• Query_String_decode
http://182.16.0.7/Test.nsf/AgDb?openAgent&asd=1
Query_String 的值为 opeform&asd=1
在 Ls 代理种使用 CGI 变量
访问 CGI 变量的方法
Doc=Notessession.DocumentContext
Strtmp=Doc. Query_String(0)
Web 代理运行时的相关设置
1. 代理运行权限设置
2. 运行代理用户设置