Código de amostra para estender o esquema no repositório de extensão de propriedade

Use o fragmento de código de amostra e os gráficos de dados para estender o esquema no repositório de extensão de propriedade.

O seguinte fragmento de código de amostra e os gráficos de dados mostram como incluir a propriedade, age, no tipo de entidade PersonAccount, e estender o esquema no repositório de extensão de propriedade, usando o objeto de dados extensionPropertySchema. O repositório de extensão de propriedade deve ser configurado para que você possa usar o extensionPropertySchema. Para obter mais informações, leia sobre Configurando um repositório de extensão de propriedade em uma configuração de repositório associado no centro de informações do WebSphere Application Server.

Pré-requisito

Assegure-se de ter lido as informações e concluído as etapas descritas no tópico, Pré-requisitos de Programação, incluindo a seção, Estendendo o Esquema de Propriedade, que tem informações sobre os objetos de dados propertySchema e extensionPropertySchema e lista a sintaxe válida para os tipos de dados de propriedade.

Código de Amostra

Inclua o seguinte fragmento de código no código do aplicativo e substitua as variáveis pelos valores reais que você deseja usar.

// Obter um objeto de dados raiz. O restante da árvore de objetos seria integrado nele
DataObject root = SDOHelper.createRootDataObject();
// Criar um novo objeto "esquema" sob a raiz
// Este objeto conterá os detalhes das modificações de esquema que precisam ser feitas
DataObject schema = root.createDataObject(SchemaConstants.DO_SCHEMA);
// Criar um objeto de dados de esquema de propriedade sob o objeto de esquema criado anteriormente
// Nota: Para garantir que a propriedade também seja incluída no repositório de extensão,
// use o Esquema de Propriedade de Extensão em vez do Esquema de Propriedade simples
DataObject propertySchema = schema.createDataObject(SchemaConstants.DO_EXTENSION_PROPERTY_SCHEMA);
// Configurar o valor para o nome da propriedade
propertySchema.setString(SchemaConstants.PROP_PROPERTY_NAME, "age");
// Configurar o namespace para a propriedade
// Como aqui nós estamos definindo a propriedade no namespace padrão, 
// não precisamos definir o prefixo de namespace
// Nota: A inclusão da propriedade no namespace padrão só é possível quando o VMM está usando "dynamicModel"
propertySchema.setString(SchemaConstants.PROP_NS_URI, SchemaConstants.WIM_NS_URI);
// Especificar se a propriedade tem diversos valores (se tiver diversos valores, seu tipo deverá ser Lista)
propertySchema.setBoolean(SchemaConstants.PROP_MULTI_VALUED, false);
// Especificar o tipo de dado da propriedade
// Tipos de dados podem ser simples, como booleano, inteiro, flutuante, duplo, Sequência
// ou especiais, como Endereço, Pessoa, Grupo etc.
propertySchema.setString(SchemaConstants.PROP_DATA_TYPE, SchemaConstants.DATA_TYPE_INT);
// Obter a lista de tipos de entidade nos quais essa propriedade precisa ser incluída e
// Incluir os nomes de tipo de entidade aplicáveis (aqui, "PersonAccount") na lista buscada anteriormente
propertySchema.getList(SchemaConstants.PROP_APPLICABLE_ENTITY_TYPE_NAMES).add(Service.DO_PERSON_ACCOUNT);
// Chamar o esquema de criação
root = service.createSchema(root);

É possível usar o comando wsadmin deleteIdMgrPropertyExtensionEntityData para excluir dados de propriedade do repositório de extensão de propriedade. Para obter mais informações sobre o uso do comando, consulte o tópico Grupo de comandos IdMgrDBSetup para o objeto AdminTask no centro de informações do WebSphere Application Server.

Gráficos de Dados de Entrada e Saída

Gráfico de dados de entrada para incluir propriedade:

<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:sdo="commonj.sdo"
    xmlns:wim="http://www.ibm.com/websphere/wim">
  <wim:Root>
    <wim:schema>
      <wim:extensionPropertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="Int"
          multiValued="false" propertyName="age">
        <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
      </wim:extensionPropertySchema>
    </wim:schema>
  </wim:Root>
</sdo:datagraph>

Gráfico de dados de saída depois de incluir propriedade:

<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:sdo="commonj.sdo"
    xmlns:wim="http://www.ibm.com/websphere/wim">
  <wim:Root>
    <wim:schema>
      <wim:extensionPropertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="Int"
          multiValued="false" propertyName="age">
        <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
      </wim:extensionPropertySchema>
    </wim:schema>
  </wim:Root>
</sdo:datagraph>


Termos de uso | Feedback