Use o fragmento de código de amostra e os gráficos de dados para executar uma procura baseada no valor de uma propriedade estendida.
O fragmento de código de amostra e o gráfico de dados a seguir mostram como usar uma base de procura para procurar entidades com o valor de uma propriedade estendida age como critério de procura.
Assegure-se de ter lido as informações e concluído as etapas descritas no tópico Pré-requisitos de Programação, que também lista a sintaxe válida para tipos de dados de propriedade.
Você deve ter entidades com propriedades estendidas preenchidas em diferentes bases de procura. Para obter o código de amostra sobre como criar propriedades estendidas, consulte os seguintes tópicos
Inclua o seguinte fragmento de código no código do aplicativo e substitua as variáveis pelos valores reais que você deseja usar.
private static void searchWithSearchBase()
{
try
{
//Procurar Pessoa B
DataObject root = SDOHelper.createRootDataObject();
DataObject searchCtrl = SDOHelper.createControlDataObject(root, null,
SchemaConstants.DO_SEARCH_CONTROL);
searchCtrl.getList(SchemaConstants.PROP_PROPERTIES).add("uid");
searchCtrl.getList(SchemaConstants.PROP_PROPERTIES).add("sn");
searchCtrl.getList(SchemaConstants.PROP_PROPERTIES).add("cn");
searchCtrl.getList(SchemaConstants.PROP_PROPERTIES).add("age");
/**
* É possível incluir bases de procura na procura conforme mostrado aqui:
* o=defaultWIMFileBasedRealm para procura no repositório de arquivo padrão
* ou
* dc=yourco,dc=com para a procura no repositório LDAP.
* Se nenhuma base de procura for fornecida, a procura será executada em todas as entradas de base configuradas.
*/
searchCtrl.getList(SchemaConstants.PROP_SEARCH_BASES).add("o=defaultWIMFileBasedRealm");
searchCtrl.setString(SchemaConstants.PROP_SEARCH_EXPRESSION,
"@xsi:type='PersonAccount' e age > 2");
root = service.search(root);
System.out.println("Gráfico de dados de saída" + printDO(root));
printIdentifiers(root);
}
catch (Exception e)
{
e.printStackTrace();
}
}
É possível validar os resultados da procura verificando se as entidades pertencem à base de procura especificada, como o=defaultWIMFileBasedRealm para uma procura no repositório de arquivo padrão, ou dc=yourco,dc=com, para procura no repositório LDAP.
Gráfico de dados de saída para usar uma base de procura para procurar entidades baseadas no valor de uma propriedade estendida:
<?xml version="1.0" encoding="UTF-8"?>
<sdo:datagraph xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sdo="commonj.sdo" xmlns:wim="http://www.ibm.com/websphere/wim">
<wim:Root>
<wim:entities xsi:type="wim:PersonAccount">
<wim:identifier externalName="uid=personb,o=defaultWIMFileBasedRealm"
repositoryId="InternalFileRepository"
uniqueId="9e27cd3b-6300-4264-a4ac-768dd1092d11"
uniqueName="uid=personb,o=defaultWIMFileBasedRealm"/>
<wim:uid>personb</wim:uid>
<wim:cn>Pessoa B</wim:cn>
<wim:sn>PersonBLastName</wim:sn>
</wim:entities>
</wim:Root>
</sdo:datagraph>