IBM FileNet P8 4.0 Platform 是

个以内容和流程管理为核心

产品

主要应用在金融行业

为企业提供流程管理和内容管理

相关服务
Content Engine(CE)则是 IBM FileNet P8 4.0 Platform 产品最核心

组件的


它负责内容管理

核心解决方案

并为结构化数据、半结构化数据和非结构化数据进行统

集中式管理

其具体

功能有:内容

搜索和存储、版本管理、文档

生命周期管理、事件订阅等
Content Engine 提供了

个框架可以使

Event 或者 Custom Event 在 Content Engine 中

object 或

上被触发时执行用户指定

行为(Event Action)

我们称的为 subscription

也就是说 subscription 是将 event action、

个或者多个 event 和

个监听触发 event

target Content Engine object 或

绑定在

起


般而言

event action 是被开发者编码实现


而 subscription 则是在 Enterprise Manager 被管理员所添加
在 Content Engine 中可以使用 subscription 等相关技术来实现类似数据库

触发器

功能

从而可以实现对复杂流程

控制、维护数据完整性、审计等多种功能
举例
假设我们已经通过编码实现了

个 event action(参见下面相关概念中有关 event action

介绍和如何实现 event action 部分)

让它在某个指定类型

document 被删掉后发送

封 email

我们需要执行以下步骤来实现并验证这个 subscription:
在该 document

上创建

个 subscription

并将这个 event action 指派给它;
选择 Deletion Event 作为这个 subscription

trigger events 的

;
创建上述 document

个对象

然后将其删除;
您可以去您指定

邮箱中查找有关删除该 document 对象

email
在 CE 中

当任何

个 object 或

发生了某个 event

subscription 处理器都会检验在其上是否指定了这个事件作为触发事件

如果指定了

处理器就会读取相应

event action

内容

并

相应

思路方法作为该 event

响应
相关概念
当定义

个 subscription

您需要设置 event action, target object, and trigger event

下面就分别介绍它们

定义:
Event Action
Event action 是指

个实现了 Content Engine API's EventActionHandler 接口

Java™ 类

即描述了当某

个 trigger event 触发 target object 定义

subscription 时

Content Engine 需要执行

操作
Event action 有着广泛

用途

如:
通知 / 通讯:你可以实现

个 event action 用来自动根据特定

事件和源对象给合适

人发送相关

email 等信息
记录日志 / 计数:通过跟踪 CE 中各种区别对象和事件

使用频率来自动生成有关事件

详细记录

或者自动增加相关计数器

并将这些信息写入数据库或者文件中
过滤:对于像文档生命周期(document l

e cycle)或者工作流流程(workflow process)等复杂

流程

您可能需要

个高级

过滤器用来在系统接收某个 document 的前对于这个 document

内容或者 document 本身进行过滤

您也可以编写

个 event handler 来拒绝某些特定

document

进入并且中止或者回滚事务(transaction)
Target Object
Target object 是指被 subscription 作用

对象

它可以是以下几种类型:
Class definition:在这种情况下

subscription 可以影响到它

所有 instance
Single instance:在这种情况下

subscription 只会影响到该对象

某

个 version
Version series:在这种情况下

subscription 可以影响到

个 versionable object

所有 version

而每个 version 都是

个独立

instance
上面

例子就属于 Class definition

情况
虽然您可以将 subscription 指派给独立

instance

但是如果将 subscription 指派给

会让它变得更加有效


将 subscription 指派给

会保证它

对象会得到

致

管理

而且

在

上建立 subscription 会减少同时运行

subscription

总量

从而提升系统性能
Trigger Event
Trigger event 是指希望被用来触发某个 subscription

事件

而 target object

类型决定了哪些 trigger event 类型对于其上

subscription 是可用

上面

例子里

trigger event

类型是“ Deletion Event ”
下面

表格描述了在 Content Engine 中区别 target object 上可供使用

trigger event 类型:
表 1. Event 信息表
Event 类型 描述 Target object 类型
Cancel Checkout Event 无论何时

在

个 document 上

reservation 被取消时就触发

个指定

event action

Document
Change Class Event 无论何时

在

个 object

所属

被变更时就触发

个指定

event action

Document, folder, custom object
Change State Event 无论何时

在

个 document

声明周期状态( l

ecycle state )被变更时就触发

个指定

event action

Document
Checkin Event 无论何时

在

个 document 被 check in 时就触发

个指定

event action

Document
Checkout Event 无论何时

在

个 document 被 check out 时就触发

个指定

event action

Document
Class

y Complete Event 无论何时

在

个 document 已经被


ier 处理过后触发

个指定

event action

Document
Creation Event 无论何时

在某个

例子被创建并保存时触发

个指定

event action

Document, folder, or custom object
Custom Event 无论何时

在

个用户定义

custom event 出现时触发

个指定

event action

很多种类

object
Deletion Event 无论何时

在

个对象被从 object store 删除时触发

个指定

event action

Document, folder, or custom object
Demote Version Event 无论何时

在

个 document 降级到

个 minor version 时触发

个指定

event action

只在允许 versioning

document 上有效

Document
File Event 无论何时

在

个对象被归档到

个文件夹时触发

个指定

event action

(包括子文件夹

创建) Folder
Freeze Event 无论何时

在

个 document

Freeze 思路方法被

时触发

个指定

event action

Document
Lock Event 无论何时

在

个对象

Lock 思路方法被

时触发

个指定

event action

Document, folder, or custom object
Promote Version Event 无论何时

在

个 document 升级到

个 major version 时触发

个指定

event action

只在允许 versioning

document 上有效

Document
Unfile Event 无论何时

在

个对象被从

个文件夹中删除时触发

个指定

event action

(包括子文件夹

删除) Folder
Unlock Event 无论何时

在

个对象

Unlock 思路方法被

时触发

个指定

event action

Document, folder, or custom object
Update Event 无论何时

在

个对象

properties 被改变时触发

个指定

event action

Document, folder, or custom object
Update Security Event 无论何时

在

个对象

Security 设置被改变时触发

个指定

event action

Document, folder, or custom object
Custom Event
尽管 Content Engine 已经提供了很多种类

event

但其强大

可扩展性使您仍然可以根据需要创建自己

custom event
在默认情况下

Event 下面存在这

个 CustomEvent 类

它是所有用户定义

custom event

基类

也就是说使用 Enterprise Manager 创建自己

custom event 就是创建了

个 CustomEvent

子类

旦创建了

个 custom event 并且刷新了 object store

那您就可以在给

或者 object 创建 subscription 时从可用 event 列表中选取该 custom event
小结
在 Content Engine 中

subscription 包含了 event action, target object 和 trigger event

它们代表

含义分别为:
表 2. 概念小结表
Event action Subscription 被触发后

执行

操作
Target object 设置 subscription

目标

即在哪监听 trigger event

发生

并触发 event action
Trigger event 描述了哪种(或哪些)事件可以触发该 subscription
如何实现 Event Action
上面提到过 Event action 是指

个实现了 Content Engine API's EventActionHandler 接口

Java™ 类

而 EventActionHandler 接口里只定义了

个思路方法:
void onEvent ( ObjectChangeEvent event, Id subscriptionId)
其中 event 表示 Trigger event

而用户或者开发者可以通过 subscriptionId 来获取和这个 event acion 关联

对象

即 target object

实现了 EventActionHandler 接口中

_disibledevent=>
2. 输入 Subscription

名字:
图 2. 输入 Subscription

名字
3. 选择是对该

所有 instance 都生效

还是对单独

某

个生效:
图 3. 选择 Subscription 影响

对象
4. 从可用 event 列表中选择触发 Subscription

trigger event(前面提到

您可以建立自己

custom event 看来扩展 Content Engine 提供给您

trigger event)
图 4. 选择 trigger event
5. 选取 Event Action

即当上面选中

event 出现时

做出什么相应

您可以在这里创建新

Event Action, 只需要指定实现 EventActionHandler 接口

或者 JAR 文件

路径

然后给该 Event Action 命名即可
图 5. 选择 Event Action
6. 指定

些附加

属性:
图 6. 指定附加属性
7. 最后点击 Finish
图 7. 点击 Finish
这样

我们就完成了在 ContentEngineTest 类上建立名称为 SubscriptionTest、trigger event 为 Deletion Event、Event Action 为 Workflow Event Action


个 Subscription
这个 Subscription 会在 ContentEngineTest

例子(Target object)被删除(Deletion Event)时自动触发 Workflow Event Action
整理总结
本文介绍了 Content Engine 中 subscription 相关

event action, target object 和 trigger event

概念

并讲解了如何在 Content Engine 中添加用户自定义

event(custom event)和 event action

最后又在 FileNet Enterprise Manager 模拟了建立 subscription

全过程

借助本文

读者可以更好

掌握 Content Engine 中 subscription

相关概念和技术

更好

利用 Content Engine 完成工作并提高效率

希望本文对您

工作有所帮助