如何使用lotusscript获取表单的基础视图

时间:2010-10-05 09:12:54

标签: lotus-notes lotus-domino lotusscript

我是 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

3 个答案:

答案 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表