1

我是lotusscript的新手。我们有一个传统的莲花笔记/多米诺骨牌系统。我们需要将数据从 lotus notes 迁移到 oracle。Lotus domino 的数据模型与 oracle 的数据模型完全不同。因此,我们正在为每个Lotus notes 表单创建一个关系表。我可以使用 lotusscript 以编程方式访问视图。但是我无法使用 lotusscript获得与Notes 表单相关联的视图。任何人都可以提供代码片段或解释 from 和 view 之间的关系吗?我需要迁移与单个表单关联的数据,即使它与多个注释视图相关联。

下面的代码片段会起作用吗?

Dim session As New NotesSession
Dim db As NotesDatabase
Dim notesDocumentCollection As NotesDocumentCollection

Set db = session.CurrentDatabase
Set notesDocumentCollection = db.FTSearch( """Form=Help Ticket""", 0)

For i = 1 To notesDocumentCollection.Count    
  Set doc = notesDocumentCollection.GetNthDocument( i )  
  ' process each document 

End Forall
4

3 回答 3

2

在 Lotus Notes 中,视图使用选择标准进行操作。这些标准可以参考表格(但不是必须)。例如,假设您创建了一个名为“HelpTicket”的表单。然后可以使用“视图选择公式”选择使用此表单创建的任何文档以在视图中显示,如下所示:

SELECT Form="HelpTicket"

…然后可以通过引用 HelpTicket 表单上的字段来添加视图中的列以从选定的文档中提取数据。

我怀疑您对表单/视图关系感到困惑的地方是围绕迁移数据的这个想法:表单既是其关联数据的模式定义,也是一种逐个文档呈现该数据的方式基础。理论上,数据可以通过 Notes 中的任意数量的表单“定义”来呈现,即数据和呈现是完全分开的,但实际上,表单和引用它的文档之间存在关系

顺便说一句,可能值得一提的是,Lotus Notes不是关系数据库系统,它可以更容易地描述为基于文档的数据库,或者“NoSQL”的一种形式。

现在,回到视图:然后这些通过列、类别和基于基础数据的简单计算来呈现数据(视图列可以简单地引用字段值,也可以通过专有的 Lotus Notes 公式语言对该值执行基本操作)。

因此,简而言之,您需要迁移的数据就是您的 Lotus Notes 文档。这些视图有点无关紧要,尽管您可能希望复制它们在报告/可视化所述数据方面提供的功能。

于 2010-10-05T09:38:38.600 回答
0

我建议您完全避免使用 Lotusscript。迁移数据后,听起来您并没有使用此 Notes 数据库,因此您唯一需要做的就是将数据取出。如果您使用 NotesSQL 驱动程序 (http://www.ibm.com/developerworks/lotus/products/notesdomino/notessql/),您可以更轻松地做到这一点

为数据库配置驱动程序后,只需使用 Excel 或 Access 连接到数据库并将数据拉入。然后,您可以轻松地正确重新格式化数据,以便将其导入 Oracle。

SQL 驱动程序可以基于 Form 提取数据,因此您可以将所有 HelpTicket 文档(及其项目)放入 Access 中的表格或 Excel 中的工作表中。

于 2010-10-05T13:29:41.127 回答
0

一个迟到的答案,但它可能对某人有所帮助:当尝试在 Notes 和 SQL 之间分配类似的“术语”时,将 Notes 视图视为 SQL 表,将 Notes 文档视为 SQL 记录,将 Notes 代理/事件视为 SQL 触发器可能会有所帮助。注释 具有排序列的视图类似于具有 SQL 索引的表。已排序的 Notes 列定义了索引。要“查询”一个 Notes 视图,您可以扫描视图(相当于未索引的 SQL 表扫描),或者进行基于键的查找(选择 where y=x)。没有查询优化,您必须选择如何查询视图。这些术语是近似值。注释视图更像是 SQL 中的物化视图,而其他地方提到的文档是无模式记录,可以包含不同的字段和数据(但通常它们不包含)。

正如其他答案所提到的。通过 Notes-SQL 访问 Notes 数据相当简单,并且对于精通 SQL 的用户来说更容易理解。您将获得一个基于 SQL 选择查询的答案表。对于精通 Notes/LotusScript 的用户,扫描视图并编写代理以将数据导出为 CSV 值以便稍后导入 SQL 是很简单的。您甚至可以使用构建的视图导出来获取 CSV 数据表,然后可以将其导入 SQL。

Notes 的一个主要“gothcha”是单个字段或视图列中的数据可能存在“类型问题”,具体取决于开发人员的好坏程度。例如,在一行中,数据可能是真实日期,而在另一行中,它可能表示为“文本日期”-除非您处理这种可能性,否则这可能会阻塞导入例程。其他问题是分隔符和字段长度;Notes 不使用明确的字段大小,因此某些字段可能比预期的要大,并且包含的​​分隔符会阻碍您的 SQL 导入。还有其他问题需要解决。为了解决很多这些问题,如果可能的话,为您要迁移的每个表单创建一个视图,将每个字段放在视图中,添加公式以在必要时清理数据,并将每个视图导出为 CSV 并将其视为 SQL桌子。

于 2014-07-30T09:22:43.613 回答