百度空间 | 百度首页 
 
查看文章
 
filenet:IBM FileNet Enterprise Manager 如何实现类似数据库的触发和对触发的处理
2009年09月28日 星期一 下午 02:28
  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 或 发生了某个 eventsubscription 处理器都会检验在其上是否指定了这个事件作为触发事件如果指定了处理器就会读取相应 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 le 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 声明周期状态( lecycle state )被变更时就触发个指定 event action Document
Checkin Event 无论何时个 document 被 check in 时就触发个指定 event action Document
Checkout Event 无论何时个 document 被 check out 时就触发个指定 event action Document
Classy 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 完成工作并提高效率希望本文对您工作有所帮助

类别:Ibm Filenet P8 | 添加到搜藏 | 浏览() | 评论 (0)
 
最近读者:
 
网友评论:
发表评论:
姓 名:
网址或邮箱: (选填)
内 容:
验证码: 请点击后输入四位验证码,字母不区分大小写
      

     

©2009 Baidu