IBM FileNet P8, Version 5.2.1            

O que Há de Novo para Desenvolvedores

O Content Platform Engine V5.2.1 introduz novos recursos e outros aprimoramentos para desenvolvimento de aplicativos customizados.

Mudanças do Modelo de Objeto do Content Engine

Esta liberação inclui novas classes e propriedades. Além disso, uma propriedade e uma classe foramdescontinuadas e serão removidas em uma liberação futura.

Novas classes

Classe descontinuada

A classe com.filenet.api.jdbc.Driver foi descontinuada na API Java™ do Content Engine.

Novas propriedades em classes existentes
Propriedade Classe
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

Propriedade descontinuada

A propriedade IsSingleIndexed na classe ColumnDefinition foi descontinuada.

Desenvolvedores de APIs do Content Engine Java e .NET

As APIs Content Engine Java e .NET introduzem suporte para novos recursos e outros aprimoramentos no produto.

Fluxo de entrada aprimorado para recuperação de conteúdo

Uma nova classe, ExtendedInputStream, no Content Engine Java API fornece suporte para recuperar conteúdo em posições arbitrárias no fluxo, incluindo a capacidade de busca para frente e para trás no fluxo. O Content Engine .NET API fornece o mesmo suporte por meio da nova classe ExtendedStream.

Em liberações anteriores, a recuperação de conteúdo estava limitada à leitura sequencial do conteúdo. Usando o novo suporte de fluxo estendido, o aplicativo pode recuperar de maneira mais eficiente conteúdo de arquivo muito grande, como conteúdo de vídeo e áudio, em qualquer ponto no arquivo. Não são necessárias mudanças a aplicativos existentes que não precisam dessa capacidade. Para aplicativos que requerem essa capacidade, é possível converter o fluxo de entrada retornado do método accessContentStream atual (nas classes ContentTransfer, Document e Annotation) na nova classe estendida para chamar as novas operações.

Observe que, embora o novo fluxo de entrada estendido suporte todos os tipos de dispositivos de armazenamento, a capacidade de buscar de maneira eficiente em um fluxo de conteúdo está limitada às capacidades da mídia subjacente e podem não ser apropriadas para alguns tipos de dispositivos de armazenamento. Por exemplo, os dispositivos de armazenamento do sistema de arquivos da área de armazenamento de arquivo e da área de armazenamento avançado foram otimizados para executar reposicionamento nativo do fluxo de entrada e, portanto, podem buscar de maneira eficiente em um fluxo de conteúdo. Além disso, os arquivos que foram armazenados em cache no cache de conteúdo a partir de qualquer tipo de área de armazenamento também foram otimizados para executar reposicionamento nativo do fluxo de entrada.

Suporte para IDs sequenciais

Em liberações anteriores à 5.2.1, os identificadores exclusivos designados a objetos foram gerados usando um algoritmo que produz valores completamente aleatórios. Na liberação 5.2.1, há um novo algoritmo disponível que produz IDs sequenciais. Os IDs sequenciais possuem uma parte baseada no tempo e no contador que é combinada com uma parte aleatória, para que IDs criados consecutivamente sejam sequenciais (monotônicos) de acordo com a ordenação natural aplicada pelo banco de dados subjacente.

A nova propriedade UseSequentialIds na interface ObjectStore especifica se um armazenamento de objeto deve designar IDs aleatórios ou sequenciais quando um novo objeto for criado nesse armazenamento de objeto. Uma coluna de banco de dados indexada ou uma tabela com um índice em cluster na chave primária contendo IDs sequenciais pode ser armazenada de forma mais compacta e gerenciada de maneira mais eficiente que IDs completamente aleatórios, fornecendo, assim, benefício de desempenho e economia de espaço potenciais.

O valor padrão para essa propriedade é true (designar IDs sequenciais). Para que novos objetos em um armazenamento de objeto não tenham IDs sequenciais, configure o valor da propriedade UseSequentialIds como false.

Definir propriedades de senha por meio de metadados

Há uma nova propriedade de metadados, IsReadProtected, disponível em propriedades de valor binário para especificar que a propriedade de valor binário está indisponível para ser lida por aplicativos que executam fora do servidor. É possível usar a propriedade IsReadProtected para armazenar senhas ou outras informações confidenciais que estão disponíveis apenas ao código confiável do manipulador que executa dentro do servidor. Use o novo método getReadProtectedProperty na classe HandlerCallContext do Content Engine Java API para retornar o objeto Property que representa o valor da propriedade de valor binário, protegida contra leitura. Observe que, ao fazer upgrade para a liberação 5.2.1, o valor da propriedade de metadados IsReadProtected em qualquer propriedade de valor binário customizado existente está configurado como false.

Área de armazenamento avançado

Suporte para uma nova área de armazenamento foi incluído que fornece armazenamento de conteúdo de alta disponibilidade e recuperação de desastre por meio do uso de replicação e reparo automático de réplica. Áreas de armazenamento avançado são geralmente gerenciadas com o Console de administração para o Content Platform Engine, mas classes relacionadas à área de armazenamento avançado são expostas nas APIs do Content Engine. Essas classes incluem CmAdvancedStorageArea, CmStorageDeviceConnection, CmStorageDevice e CmReplicaSynchronizationSiteSettings.

Além disso, as classes relacionadas à varredura da fila a seguir foram incluídas no suporte de áreas de armazenamento avançado: CmContentBackoutQueueSweep, CmContentDeletionQueueSweep e CmContentReplicationQueueSweep.

Comunicação do servidor do Content Platform Engine

Suporte para comunicação do servidor do Content Platform Engine (CPE) foi incluído, permitindo a replicação entre sites para uma área de armazenamento avançado sem o requisito de montar algum diretório do sistema de arquivos no WAN entre sites. A comunicação do servidor do CPE normalmente é configurada com o Console de administração para o Content Platform Engine, mas esse recurso também pode ser configurado com as APIs do Content Engine. Duas novas propriedades foram incluídas na classe VirtualServer, ServerCommunicationURL e ServerCommunicationCertificateValidationEnabled.

Novos dispositivos de conteúdo fixo

Suporte foi incluído para novos dispositivos de conteúdo fixo do EMC: Atmos e Isilon. Os dispositivos de conteúdo corrigidos normalmente são configurados com o Console de administração para o Content Platform Engine, mas esses dispositivos também podem ser configurados com as APIs do Content Engine. Duas novas classes foram incluídas: CmAtmosFixedContentDevice e CmIsilonFixedContentDevice.

Varreduras customizadas

Foi incluído suporte para varreduras customizadas, um novo tipo de extensão de servidor. Como uma varredura do sistema, uma varredura customizada opera como uma tarefa em segundo plano no servidor, recuperando instâncias de uma classe de destino e processando-as. No entanto, uma varredura customizada processa instâncias com um manipulador de ações que é implementado pelo usuário, em Java ou JavaScript.

CmQueueSweep.MaximumFailures: Novo valor padrão

O valor padrão da propriedade MaximumFailures foi alterado para zero, ou seja, uma implementação de varredura da fila tentará reprocessar entradas de fila com falha um número ilimitado de vezes. O valor padrão pode ser alterado. Isso afeta varreduras de fila do sistema e varreduras de fila customizadas implementadas pelo usuário. Uma exceção é CmThumbnalRequestSweep, em que o valor padrão de MaximumFailures foi alterado de sete para três.

Reiniciar o processamento de entradas de fila com falha

Antes da liberação 5.2.1, quando uma entrada da fila (representada por uma subclasse CmAbstractQueueEntry) atingia sua contagem máxima de falhas, ela não era mais selecionada para processamento, mas a propriedade QueueEntryStatus não era alterada. Para reiniciar o processamento das entradas da fila que atingiam a contagem máxima de falhas, era preciso aumentar a propriedade MaximumFailures na varredura da fila (representada por CmQueueSweep). Como resultado, o serviço de varredura continuava o processamento dessas entradas da fila, até que atingisse o novo máximo.

Na liberação 5.2.1, quando uma entrada da fila atinge a contagem máxima de falhas, a propriedade QueueEntryStatus é configurada como FAILED, evitando que a entrada seja selecionada para processamento. Não é mais possível reiniciar o processamento de entradas da fila aumentando a contagem máxima de falhas na varredura da fila. Em vez disso, deve-se reconfigurar a propriedade FailureCount para zero em cada entrada de fila individual para que o serviço de varredura continue processando essas entradas da fila. Consulte Reconfigurando entradas de varredura de fila com falha para mais informações.

Carregamento de classe cross-release

No Content Engine Java API, foi incluído suporte para o recurso cross-release class loading (CRCL), permitindo que uma única instância de aplicativo Java se conecte a várias liberações do servidor Content Platform Engine simultaneamente.

Nota: O CRCL não é suportado nos aplicativos clientes usando o transporte JBoss EJB.
Colaboração social

Foi incluído suporte para recursos de conteúdo social, permitindo a implementação de operações de colaboração de documento em aplicativos clientes.

Classe HandlerCallContext

A classe HandlerCallContext foi expandida com os métodos a seguir:

  • isShuttingDown
  • getContentConversionServices
  • getReadProtectedProperty
  • getTemporaryFilesDirectory
Nova propriedade MaxRequestQueueSize para controlar o número de solicitações de índice

Uma nova propriedade, MaxRequestQueueSize, foi incluída na classe IndexJob. É possível usar essa propriedade para controlar o número máximo de solicitações de índice pendentes que são permitidas para uma tarefa de índice.

Procuras sem distinção entre maiúsculas e minúsculas

Essa liberação suporta procuras sem distinção entre maiúsculas e minúsculas em índices via a nova propriedade ForCaseInsensitiveSearch na classe CmIndexDefinition. Além disso, para fornecer suporte para procuras sem distinção entre maiúsculas e minúsculas com clientes do Process Engine, a propriedade ForceCaseInsensitiveSearch foi incluída na classe IsolatedRegion.

Procura de segundo plano

A procura de segundo plano é um novo recurso que permite executar uma consulta de procura como um processo de procura de segundo plano, que é similar a um processo de varredura. Os resultados de uma consulta de procura de segundo plano são armazenados em objetos Content Platform Engine persistentes, o que pode ser examinado ou usado posteriormente em um aplicativo cliente. No suporte desse novo recurso, duas novas classes foram incluídas: CmBackgroundSearch e CmAbstractSearchResult. Ao criar uma procura de segundo plano, você cria subclasses que se baseiam nessas classes. A classe CmBackgroundSearch é uma subclasse de CmSweep e tem as novas propriedades a seguir: AllowStringTruncation, EffectiveSQL, MaximumExaminedRowCount, OrderByGroupProperties, SearchExpression, SearchObjectStore e SearchResults. CmAbstractSearchResult tem uma nova propriedade, BackgroundSearch. Uma nova propriedade BackgroundSearches no ObjectStore especifica as procuras de segundo plano que estão em execução em um armazenamento de objeto. Uma nova propriedade BackgroundSearchLeaseDuration no CmSweepConfiguration especifica a quantidade de tempo que uma solicitação de procura de segundo plano pode executar antes que outro encadeamento possa tentar emitir novamente a solicitação.

Parâmetros de procura de segundo plano

Parâmetros de procura de segundo plano são introduzidos nessa liberação, o que fornece a capacidade para substituir parâmetros em uma consulta SQL de procura de segundo plano. Cada parâmetro é associado com uma propriedade customizada de um objeto CmBackgroundSearch cujo nome simbólico corresponde àquele do parâmetro. Ao iniciar uma procura de segundo plano e configurar o valor de uma propriedade customizada que define um parâmetro, o servidor substitui esse valor para o parâmetro na consulta SQL.

Função agregada e cláusula GROUP BY

Somente para procuras de segundo plano, o Content Platform Engine suporta funções agregadas SQL e a cláusula GROUP BY. Uma função agregada SQL executa um cálculo em um conjunto de valores e retorna um único valor que é um resultado do cálculo. A cláusula GROUP BY é usada com uma ou mais funções agregadas para agrupar, por coluna, um conjunto de linhas que são retornadas em uma consulta. As funções agregadas SQL a seguir são suportadas:

  • COUNT(): Retorna o número de itens na expressão.
  • MAX(): Retorna o maior valor na expressão.
  • MIN(): Retorna o menor valor na expressão.
  • SUM(): Retorna a soma dos valores na expressão
Funções de procura customizadas

Funções de procura customizadas são introduzidas nessa liberação. Funções de procura customizadas são criadas em um armazenamento de objeto e podem ser usadas na lista SELECT de uma instrução SQL para ambas as procuras, ad hoc e de segundo plano. Cada função de procura customizada recebe um ou mais parâmetros de entrada e emite um valor de retorno como saída. Para esse recurso, a classe CmSearchFunctionDefinition e a propriedade CmFunctionName foram incluídas. Essa classe define uma função de procura SQL customizada que pode ser chamada durante uma procura. Além disso, a classe SearchFunctionHandler foi incluída, o que permite implementar um manipulador de função de procura customizada. Essa classe tem os novos métodos a seguir: evaluate, getFunctionName, requiresTransaction e validate.

Propriedades avaliadas para entidade de segurança

Começando com essa liberação, uma propriedade customizada avaliada para objeto pode reter um valor de entidade de segurança (SID), que referencia um objeto de usuário ou de grupo. Como resultado, a propriedade RequiredClassId de um objeto PropertyDefinitionObject pode agora ser configurada para a classe SecurityPrincipal ou uma de suas subclasses, Usuário ou Grupo. Em liberações anteriores, a propriedade RequiredClassId era limitada às classes GCD e RepositoryObject. No suporte deste recurso, a propriedade SecurityIdMappingCacheMaxEntries foi incluída na classe ObjectStore.

Novas funções SQL

Para fornecer suporte para propriedades avaliadas para entidade de segurança em consultas SQL, as funções SQL a seguir foram incluídas na sintaxe da consulta SQL do Content Engine:

  • SecurityPrincipal: Esta função é usada em uma consulta de procura para permitir comparações com um ID de entidade de segurança de usuário ou grupo.
  • CurrentUser: Esta função é usada em uma consulta de procura para permitir comparações de usuário com o usuário registrado atual.
Múltiplos domínios

Começando com essa liberação, múltiplos domínios separados logicamente podem ser configurados que compartilham a mesma infraestrutura física e os mesmos recursos. É possível configurar diversos domínios, chamados de domínios locatários, que são gerenciados por um domínio principal. Para esse recurso, constante de classe DomainType e as novas propriedades Domain a seguir foram incluídas: AuthenticationRealmName e DomainType.

Suporte para criação de índices do banco de dados com diversas colunas

Em liberações anteriores, um administrador de banco de dados podia criar manualmente um índice com diversas colunas usando as ferramentas de banco de dados nativas. A liberação 5.2.1 inclui uma nova classe, CmIndexDefinition, que fornece suporte para a criação de índices com diversas colunas programaticamente (assim como via o Console de administração para o Content Platform Engine). Para obter informações adicionais, consulte CmIndexDefinition. Para obter informações sobre como incorporar manualmente índices criados nos metadados do Content Platform Engine, consulte Upgrade de aplicativos customizados.

Outras mudanças de API no suporte desse recurso incluem:

  • Uma nova interface, CmIndexedColumn, que define uma coluna para um índice.
  • Uma nova propriedade na classe TableDefinition, IndexDefinitions, que especifica o conjunto de definições do índice que correspondem a uma definição de tabela.
  • A propriedade ColumnDefinition, IsSingleIndexed,está descontinuada.
Nova propriedade IsDateOnly para apresentação ou renderização

Uma nova propriedade, IsDateOnly, foi incluída nas classes PropertyDescriptionDateTime, PropertyDefinitionDateTime, e PropertyTemplateDateTime. É possível usar essa propriedade como uma sugestão de que o seu aplicativo deve tratar essa propriedade DateTime como uma propriedade somente de data para apresentação ou renderização. Note que não há nenhum comportamento de servidor do Content Engine associado com essa propriedade.

Desenvolvedores de API do Content Platform Engine Client Download Service

Os componentes dos recursos a seguir podem agora ser transferidos por download a partir do Content Platform Engine Client Download Service:

  • Client Download Java API
  • Deployment Manager Integration
  • .Net API DLL
  • .Net API Installer

Desenvolvedores do Process Java API

O Process Java API inclui novas classes e métodos.

Novas classes
VWXLIFFDefinition

Use essa classe para criar, ler, excluir ou modificar definições XLIFF para diferentes códigos de idioma dentro de uma região.

VWXLIFFList

Use essa classe para criar, ler, excluir ou modificar itens de definição XLIFF. Isso é similar às outras classes da lista de metadados da região (VWRegionFieldList, VWSLAList e VWWorkScheduleList).

Novos métodos e constante de campo em classes existentes
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


Last updated: October 2015
wn_cpe_dev.htm

© Copyright IBM Corporation 2015.