我是 lotusscript 的新手。我们有传统的莲花笔记/多米诺骨牌系统。我们需要将数据从lotus notes迁移到oracle。 Lotus Domino的数据模型与oracle的数据模型完全不同。因此,我们每个 Lotus Notes表单创建一个关系表。我可以使用lotusscript访问视图 programmaticaly。但是我无法使用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
答案 0 :(得分:2)
在Lotus Notes中,视图使用选择条件进行操作。这些标准可以引用表格(但不必)。例如,假设您创建了一个名为“HelpTicket”的表单。然后可以使用“视图选择公式”选择使用此表单创建的任何文档在视图中显示,如下所示:
SELECT Form="HelpTicket"
...然后可以添加视图中的列,以通过引用HelpTicket表单上的字段来从所选文档中提取数据。
我怀疑你对形式/视图关系的看法感到困惑是关于迁移数据的想法:表单既是关联数据的模式定义,也是在文档上呈现数据的方式 - 按文件编制。从理论上讲,数据可以通过Notes中的任意数量的“定义”来呈现,即数据和表示是完全独立的,但实际上,是表单与引用它的文档之间的关系。
顺便说一下,可能值得一提的是Lotus Notes 不是关系数据库系统,它可以更容易地描述为基于文档的数据库,或者是“NoSQL”的形式。 / p>
现在,回到视图:这些视图然后通过列,类别和基于底层数据的简单计算来呈现数据(视图列可以简单地引用字段值,或者可以通过专有Lotus对该值执行基本操作注释公式语言)。
因此,简而言之,您需要迁移的数据是Lotus Notes文档。这些观点是无关紧要的,尽管您可能希望在报告/可视化所述数据方面复制它们所提供的内容。
答案 1 :(得分:0)
我建议你完全避免使用Lotusscript。在迁移数据之后听起来并不像是在使用此Notes数据库,因此您唯一需要做的就是获取数据。如果使用NotesSQL驱动程序,则可以更轻松地完成此任务(http://www.ibm.com/developerworks/lotus/products/notesdomino/notessql/)
为数据库配置驱动程序后,只需使用Excel或Access连接数据库并提取数据。然后,您可以轻松地重新格式化数据,以便将其导入Oracle。
SQL驱动程序可以基于Form提取数据,因此您可以将所有HelpTicket文档(及其项目)放入Access中的表格或Excel中的工作表中。
答案 2 :(得分:0)
一个迟到的答案,但它可能有助于某人:当试图分配类似的术语时#39;在Notes和SQL之间,将Notes视图视为SQL表,将Notes文档视为SQL记录,将Notes代理/事件视为SQL触发器可能会有所帮助。注释带有排序列的视图类似于带有SQL索引的表。已排序的Notes列定义索引。要查询'在Notes视图中,您可以扫描视图(相当于未编制索引的SQL表扫描),也可以执行基于键的查找(选择y = x的位置)。这样没有查询优化,您必须选择查询视图的方式。这些术语是近似值。注释视图更像是SQL中的物化视图,而其他地方提到的文档是无模式记录,可以包含不同的字段和数据(但通常不包含)。
正如其他答案所提到的那样。通过Notes-SQL访问Notes数据非常简单,而且更容易理解'对SQL精明的用户。您将获得基于SQL选择查询的答案表。对于Notes / LotusScript精明的用户,扫描视图和编写代理以将数据导出为CSV值以便稍后导入SQL非常简单。您甚至可以使用构建的视图导出来获取CSV表,然后可以将其导入SQL。
一个主要的' gothcha'使用Notes时,单个字段或视图列中的数据可能会出现'类型问题'取决于开发人员的好坏程度。例如,在一行中,数据可以是真实日期,而在另一行中,它可以表示为' text-date' - 这可以阻止导入例程,除非您处理这种可能性。其他问题是分隔符和字段长度; Notes没有使用显式字段大小,因此某些字段可能比预期的大,并且包含分隔字符而不是阻止SQL导入。还有其他问题需要解决。要解决许多这些问题,请尽可能为要迁移的每个表单创建一个视图,将每个字段放在视图中,添加公式以在必要时清理数据并将每个视图导出为CSV并将其视为SQL表