Executando uma Procura

Utilize o método search(DataObject) para retornar um conjunto de entidades que corresponda à expressão de procura.

Sobre Esta Tarefa

A função de procura do virtual member manager retorna um conjunto de entidades que corresponde à expressão de procura. Os controles que estão relacionados à procura são SearchControl, PageControl, SortControl, PageResponseControl e SortResponseControl. Utilize SearchControl DataObject para transmitir a expressão de procura e retornar a lista de propriedades em um serviço do virtual member manager. Este código de exemplo mostra como obter as propriedades uid e sn de todas as entidades pessoais. Neste exemplo, a função de procura paginada e classificada não é usada.
Nota: Neste exemplo, as funções de procura paginada e classificada não são usadas.
Para obter as propriedades uid e sn de todas as entidades pessoais, inclua o seguinte código de amostra no código do aplicativo e substitua as variáveis pelos valores reais que você deseja utilizar nesta procura:
DataObject root = SDOHelper.createRootDataObject();
	DataObject searchCtrl = SDOHelper.createControlDataObject(root, null, DO_SEARCH_CONTROL);
	searchCtrl.getList(PROP_PROPERTIES).add("uid");
searchCtrl.getList(PROP_PROPERTIES).add("sn");  
	searchCtrl.getList(PROP_SEARCH_BASES).add("o=Sales,cn=users,dc=yourco,dc=com");
	searchCtrl.setString(PROP_SEARCH_EXPRESSION, "@xsi:type='PersonAccount' and uid='*'");
		
	root = service.search(root);
Nota:
  1. Se a propriedade for aplicável apenas a um determinado repositório e você quiser incluir essa propriedade em uma expressão de procura, deverá especificar a base de procura no controle de procura para executar a procura apenas nesse repositório. Por exemplo, propInDB só é aplicável a um repositório de banco de dados. Se você quiser procurar em propInDB='abc', precisará especificar a base de procura para esse repositório de banco de dados.
  2. Se o valor real da procura contiver um caractere como asterisco ( * ) que pode também ser usado como curinga, por exemplo, "hobby=abc*de", o escape do caractere deverá ser definido com uma barra invertida ( \ ), "hobby=abc\*de".

Gráficos de Dados de Entrada e Saída de Amostra

Para este exemplo específico, o gráfico de dados de entrada é:
<?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:controls xsi:type="wim:SearchControl" 
         expression="@xsi:type='PersonAccount' and uid='*'">
      <wim:properties>uid</wim:properties>
      <wim:properties>sn</wim:properties>
      <wim:searchBases>o=Sales,cn=users,dc=yourco,dc=com</wim:searchBases>
    </wim:controls>
  </wim:Root>
</sdo:datagraph>
O gráfico dos dados de saída de amostra para este exemplo é:
<?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=SalesPerson3,ou=US,o=Sales,cn=users,dc=yourco,dc=com"
                      repositoryId="LDAP1" 
                      uniqueId="13ae346f-1e4c-40cd-8896-1c7f0b2b3079" 
                      uniqueName="uid=SalesPerson3,ou=US,o=Sales,cn=users,dc=yourco,dc=com"/>
      <wim:uid>SalesPerson3</wim:uid>
      <wim:sn>SalesPerson3Sn</wim:sn>
    </wim:entities>
    <wim:entities xsi:type="wim:PersonAccount">
      <wim:identifier externalName="uid=SalesPerson4,ou=US,o=Sales,cn=users,dc=yourco,dc=com"
                      repositoryId="LDAP1" 
                      uniqueId="a2d1be42-212e-44f0-8396-0bfc2d7d346d" 
                      uniqueName="uid=SalesPerson4,ou=US,o=Sales,cn=users,dc=yourco,dc=com"/>
      <wim:uid>SalesPerson4</wim:uid>
      <wim:sn>SalesPerson4Sn</wim:sn>
    </wim:entities>
    <wim:entities xsi:type="wim:PersonAccount">
      <wim:identifier externalName="uid=SalesPerson2,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"
                      repositoryId="LDAP1" 
                      uniqueId="a3f9e8a1-117a-4252-840f-6d0cb079a7fb" 
                      uniqueName="uid=SalesPerson2,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"/>
      <wim:uid>SalesPerson2</wim:uid>
      <wim:sn>SalesPerson2Sn</wim:sn>
    </wim:entities>
    <wim:entities xsi:type="wim:PersonAccount">
      <wim:identifier externalName="uid=SalesPerson1,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"
                      repositoryId="LDAP1" 
                      uniqueId="e7db8c0e-d2b3-43fe-be14-1475125606f4" 
                      uniqueName="uid=SalesPerson1,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"/>
      <wim:uid>SalesPerson1</wim:uid>
      <wim:sn>SalesPerson1Sn</wim:sn>
    </wim:entities>
  </wim:Root>
</sdo:datagraph>

Consulte também os tópicos Código de amostra para executar uma procura paginada com resultados classificados e Código de amostra para procurar usando as bases de procura.



Termos de uso | Feedback