适用于开发者的新增内容
Content Platform Engine V5.2.1 引入了有关开发定制应用程序的新功能及其他增强功能。
Content Engine 对象模型更改
此发行版包括新类和属性。此外,建议不要使用某个属性和某个类,并且会在将来的的发行版中它们除去。
新类
- CmAbstractSearchResult
- CmAdvancedStorageArea
- CmBackgroundSearch
- CmContentBackoutQueueEntry
- CmContentBackoutQueueSweep
- CmContentDeletionQueueEntry
- CmContentDeletionQueueSweep
- CmContentReplicationQueueEntry
- CmContentReplicationQueueSweep
- CmFileSystemStorageDevice
- CmIndexDefinition
- CmIndexedColumn
- CmIsilonFixedContentDevice
- CmOpenStackStorageDevice
- CmReplicaSynchronizationSiteSettings
- CmSearchFunctionDefinition
- CmSMTPConfiguration
- CmStorageDevice
- CmStorageDeviceConnection
- ContentIntegrityOption
- DomainType
- ExtendedInputStream (Java API)/ExtendedStream (.NET API)
- ReplicaSynchronizationType
- SearchFunctionHandler
建议不要使用的类
Content Engine Java™ API 中建议不要使用 com.filenet.api.jdbc.Driver 类。
- 现有类上的新属性
-
属性 类 AdvancedStorageDeletionDelay ObjectStore AuthenticationRealmName Domain BackgroundSearches ObjectStore BackgroundSearchLeaseDuration CmSweepConfiguration CmContentIntegrityOptions DatabaseStorageArea FileStorageArea FixedStorageArea StorageArea ContentSignature ContentTransfer ContentUploadTimeout ContentConfiguration CopyRetainedContent CmBulkMoveContentJob CurrentDeferredObjectCount CmCustomQueueSweep CmQueueSweep CmThumbnailRequestSweep DeferralCount CmAbstractQueueEntry CmThumbnailRequest DeferralData CmAbstractQueueEntry CmThumbnailRequest DeferredObjectCount CmCustomQueueSweep CmQueueSweep CmThumbnailRequestSweep DomainType Domain EventExporterAccountingInterval CmProcessEngineConfiguration EventExporterSleepDuration CmProcessEngineConfiguration IndexDefinitions TableDefinition IsDateOnly PropertyDefinitionDateTime PropertyDescriptionDateTime PropertyTemplateDateTime IsReadProtected PropertyDefinitionBinary PropertyDescriptionBinary PropertyTemplateBinary MaximumUploadBufferSize ContentConfiguration MaxRequestQueueSize IndexJob SecurityIdMappingCacheMaxEntries ObjectStore ServerCommunicationCertificateValidationEnabled VirtualServer ServerCommunicationTraceFlags TraceLoggingConfiguration ServerCommunicationURL VirtualServer SourceContentRetained McMoveContentEvent UseSequentialIds ObjectStore
建议不要使用的属性
建议不要使用 ColumnDefinition 类上的 IsSingleIndexed 属性。
Content Engine Java 和 .NET API 开发者
Content Engine Java 和 .NET API 引入了本产品的新功能及其他增强功能的支持。
- 针对内容检索增强了输入流
Content Engine Java API 中的新类 ExtendedInputStream提供了在流内的任意位置检索内容的支持,包括能够在流内向前和向后查找。Content Engine .NET API 通过新类 ExtendedStream 提供了相同的支持。
在先前发行版中,内容检索会受到按顺序读取内容的限制。通过使用新扩展的流支持,您的应用程序可更有效地从文件中的任何点检索很大的文件内容(例如,视频和音频内容)。无需对不需要此功能的现有应用程序进行任何更改。对于不需要此功能的应用程序,可将当前 accessContentStream 方法(在 ContentTransfer、文档和注释类上)返回的输入流的类型强制转换为新扩展的类以调用新操作。
请注意,尽管新扩展的输入流支持所有类型的存储设备,但是在内容流中高效查找的能力受到底层介质功能的限制,并且可能无法适用于某些类型的存储设备。例如,将对文件存储区域和高级存储区域文件系统存储设备进行优化以对输入流进行本机再定位,从而在内容流内高效地查找。此外,还会对任何类型存储区域中的内容高速缓存中已经高速缓存的任何文件进行优化以对输入流进行本机再定位。
- 序列标识支持
在 5.2.1 之前的发行版中,使用完全生成随机值的算法生成了分配给对象的唯一标识。在 5.2.1 发行版中,提供了生成序列标识的新算法。序列标识由基于时间和计数器的部分以及随机部分组合而成,这样便可根据底层数据库应用的自然顺序连续创建序列(单调)标识。
ObjectStore 接口上的新 UseSequentialIds 属性指定在对象库中创建新对象时该对象库应该分配随机标识还是序列标识。索引数据库列或者具有包含序列标识的主键上的集群索引的表可能会存储得更紧凑并且比完全随机标识管理地更为有效,因而可能会提供性能优势和节省空间。
此属性的缺省值为 true(分配序列标识)。如果您不希望对象库中的新对象具有序列标识,请将 UseSequentialIds 属性的值设置为 false。
- 通过元数据定义密码属性
新元数据属性 IsReadProtected 在二进制值属性中可用,以指定二进制值属性不可被在服务器外部执行的应用程序读取。可使用 IsReadProtected 属性来存储密码或者仅可供在服务器内部执行的信任处理程序代码使用的其他敏感信息。在 Content Engine Java API 的 HandlerCallContext类上使用新的 getReadProtectedProperty 方法来返回表示读取受保护的二进制值属性的值的 Property 对象。请注意,当您升级到 5.2.1 发行版时,任何现有定制二进制值属性中的 IsReadProtected 元数据属性的值将设置为 false。
- 高级存储区域
已增加对新存储区域的支持,用于通过使用复制和自动副本修复提供高可用性内容存储和灾难恢复。高级存储区域通常是使用 Administration Console for Content Platform Engine 管理的,但是与高级存储区域相关的类是在 Content Engine API 中公开的。这些类包括 CmAdvancedStorageArea、CmStorageDeviceConnection、CmStorageDevice 和 CmReplicaSynchronizationSiteSettings。
此外,为支持高级存储区域,增加了下列与队列扫描相关的类:CmContentBackoutQueueSweep、CmContentDeletionQueueSweep 和 CmContentReplicationQueueSweep。
- Content Platform Engine 服务器通信
已增加对 Content Platform Engine (CPE) 服务器通信的支持,从而支持对高级存储区域进行跨站点复制,而不要求通过站点之间的 WAN 安装任何文件系统目录。CPE 服务器通信通常是使用 Administration Console for Content Platform Engine 配置的,但是还可使用 Content Engine API 配置此功能。对 VirtualServer 类增加了以下两个新属性:ServerCommunicationURL 和 ServerCommunicationCertificateValidationEnabled。
- 新的固定内容设备
已增加对下列新的 EMC 固定内容设备的支持:Atmos 和 Isilon。固定内容设备通常是使用 Administration Console for Content Platform Engine 配置的,但是还可使用 Content Engine API 配置这些设备。已增加下列两个新类:CmAtmosFixedContentDevice 和 CmIsilonFixedContentDevice。
- 定制扫描
添加了对新的服务器扩展类型定制扫描的支持。与系统扫描相似,定制扫描将作为后台任务在服务器上运行,以检索目标类的实例并对其进行处理。但是,定制扫描将处理 Java 或 JavaScript 中具有用户实现的操作处理程序的实例。
- CmQueueSweep.MaximumFailures:新缺省值
MaximumFailures 属性的缺省值已更改为 0,这意味着队列扫描实现将尝试在有限次数内重新处理失败的队列条目。您可以更改缺省值。这会影响系统队列扫描和用户实现的定制队列扫描。异常为 CmThumbnalRequestSweep,其中 MaximumFailures 的缺省值已从 7 更改为 3。
- 重新开始处理失败的队列条目
在 5.2.1 发行版之前,当某个队列条目(由 CmAbstractQueueEntry 子类表示)达到其最大故障计数时,将不再选择该条目进行处理,但 QueueEntryStatus 属性未发生更改。要重新开始处理达到最大故障计数的队列条目,必须增大队列扫描(由 CmQueueSweep 表示)的 MaximumFailures 属性。因此,直到这些队列条目达到新的最大值之后,扫描服务才恢复对它们的处理。
在 5.2.1 发行版中,当某个队列条目达到最大故障计数时,QueueEntryStatus 属性将设置为 FAILED,以防止选择该队列条目进行处理。您不能再通过增大队列扫描的最大故障计数来重新开始处理队列条目。相反,必须将各个队列条目的 FailureCount 属性重置为 0 以使扫描服务回复这些队列条目的处理。请参阅重置失败的队列扫描条目,以获取更多信息。
- 跨发行版类装入
在 Content Engine Java API 中,添加了对跨发行版类装入 (CRCL) 功能的支持,允许 Java 应用程序的单个实例同时连接到多个 Content Platform Engine 服务器发行版。
注: CRCL 在使用 JBoss EJB 传输的客户机应用程序上不受支持。- 社会协作
添加了对社会协作功能的支持,允许您在客户机应用程序中实现文档协作操作。
- HandlerCallContext 类
已使用下列方法对 HandlerCallContext 类进行扩展:
- isShuttingDown
- getContentConversionServices
- getReadProtectedProperty
- getTemporaryFilesDirectory
- 新的 MaxRequestQueueSize 属性,用于控制索引请求数
对于 IndexJob 类,增加了新属性 MaxRequestQueueSize。可使用此属性控制索引作业所允许的最大未决索引请求数。
- 不区分大小写的搜索
此发行版通过 CmIndexDefinition 类上的新 ForCaseInsensitiveSearch 属性支持对索引进行不区分大小写的搜索。此外,为了支持通过 Process Engine 客户机进行不区分大小写的搜索,已对 IsolatedRegion 类增加现有的 ForceCaseInsensitiveSearch 属性。
- 后台搜索
后台搜索是一项新功能,使您能够将搜索查询作为后台搜索进程运行,该进程类似于扫描进程。后台搜索查询的结果存储在持久 Content Platform Engine 对象中,可稍后检查这些对象或在客户机应用程序中使用这些对象。为支持此新功能,已增加下列两个新类:CmBackgroundSearch 和 CmAbstractSearchResult。当创建后台搜索时,您会创建基于这些类的子类。CmBackgroundSearch 类是 CmSweep 的子类,并且具有下列新属性:AllowStringTruncation、EffectiveSQL、MaximumExaminedRowCount、OrderByGroupProperties、SearchExpression、SearchObjectStore 和 SearchResults。CmAbstractSearchResult 具有新属性 BackgroundSearch。ObjectStore 上的新 BackgroundSearches 属性指定正在对象库中运行的后台搜索。CmSweepConfiguration 上的新 BackgroundSearchLeaseDuration 属性指定在另一线程可尝试重新发出后台搜索请求之前该请求可运行的时间量。
后台搜索参数
在此发行版中引入了后台搜索参数,这些参数使您能够将参数代入到后台搜索 SQL 查询中。每个参数都与 CmBackgroundSearch 对象(其符号名称与该参数的符号名称匹配)的定制属性关联。当开始后台搜索并设置定义参数的定制属性的值时,服务器会用该值替代 SQL 查询中的该参数。
聚集函数和 GROUP BY 子句
(仅适用于后台搜索)Content Platform Engine 支持 SQL 聚集函数和 GROUP BY 子句。SQL 聚集函数对一组值执行计算,并返回作为该计算的结果的单个值。GROUP BY 子句与一个或多个聚集函数配合使用,以按列对查询中返回的一组行进行分组。支持下列 SQL 聚集函数:
- COUNT():返回表达式中的项数。
- MAX():返回表达式中的最大值。
- MIN():返回表达式中的最小值。
- SUM():返回表达式中的值总和
- 定制搜索函数
此发行版中引入了定制搜索函数。定制搜索函数是在对象库中创建的,并且可在 SQL 语句的 SELECT 列表中用于特别搜索和后台搜索。每个定制搜索函数都会接收到一个或多个输入参数,并且输出返回值。对于此功能,已增加 CmSearchFunctionDefinition 类和 CmFunctionName 属性。此类定义可在搜索期间调用的定制 SQL 搜索函数。此外,已添加 SearchFunctionHandler 类,该类允许您实现定制搜索函数处理程序。此类具有下列新方法:evaluate、getFunctionName、requiresTransaction 和 validate。
- 值为安全主体的属性
从此发行版开始,值为对象的定制属性可保存安全主体值 (SID),该值引用用户或组对象。因此,PropertyDefinitionObject 对象的 RequiredClassId 属性现在可设置为 SecurityPrincipal 类或它的其中一个子类(即 User 或 Group)。在先前发行版中,RequiredClassId 属性限制于 GCD 和 RepositoryObject 类。为支持此功能,已对 ObjectStore 类增加 SecurityIdMappingCacheMaxEntries 属性。
新的 SQL 函数
为了对 SQL 查询中值为安全主体的属性提供支持,已对 Content Engine SQL 查询语法增加下列 SQL 函数:
- SecurityPrincipal:此函数用于搜索查询中,以允许与用户或组安全主体标识进行比较。
- CurrentUser:此函数用于搜索查询中,以允许与当前的已登录用户进行用户比较。
- 多个域
从此发行版开始,可设置逻辑上分开的多个域,它们共享相同物理基础结构和资源。可设置多个由主域管理的域(称为租户域)。对于此功能,已增加 DomainType 类常量以及下列新的 Domain 属性:AuthenticationRealmName 和 DomainType。
- 对创建由多列组成的数据库索引的支持
在先前发行版中,数据库管理员可使用本机数据库工具手动创建由多列组成的索引。5.2.1 发行版包括新类 CmIndexDefinition,该类对通过编程(以及通过 Administration Console for Content Platform Engine)创建由多列组成的索引提供支持。有关更多信息,请参阅 CmIndexDefinition。有关如何将手动创建的索引合并到 Content Platform Engine 元数据中的信息,请参阅升级定制应用程序。
为支持此功能进行的其他 API 更改包括:
- 新接口 CmIndexedColumn,它为索引定义列。
- TableDefinition 类上的新属性 IndexDefinitions,它指定对应于表定义的一组索引定义。
- 建议不要使用 ColumnDefinition 属性 IsSingleIndexed。
- 用于表示或呈现的新 IsDateOnly 属性
对于 PropertyDescriptionDateTime、PropertyDefinitionDateTime 和 PropertyTemplateDateTime 类,增加了新属性 IsDateOnly。可使用此属性作为一项提示,应用程序应该将此 DateTime 属性视为用于表示或呈现的纯日期属性。请注意,不存在与此属性关联的 Content Engine 服务器行为。
Content Platform Engine 客户机下载服务 API 开发者
以下功能部件中的组件现在可以从 Content Platform Engine 客户机下载服务下载:
- 客户机下载 Java API
- Deployment Manager 集成
- .Net API DLL
- .Net API 安装程序
进程 Java API 开发者
进程 Java API 包括新类和方法。
- 新类
- VWXLIFFDefinition
可使用此类在区域内为不同语言环境创建、读取、删除或修改 XLIFF 定义。
- VWXLIFFList
可使用此类创建、读取、删除或修改 XLIFF 定义项。这类似于其他区域元数据列表类(VWRegionFieldList、VWSLAList 和 VWWorkScheduleList)。
- 现有类上的新字段常量和方法
- VWAttachmentType
/** * Value of 7: indicating the attachment type is a Task object. * @since CPE 5.2.0.3 IF003 */ public static final int ATTACHMENT_TYPE_TASK = 7;
- VWLogElement
/** * Gets the simple sequence number of the record, beginning the * count at 1 and increasing by one with each new record. * @return The sequence number of the log record. * @exception VWException Thrown for various reasons, including when * the sequence number is not found. * @since CPE 5.2.1.0 */ public double getSequenceNumberAsDouble() throws VWException
- VWNotificationSettings
/** * Gets the 'allow local SMTP settings' flag. * * @return The 'allow local SMTP settings' flag value. * @throws VWException Thrown for various causes. * @since CPE 5.2.1.0 */ public boolean getAllowLocalSMTPSettings() throws VWException
/** * Sets the 'allow local SMTP settings' flag. * * @param bAllowLocalSmtpSettings Specify <code>true</code> to allow * specification of 'local' notification settings. If <code>false</code>, * the GCD settings will be used. * @throws VWException Thrown for various causes. * @since CPE 5.2.1.0 */ public void setAllowLocalSMTPSettings(boolean bAllowLocalSmtpSettings) throws VWException
- VWParameter
/** * Gets a VWAttribute object containing attributes for this object, * as paired labels (keywords) and values in String format. * * @return A VWAttribute object containing attributes for this object, * as paired labels (keywords) and values in String format. * @throws VWException * @since CPE 5.2.0.3 IF003 */ public VWAttributeInfo getAttributeInfo() throws VWException
- VWParameterDefinition
/** * Gets a VWAttribute object containing attributes for this object, * as paired labels (keywords) and values in String format. * Note: Attributes can not be retrieved from an operation's parameter. * * @return A VWAttribute object containing attributes for this object, * as paired labels (keywords) and values in String format. * @throws VWException * @since CPE 5.2.0.3 IF003 * @see #setAttributeInfo */ public VWAttributeInfo getAttributeInfo() throws VWException
/** * Sets a VWAttribute object containing attributes for this object. * Note: Attributes can not be set on an operation's parameter. * * @param theAttributeInfo A VWAttribute object containing * attributes for this object, as paired labels (keywords) and * values in String format. * @throws VWException * @since CPE 5.2.0.3 IF003 * @see #getAttributeInfo */ public void setAttributeInfo(VWAttributeInfo theAttributeInfo) throws VWException
- VWSession
/** * Fetches XLIFF definitions for the region associated with the connection point. * * @param startLocale Returns the XLIFF definitions starting from the locale * specified. If all XLIFF definitions are required, specify <code>null</code>. * This method must be issued again to return subsequent items from the list. * @param count - max number of objects to return. * @param greaterThan - if true, will query for all fields greater than the * startLocale value. If false, will query for items equal and greater than the * startLocale. * @throws VWException * @since CPE 5.2.1.0 */ public VWXLIFFList fetchXliffList(Locale startLocale, int count, boolean greaterThan) throws VWException
/** * @fnexclude * Updates all the work objects of the given task object. May only be called local * to the PE server. * @param taskObject - the task object to update * @param modifiedProperties a list of modified property symbolic names * @throws VWException * @since PE 5.2.0.3 IF003 */ public void updateTaskWorkObjects(CmTask taskObject, StringList modifiedProperties) throws VWException