Domino URL Command 详解
第一章 概述
1.1. Domino URL命令语法
http://Host/DominoObject?Action&Arguments
Host:DNS或IP
DominoObject:一个domino 的结构(对象)如:视图,表单,页面,代理,文件夹,导航器等等。
Action:对指定的DominoObject进行的操作,如:OPenView,OpenDatebase,OpenForm,OpenDocument,CreateDocument,Login等等。
Arguments:操作的指定条件,如:Count=10。
1.2. 语法指南
Domino URL不使用服务器名,而通过主机名进行辨认。
1、打开服务器文档,在 Internet 协议的 Http 标签,可以指定 URL 命令的最大允许长度,也可以在这里设置其他限制。
2、Domino URL命令中包含如下特殊标识符:$defaultView,$defaultForm, $searchForm,$file,$icon, $help,$about,和$first。
3、DominoObject 可以是如下任何形式:针对数据库对象,使用数据库名或复制 ID(replica ID);而对于其他对象,使用对象名universal ID 或特殊标识符。如用 URL 指定一个视图,可以使用视图名,视图的 universal ID或$defaultView。
4、 Notes 数据库可以通过文件名来指定,比如 leads.nsf。也可以在数据库的复制 ID(replica ID)前添加两个下划线,以.nsf 为后缀来指定,如__852562F3007ABFD6.nsf
5、 在数据库的所有副本中,Domino 对象名和 Universal ID 等效。一个名称或别名可以指向两个对象。如两个同名表单,其中一个对 Notes 用户隐藏,另一个对Web 用户隐藏。
6、 Action 可以显式或隐式指定。显式方式如 ?OpenDatabase,?OpenView,?OpenForm, ?OpenDocument 和?EditDocument 等。而隐式方式为?Open,?Edit,和 ?Delete 等。如果没有指定任何操作,Domino 默认为?Open。
7、 若需要用户认证,可在任意 Domino URL 后添加Login 参数。
8、 由于 URL 不能包含空格,可用+号或16 进制值%20 来代替空格,如: http://cyb.com/discussion.nsf/By+Author http://cyb.com/discussion.nsf/By%20Author
9、 若名称或参数中含有不符合 URL 语法, 或和 URL 语法冲突的字符,如加号(+),斜杠(/,/),连接符(&)等,需要使用%xx(xx 是 16 进制的 ASCII 码)代替。如打开一个关键字中包含“Smith&Jones, Inc.”的文档,如下: http://cyb.com/leads.nsf/By%20Company/Smith%26Jones,%20Inc.?OpenDocument
10 使用&符号分隔参数,如: http://cyb.com/leads.nsf/By+Salesperson?OpenView&ExpandView
11、 对层次名称用斜杠(/)来分隔,如在指定数据库(discussion.nsf)中,名为 Docs/By Author的视图:http://cyb.com/discussion.nsf/Docs/By+Author 在应用程序的任何部分生成自己的 URL 时,若在简单别名中使用不支持的字符,一般说来这个 URL 不可能有效。
12、 URL 命令也可以指向.nsf4 或.box 为扩展名的数据库,以及模版文件(.ntf),但是这些数据库只能在预览模式下打开。
13、 在数据库属性中,选择“Web 访问:当生产页面时使用 JavaScript” ,计算 URL 时会为按钮和热点生产点击事件。如果该选项未被选中,URL 附加按钮和热点会在页面生成的时候进行计算。如果在表单中使用可以编辑域,这个选项是很有用的。
第二章 服务器、数据库和视图
以下命令访问服务器,数据库,视图,“关于数据库”文档,帮助文档和数据库图标。为了能通过 URL命令访问到,数据库必须在 notes/data 目录或notes/data 目录的子目录下,服务器命令?Login, ?Logout 和?Rediect 除外。当 Domino 与 Microsoft Internet Information Server 一起运行时,服务器命令的语法如果需要数据库,可以使用并不存在的数据库名称。如果服务器命令中引用的数据库不存在,那么该命令将被忽略。使用?Redirect 来重定向其他服务器的文档链接,隐藏设计元素同时针对服务器隐藏。在视图中隐藏的文档,不能通过 Domino URL 命令访问。
如果设置了数据库属性“禁止 URL 打开”,URL 命令将被禁止。
2.1. Redirect
eg.
http://Server/Dummy.nsf?Redirect&Name=notesserver&Id=repid&To=encodedurl
解析:
http://Server 指向生成 URL 的 Web 服务器。
Name=notesserver 以普通或简略形式指定 Domiao服务器名。当“按数据库”设定可用时此为可选参数。
ID=repid 指出需要定位的数据库复制 ID(replica ID),为可选参数。
To=encodedurl 指定转向的 URL。
2.2. OpenDatabase
2.3. OpenView
2.3.1. OpenView 的可选参数
添加可选参数改善 URL。结合以下任意参数获得期望的结果,除非特别设置其他信息。 Collapse=n 其中n为层次视图中折叠的行数。本参数不能和ExpandView或ColapseView同时使用。
CollapseView 折叠方式显示视图
Count=n 其中 n 为需要显示的行数
Expand=n 其中n为层次视图中展开的行数。本参数不能和ExpandView或ColapseView同时使用。
ExpandView 展开方式显示视图
RestrictToCategory=category 设置分类为“显示单一分类”对象,其中 category为在视图中被显示的分类。
Start=n 其中 n 为视图显示时起始行数。在层次视图中,行数会包含有子索引(如 Start=3.5.1 意为第 3 个主题下面,第 5 个子标题下的第 1个文档)
StartKey=string 其中 string 为视图中某个文档的关键字。视图从该文档开始显示。
2.4. ReadViewEntries
使用此命令访问 XML 形式的视图数据,不包括诸如字体,列分隔符,数据格式,HTML 设 定,视图模板以及帧重定向等外观属性。
2.4.1. ReadViewEntries 的可选参数
添加可选参数修饰 URL。结合以下任意参数获得期望的结果,除非有其他的注明。
Collapse = n 其中n为层次视图中折叠的行数。本参数不能和ExpandView或ColapseView同时使用。
CollapseView 折叠方式显示视图
Count=n 其中 n 为需要显示的行数
Expand=n 其中n为层次视图中展开的行数。本参数不能和ExpandView或ColapseView同时使用。
ExpandView 展开方式显示视图
KeyType = text|time 指定 StartKey的类型。若不指定,默认为 text,即文本方式。设置 KeyType 为 Time.,允许使用时间值作为视图数据的显示范围,从 StartKey 行开始,直到 UntilKey 指定的行。如果指定了&KeyType=time,&StartKey 和&UntilKey 可能是 ISO 的日期时间值。 比如你可以使用 20020101T140000,00Z 来表示协调世界时(UTC)或格林尼治标准时间(GMT)的东部标准时间上午 9:00,或者使用 20020101T090000,00-05 来指定相同日期和时间加上本地时间偏移量。
PreFormat 致使服务器上所有类型转换为文本格式。文本列表,数字,日期和数字列表在发送前被转换成文本。服务器地区设置被用于所有格式。如果没有该参数,则 XML 输出流将包含结构化的、地区不确定格式的信息。 ResortAscending = column number ResortDecending = column number column number 为视图中列的以 0 起始的序号。此参数用来设置以指定列按字母升序或降序排序。
RestrictToCategory=category 设置分类为“显示单一分类”对象,其中 category为在视图中被显示的分类。
Start=n 其中 n 为视图显示时起始行数。在层次视图中,行数会包含有子索引(如 Start=3.5.1意为第 3 个主题下面,第 5 个子标题下的第 1个文档)
StartKey = string string 是排序视图中文档的一个关键字。视图从该文档开始显示。如果没有找到和StartKey 参数匹配的文档,则返回下一文档。所以,如果 StartKey 的值为“A”,但是没有找到相应的文档,则 StartKey返回以“B”开始的文档。
UntilKey = string UntilKey 只能和 StartKey 参数一起使用。用它设置视图中允许显示视图实体范围,从文档关键字值 StartKey 开始直到 UntilKey。如&StartKey=A&UntilKey=B 表示,从 A开始的所有实体。不论返回的实体范围如何,&Count 关键字会限定显示的最小范围。
2.5. OpenAbout
使用 OpenAbout 命令访问数据库的“关于本数据库”文档。
http://Host/Database/$about?OpenAbout
2.6. OpenHelp
http://Host/Database/$help?OpenHelp
2.7. OpenIcon
http://Host/Database/$icon?OpenIcon
第三章 帧结构
3.1. OpenFrameset
http://Host/Database/FramesetName?OpenFrameset http://Host/Database/FramesetUNID?OpenFrameset
第四章 代理,表单和导航器
以下命令打开数据库中的代理,表单和导航器。隐藏设计元素同时针对服务器隐藏。不能通 过 Domino的 URL 命令访问隐藏表单的文档。 4.1. OpenAgent
http://Host/Database/AgentName?OpenAgent
4.2. OpenForm
http://Host/Database/FormName?OpenForm http://Host/Database/FormUniversalID?OpenForm http://Host/Database/$defaultform?OpenForm
4.2.1. OpenForm的可选参数
ParentUNID = UniqueIDNumber 其中: UniqueIDNumber 为当前文档的父文档 ID,仅在答复表单或表单属性设置“公式继承选定文档中的数值”时使用。 ☆语法 http://Host/Database/FormUniversalID?OpenForm&ParentUNID
eg.
4.3. OpenNavigator
☆语法 http://Host/Database/NavigatorName?OpenNavigator http://Host/Database/NavigatorUniversalID?OpenNavigator http://Host/Database/$defaultNav?OpenNavigator $defaultNav 打开数据库的文件夹面板 ★示例 http://cyb.com/products.nsf/Main+Navigator?OpenNavigator http://cyb.com/products.nsf/7B5BC17C7DC9EB7E85256207004F8862?OpenNavigator http://cyb.com/products.nsf/$defaultNav?OpenNavigator
4.4. ReadForm
使用 ReadForm命令打开表单时,所有可编辑域都不被显示。当需要以简单页面方式显示一个表单时非常有用。 ☆语法 http://Host/Database/FormName?ReadForm http://Host/Database/FormUniversalID?ReadForm http://Host/Database/$defaultform?ReadForm ★示例 http://cyb.com/home.nsf/Welcome?ReadForm http://cyb.com/products.nsf/625E6111C597A11B852563DD00724CC2?ReadForm http://cyb.com/products.nsf/$defaultform?ReadForm
第五章 打开资源
以下Domino命令在一个NSF应用程序中,打开资源,允许导入的设计元素,保存和发布的各种文件,在Web应用程序和通过WebDAV设计应用程序时,有着广泛的应用。 更多信息参考"Sharing non-NSF files"。
5.1. OpenImageResource
☆语法 http://Host/Database/ImageResourceName?OpenImageResource 其中: ImageResourceName 为要访问的图像文件名。 ★示例 http://cyb.com/leads.nsf/TopHeader.gif?OpenImageResource
5.2. OpenFileResource
在应用程序中打开一个文件资源 ☆语法 http://Host/Database/FileResourceName?OpenFileResource 其中: FileResourceName 要访问的文件名。 ★示例 http://cyb.com/leads.nsf/JSLibrary.js?OpenFileResource
第六章 增加、删除、编辑、打开和保存文档
以下命令操作一个数据库中的文档。隐藏设计元素同时针对服务器隐藏。在视图中隐藏的文档,不能通过Domino URL命令访问.
6.1. CreateDocument
HTML 表单以 POST 方式提交时使用 CreateDocument 命令。当用户提交一个表单时, Domino获得表单中输入的数据并创建一个文档. ☆语法 http://Host/Database/Form?CreateDocument http://Host/Database/FormName?CreateDocument 其中: FormName 正在访问的表单名。 ★示例 http://cyb.com/products.nsf/b9815a87b36a85d9852563df004a9533?CreateDocu ment http://cyb.com/products.nsf/basketballs?CreateDocument
6.2. DeleteDocument ☆语法 http://Host/Database/View/Document?DeleteDocument ★示例 http://cyb.com/products.nsf/By+Part+Number/PC156?DeleteDocument
6.3. EditDocument ☆语法 http://Host/Database/View/Document?EditDocument ★示例 http://cyb.com/products.nsf/By+Part+Number/PC156?EditDocument 当 web 用户以编辑者访问一个文档时,会显示 RTF域包含的隐藏文本。
6.4. OpenDocument
☆语法 http://Host/Database/View/Document?OpenDocument 其中: Document 是如下的任意形式 DocumentKey 指定视图中第一个排序列的内容。 DocumentUniversalID $first 视图中的第一个文档。 ★示例 http://cyb.com/products.nsf/By+Part+Number/PC156?OpenDocument http://cyb.com/leads.nsf/By+Rep/35AE8FBFA573336A852563D100741784?OpenDocument
6.5. SaveDocument 正在编辑的文档以 POST 方式提交时使用 SaveDocument 命令。Domino 根据表单录入的新数据更新文档内容。 ☆语法 http://Host/Database/View/Document?SaveDocument ★示例 http://cyb.com/products.nsf/a0cefa69d38ad9ed8525631b006582d0/4c95c7c6700160e2852563df0078cfeb?SaveDocument