什么是判断应用程序是否在Lotus Notes中使用存储表单的最简单方法?

时间:2017-08-16 17:15:13

标签: lotus-notes lotus-domino lotusscript lotus lotus-formula

我们正在将我们的邮件系统从Notes迁移到Office 365以及他们帮助完成电子邮件地址转换的工具,这样就无法处理在路由文档中使用存储表单的应用程序。是否有一种简单的方法来判断应用程序是否实际使用存储的表单?

MJ

2 个答案:

答案 0 :(得分:1)

首先,允许在文档中使用存储表单的数据库在ICON注释的$ Flags元素中没有小写“f”。您可以使用

访问不在数据库中的图标
Const NOTE_CLASS_ICON% = &H0010             '*** icon note 
Const SPECIAL_ID_NOTE& = &HFFFF0000     ' use in combination w/NOTE_CLASS when calling NSFDbGetSpecialNoteID

Dim iconNoteId&
Dim icondoc As NotesDocument

iconNoteId = SPECIAL_ID_NOTE + NOTE_CLASS_ICON
Set icondoc = db.Getdocumentbyid(iconNoteId)
If InStr(icondoc.Getitemvalue("$Flags")(0), "f") > 0 Then
    Print "Database DOES NOT support shared forms"
Else
    Print "Database supports shared forms"
End If

支持或存储在文档中的第二个表单在$ Info项中有一个标志,表示它。此项目是富文本格式,在IDE中无法轻松查看。但是,通过同步的Oon Disk Project(ODP)使用DXL版本的文件,您可以使用XML或文本编辑器查看它。看起来第六个字符对于普通表单是“I”,对于与文档一起存储的表单是“G”。

到目前为止,我还没有构建任何代码来实际测试或报告表单,因为关闭数据库级别的功能可以解决存储表单导致的安全问题。

答案 1 :(得分:0)

检查应用程序通过电子邮件发送的文档。如果您没有其他方法已经设置,您可以设置邮件日记功能来捕获它们。寻找物品$ Title和$ Body。它们的存在表明该文档包含存储的表单。您甚至可以设置选择公式:

SELECT @IsAvailable($Title) & @IsAvailable($Body)