在配置了网域搜索后,我们的 Domino 服务器 控制台上经常会报如下错误消息:

FT Summarize error – Summarizer: Locale [zh] not supported by summarizer

经查明,原来网域索引器会处理每篇文档的摘要信息,但是这个工作仅仅支持非常少的语言(当然我们的中文也不在支持之列),所以每次处理摘要信息的时候就会报这个错误。解决方法是添加以下两条 Notes.ini 配置之一就可以了(第一条是不处理摘要信息,第二条是将处理的语言设置为英语):

FTG_No_Summary=1

FT_Summ_Default_Language=english

请参考:IBM技术支持网站

考虑以下场景:我们发现某个数据库每天晚上都会自动更新设计,所以我们认为这是 Design 任务造成的。但是有一个问题:我们可能并不知道这个主模板到底在哪个文件夹下、是什么文件名。这种情况可以通过以下步骤找到主模板文件名:

  1. 在设计端打开被更新设计的数据库
  2. 展开设计元素树的“其他 ”,选择“数据库资源”
  3. 右键点击“图标”,选择“设计属性”
  4. 在第二个标签页“域”中找到“$TemplateFileName”域,它的域值就是模板文件名

上一次我们提到,Database icon 文档里面包含很多数据库属性信息。实际上它们都保存在 $Flags 域中,而这个域中每个字符都代表一个属性,列表如下(来源于 Notes C API 中的 stdnames.h 文件):

Flag = Meaning / Action
4 = Allow Soft Deletes
Z = Enable LZ1 Compression
f = Do Not Allow Stored Forms
z = Do Not Maintain Unread Marks
h = Mark Parent Document on Reply or Forward
J = Use JavaScript when generating Web Pages
F = Launch Designated Frameset
n = Never Show Policy (ie. Never show About Database when first opened)
7 = Large UNK Table (ie. allow more fields in database)
6 = Allow Design Locking
K = Restore as lasted viewed by user
c = Show About Database if Modified
Q = Replicate Unread Marks to Clustered Servers Only
U = Replicate Unread Marks to All Servers (appears with Q set)
2 = Optimise Document Table Bitmap
3 = Maintain LastAccessed Property
1 = Don’t Support Specialised Response Hierarchy
M = Multilingual Database
X = Web Access Requires SSL Connection
8 = Web Access Don’t Allow URL Open
i = Display Images After Loading
5 = Allow Document Locking
g = Database Type = Library
j = Database Type = Personal Journal
b = Database Type = Domino Directory
B = Database Type = Directory Catalog
m = Database Type = Multi DB Search
u = Database Type = Portfolio
A = Database Type = Mailbox
r = Database Type = Mailfile
p = Always Show About Database Document (ie. When Opened in the Client Property)
l = Launch Designated Navigator
s = Launch Designated Navigator in Own Window (used in conjuction with l above)
a = Launch First Attachment in About Database Document
d = Launch First DocLink in About Database Document
P = Web Launch = Show About Database Document
S = Web Launch = Open Designated Frameset
E = Web Launch = Open Designated Page
L = Web Launch = Open Designated Navigator in its Own Window
D = Web Launch = Open First DocLink in About Database Document
T = Web Launch = Open Designated DocLink
V = Web Launch = Open First Document in Designated View

通过向这个域中增加(或除去)字符标记,即可设置(或取消)相应的属性。下面是一段具体的代码:

Set doc = db.GetDocumentByID(“FFFF0010”) ‘获得 Icon 文档
doc.~$Flags = doc.~$Flags(0) & “x” ‘x代表需要增加的属性
doc.Save (True, False)

在 Domino 7 服务器上,我们发现紧接着 HTTP 任务加载之后,会有一个叫做 DOMWS Convert AddIn 的任务加载。实际上这个任务和 Common PIM Portlets 以及 Web Service有关,一般情况我们是不需要它的。想要禁止这个任务运行,7.0.1及以上版本只需要将 “服务器文档->Internet 协议->Domino Web 引擎->XML 服务”禁用即可;7.0则需要添加如下Notes.ini 参数:

HTTPNoDomWSAppSpace=1

请参考:IBM技术支持网站

我们知道通过 ?SearchView&SearchOrder=4 命令,可以搜索一个视图并以视图原序返回结果。但是这个功能目前有些问题,Designer 帮助(R7)里面有如下说明:

在以下情况,指定 SearchOrder=4 会产生错误的结果:

  • 指定 count=n 并且 n 小于找到的文档数
  • 指定 start=n 并且 n 不等于1
  • 默认搜索返回结果数小于找到的文档数
  • 最大搜索返回结果数小于找到的文档数

如果需要指定 SearchOrder=4,请参考以下建议:

  • 不要使用 start、count参数
  • 总是指定 SearchMax=0
  • 将服务器的最大搜返回结果数设定到一个比较大的值

考虑以上建议,我们的结论是。。。。。。不要使用 SearchOrder=4 🙁

最近一个项目使用了WebSeal作为其他系统的统一访问接口,在测试我们Domino应用过程中,发现了一些问题。这些问题对于除了Domino以外的web应用,应该都是存在的。

  1. 使用JavaScript重定向的问题。
    通过WebSeal访问web应用,服务器会在应用的URL路径前面加上一层目录,以区分不同的应用。如oa应用下的/login这个地址,如果通过WebSeal访问就会变成/oa/login。一般来说WebSeal 会将页面中的各种 URL 自动转换成相应的路径,但有一种情况除外:javascript 中 的URL。我们的解决方法是将相关的地址写到一个隐藏的 A 标签中,这样 WebSeal 就会对其做处理,然后在通过 js 将转换后的地址取出来即可。
  2. 页面元素Content-Type不对的问题。
    WebSeal会在 HTML 页中加入一段 js 代码,用来做它需要的一些处理。而它判断是否是 HTML 页的标准就是服务器返回的Content-Type。如果我们使用 Domino 的页面来存放 js 而没有更改其 Content-Type 的话,这个 js 也会被插入上面所说的代码,然后导致 js 错误。所以我们需要将各种资源的 Content-Type 设置正确,其实这不单是为了 WebSeal 而修改,还会有其他好处的。
  3. 中文URL和POST中文数据的问题。
    中文 URL 的话,应该尽量避免,编一下码就好了。POST中文数据后来确定是 WebSeal 的配置问题。

数据库中的一些特殊元素,他们有着固定的 Note ID。如下表:

Note ID Database Element
FFFF0002 “About This Database” document
FFFF0004 Default form
FFFF0008 Default view
FFFF0010 Database icon
FFFF0020 Database Design Collection (view)
FFFF0040 Database ACL
FFFF0100 “Using This Database” document
FFFF0800 Replication Formul

比如通过 db.GetDocumentByID(“FFFF0010”) 即可获得 Database icon 文档。而这个文档中保存了很多数据库属性信息,也就是说我们可以通过编程来修改这些数据库属性。是不是有点意思了呢?

请参考 Getting Default Elements in the Database

一般情况下,视图都是用来显示文档的。实际上通过更改视图 $FormulaClass 的值,我们可以让它显示其他的内容。参照下表:

Note Class Type Hex Value Decimal Value Comments
NOTE_CLASS_DOCUMENT 0x0001 1 document note
NOTE_CLASS_INFO 0x0002 2 notefile info (help-about) note
NOTE_CLASS_FORM 0x0004 4 form note
NOTE_CLASS_VIEW 0x0008 8 view note
NOTE_CLASS_ICON 0x0010 16 icon note
NOTE_CLASS_DESIGN 0x0020 32 design note collection
NOTE_CLASS_ACL 0x0040 64 acl note
NOTE_CLASS_HELP_INDEX 0x0080 128 Notes product help index note
NOTE_CLASS_HELP 0x0100 256 designer’s help note
NOTE_CLASS_FILTER 0x0200 512 filter note
NOTE_CLASS_FIELD 0x0400 1024 field note
NOTE_CLASS_REPLFORMULA 0x0800 2048 replication formula
NOTE_CLASS_PRIVATE 0x1000 4096 Private design note, use $PrivateDesign view to locate/classify
NOTE_CLASS_DEFAULT 0x8000 32,768 MODIFIER – default version of each
NOTE_CLASS_ALL 0x7fff 32,767 all note types
NOTE_CLASS_ALLNONDATA 0x7ffe 32,766 all non-data notes
NOTE_CLASS_NONE 0x0000 0 no notes

比如我们一般的视图,$FormulaClass 的值为1,所以显示一般文档 ;如果是4,则显示所有表单设计元素(实际上,每个设计元素都可以说是一种特殊的文档)。另外还可以这样用:如果将 $FormulaClass 的值指定为 1548(4 + 8 + 512 + 1024),则可以同时显示表单、视图等几种设计元素。

修改 $FormulaClass 域的方法,可以通过类似如下的代码实现:

Set view= db.GetView(“FormView”)
Set doc = db.GetDocumentByUNID(view.UniversalID)
Call doc.ReplaceItemValue(“$FormulaClass”, “4”)

至于这样的视图有什么用,就要看自己的想像力了。比如创建一个包含所有设计元素的视图,就可以通过名字来查找设计元素文档了。

请参考 Modifying $FormulaClass in ViewsFun with $FormulaClass

1.题目: 原来

小朋友写: 原来他是我爸爸。

老师评语: 妈妈关切一下

2.照样造句

题目: (树呀树呀)我把你(种下)

小朋友写: (汤圆汤圆)我把你(吃掉)

老师评语: 真是可爱~~

3.题目: ..一边………..一边………… ..

小朋友写: 他一边脱衣服,一边穿裤子.

老师评语: 他到底要脱还是要穿啊~~
继续阅读