Suchvorgang ausführen

Verwenden Sie die Methode "search(DataObject)", um eine Reihe von Entitäten zurückzugeben, die mit dem Suchausdruck übereinstimmen.

Informationen zu diesem Vorgang

Die Suchfunktion von Virtual Member Manager gibt eine Reihe von Entitäten zurück, die mit dem Suchausdruck übereinstimmen. Die Steuerungen für Suchvorgänge lauten "SearchControl", "PageControl", "SortControl", "PageResponseControl" und "SortResponseControl". Verwenden Sie das Datenobjekt "SearchControl", um den Suchausdruck zu übergeben und die Merkmalsliste an den Virtual Member Manager-Service zurückzugeben. Der folgende Mustercode zeigt, wie die Merkmale "uid" und "sn" aller Personenentitäten abgerufen werden. Die Funktionen für seitenweise abgerufene und für sortierte Suchergebnisse werden in diesem Beispiel nicht verwendet.
Anmerkung: Die Funktionen für seitenweise abgerufene und für sortierte Suchergebnisse werden in diesem Beispiel nicht verwendet.
Wenn Sie die Merkmale "uid" und "sn" aller Personenentitäten abrufen möchten, nehmen Sie den folgenden Mustercode in Ihren Anwendungscode auf, und ersetzen Sie die kursiv gedruckten Variablen durch die tatsächlichen Werte, die Sie für diesen Suchvorgang verwenden möchten:
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);
Anmerkung:
  1. Wenn ein Merkmal nur in einem bestimmten Repository gültig ist und Sie dieses Merkmal in einen Suchausdruck aufnehmen wollen, müssen Sie in der Suchsteuerung die Suchbasis angeben, um den Suchvorgang nur in dem betreffenden Repository auszuführen. Beispielsweise ist das Merkmal "propInDB" nur in einem Datenbankrepository gültig. Wenn Sie nach "propInDB='abc'" suchen wollen, müssen Sie die Suchbasis für dieses Datenbankrepository angeben.
  2. Falls der tatsächliche Suchwert ein Zeichen wie beispielsweise einen Stern (*) enthält, das auch als Platzhalter verwendet werden kann (z. B. "hobby=abc*de"), muss dem Zeichen ein Backslash (\) als Escapezeichen vorangestellt werden (z. B. "hobby=abc\*de").

Beispiele für Eingabe- und Ausgabedatengraphen

Für das dargestellte Beispiel sieht der Eingabedatengraph wie folgt aus:
<?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>
Ein Musterausgabedatengraph für dieses Beispiel sieht wie folgt aus:
<?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>

Lesen Sie hierzu auch die Informationen unter Mustercode für die Ausführung eines Suchvorgangs mit seitenweise abgerufenen und sortierten Suchergebnissen und Mustercode für die Suche unter Verwendung von Suchbasen.



Rechtliche Hinweise | Feedback