扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
作者:陈 原 来源:论坛整理 2008年1月10日
关键字: lotus Lotus Notes
NSF 组件中操作的实现
现在我们为 ImageDescForm 来具体实现 ShowImageDesc 操作。该操作将接收到一个值为新闻编号 ImageNewsID 的属性 NewsIDChanged,然后在表单中显示新闻编号为 ImageNewsID 的新闻文档的标题,作者,正文等信息。
熟悉 Notes 的人知道,Notes 开发中本来就有操作(Action)这种设计元素,为了与之区分,我们称 NSF 组件中的复合应用操作为 WSDL 操作(WSDL Action)。在设计时为了便于 Notes 开发人员使用,创建 WSDL 操作的步骤沿袭了 Notes 操作的创建方法。
因此,为了实现这个名为 ShowImageDesc 的 WSDL 操作,我们首先要在 ImageDescForm 表单中创建一个普通 Notes 操作 ImageIDChangedAction。
图 11. 在 Domino Designer 中定义 WSDL 操作
在该操作的高级属性中,我们会发现一个新增设置:“组合设置”,在这里可以选择之前在 WSDL 中定义的操作 ShowImageDesc。通过这样一步简单的操作,一个普通的 Notes 操作 ImageIDChangedAction 就成为了一个 WSDL 操作,实现了ShowImageDesc。(一般情况下,建议将这个操作在操作条上隐藏)。
图 12. 在组合设置中选择对应的操作名
接下来我们需要在该操作的 click 事件中添加代码,实现下列内容:
接收属性 NewsIDChanged;
根据属性 NewsIDChanged 的值,在新闻库中查找到对应新闻编号的新闻文档;
将该新闻文档的对应域值显示在 ImageDescForm 表单上。
由于后两步对 Lotus 开发人员并不陌生,这里就不再赘述,在此仅列出接收属性 NewsIDChanged 的 LotusScript 代码,这是整个 WSDL 操作实现过程中最核心的部分:
清单 4. 接收属性并执行操作的 Lotusscript 代码
Sub Click(Source As Button)
...
On Error 4719 Goto err4719
Dim pb As NotesPropertyBroker
Set pb = session.getPropertyBroker() // 获取 PropertyBroker 对象
Dim pbInputProperty As NotesProperty
Dim pbcontext As Variant
pbContext = pb.InputPropertyContext
Set pbInputProperty = pbContext(0) // 获取属性
Dim InputPropertyName As String
InputPropertyName = pbInputProperty.Name
Dim pbvalue As Variant
pbValue = pb.GetPropertyValue(InputPropertyName) // 获取属性值
...
// 对该属性值进行处理,在表单中显示相应文档标题,作者和内容。
…
Exit Sub
err4719:
Print "Error" &Str(Err) &": " &Error$
Messagebox "error"
...
End Sub
如上,通过 Notes 8 中提供的 PropertyBroker 相关的类和方法,WSDL 操作 ShowImageDesc 操作可以获得属性 NewsIDChanged 的值,存放到变量 pbValue 中。在此基础上,可以对该值进行处理,在表单中显示相应文档标题,作者和内容。
通过 定义属性和操作,发布属性,实现操作,我们得到了两个 NSF 组件:ImageNewsList 和 ImageDescForm。对广大 Notes 用户而言,将 Notes 元素封装成组件的好处在于:用户可以充分利用现有的 Notes 数据库,以模块化,组件化的 SOA 思想对它们加以改造。
共5页。 912345:
如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者