我习惯于使用关系数据库,您可以在其中定位特定记录。例如,使用下面的伪 sql。
SELECT id, name, otherVar FROM students WHERE id=:studentId
但是,我不确定如何在 Lotus Notes 中使用其平面数据模型来解决这个问题。我一直在谷歌上搜索,但不断想出如何更新 Lotus Notes 本身,而不是 Lotus Notes 内的文档。如果具有一些 LN 专业知识的人可以为我指明正确的方向,那将不胜感激。
我习惯于使用关系数据库,您可以在其中定位特定记录。例如,使用下面的伪 sql。
SELECT id, name, otherVar FROM students WHERE id=:studentId
但是,我不确定如何在 Lotus Notes 中使用其平面数据模型来解决这个问题。我一直在谷歌上搜索,但不断想出如何更新 Lotus Notes 本身,而不是 Lotus Notes 内的文档。如果具有一些 LN 专业知识的人可以为我指明正确的方向,那将不胜感激。
使用 SQL 语句作为类比,假设您有一个students
包含列id
和name
的视图otherVar
。该列id
应排序(升序或降序)。所以视图看起来像这样
╔════╦════════════╦═════════════╗
║ id ║ name ║ otherVar ║
╠════╬════════════╬═════════════╣
║ 1 ║ Daniel ║ ---------- ║
║ 2 ║ Joseph ║ ---------- ║
║ 3 ║ Michelle ║ ---------- ║
╚════╩════════════╩═════════════╝
要查找此视图,您可以在 LotusScript 中编写如下内容:
Dim session As New NotesSession 'Get current session
Dim currentDB As NotesDatabase
Dim view As NotesView
Dim doc As NotesDocument
Dim studentId As String
studentId = "<STUDENT_ID>" 'The student ID that needs to be searched
Set currentDB = session.CurrentDatabase 'Get current database
Set view = currentDB.GetView("students") 'Get the view
Set doc = view.GetDocumentByKey(studentId, True) 'Look up the view with student ID to get the student document
做一个简单的谷歌搜索以NotesView
获取更多信息。在公式语言中,您可以将其写为:
@DbLookup("Notes":"NoCache"; ""; "students"; "<STUDENT_ID>"; "<FIELD TO BE RETRIEVED>"; [FailSilent]);
但是如果你想做复杂的计算,公式的灵活性不如 LotusScript。
也尝试使用 Domino 数据服务。让您的 Notes 管理员为 REST 服务工作打开数据库,您几乎可以从任何地方获取 Domino 数据!请参阅Web 上的 Domino 数据服务手册