Código de Amostra para Estender o Esquema em um Repositório LDAP

Use o fragmento de código de amostra e os gráficos de dados para estender o esquema em um repositório LDAP.

O fragmento de código de amostra e os gráficos de dados a seguir mostram como estender o esquema em um repositório LDAP usando o objeto de dados propertySchema. As etapas cobertas neste fragmento de código de amostra são:

  1. Inclua uma propriedade do gerenciador de membro virtual, contactNumber, no tipo de entidade PersonAccount.
  2. Mapeie a propriedade contactNumber para o atributo primaryOwnerContact no repositório LDAP.

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.

Você deve ter um repositório LDAP configurado na configuração de repositórios associados. Consulte o tópico Configurando o Lightweight Directory Access Protocol em uma configuração de repositório associado no centro de informações do WebSphere Application Server. No código de amostra a seguir, o ID do repositório LDAP configurado na configuração de repositórios associados é LDAP1.

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.

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
DataObject propertySchema = schema.createDataObject(SchemaConstants.DO_PROPERTY_SCHEMA);
// Configurar os valores para a propriedade viz. URI do namespace, prefixo de namespace, nome da propriedade
propertySchema.setString(SchemaConstants.PROP_PROPERTY_NAME, "contactNumber");
propertySchema.setString(SchemaConstants.PROP_NS_URI, SchemaConstants.WIM_NS_URI);
// Especificar que a propriedade não 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_STRING);
// Incluir tipos de entidade na lista de tipos de entidade aplicáveis para essa propriedade
// Isso incluirá a propriedade para todos os tipos de entidade na lista
propertySchema.getList(SchemaConstants.PROP_APPLICABLE_ENTITY_TYPE_NAMES).add(Service.DO_PERSON_ACCOUNT);
// Mapear a nova propriedade para o atributo LDAP, ‘primaryOwnerContact', para o repositório LDAP, "LDAP1", somente. 
// Para outros repositórios, ela será mapeada para o mesmo nome.
DataObject metaDataDO = propertySchema.createDataObject(SchemaConstants.DO_META_DATA);
metaDataDO.set(SchemaConstants.PROP_REPOSITORY_ID, "LDAP1");
metaDataDO.set(SchemaConstants.PROP_NAME, SchemaConstants.META_REPOSITORY_PROPERTY_NAME);
metaDataDO.getList(SchemaConstants.PROP_VALUES).add("primaryOwnerContact");
// Chamar a API de criação de esquema para incluir de fato a definição de propriedade no modelo de esquema
DataObject outRoot = service.createSchema(root);
System.out.println("\nCLIENT: nova propriedade é criada.");

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:propertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="String"
          multiValued="false" propertyName="contactNumber">
        <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
        <wim:metaData name="repositoryPropertyName" repositoryId="LDAP1">
          <wim:values>primaryOwnerContact</wim:values>
        </wim:metaData>
      </wim:propertySchema>
    </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:propertySchema nsURI="http://www.ibm.com/websphere/wim" dataType="String"
          multiValued="false" propertyName="contactNumber">
        <wim:repositoryIds>LDAP1</wim:repositoryIds>
        <wim:applicableEntityTypeNames>PersonAccount</wim:applicableEntityTypeNames>
        <wim:metaData name="repositoryPropertyName" repositoryId="LDAP1">
          <wim:values>primaryOwnerContact</wim:values>
        </wim:metaData>
      </wim:propertySchema>
    </wim:schema>
  </wim:Root>
</sdo:datagraph>


Termos de uso | Feedback