Mustercode für die Suche anhand eines erweiterten Merkmalswertes

Mit dem Mustercode-Snippet und den Datengraphen können Sie eine Suche ausführen, die auf dem Wert eines erweiterten Merkmals basiert.

Das folgende Mustercode-Snippet und der Datengraph zeigen, wie unter Verwendung einer Suchbasis nach Entitäten gesucht wird, wobei der Wert des erweiterten Merkmals age als Suchbedingung zum Einsatz kommt.

Voraussetzungen

Stellen Sie sicher, dass Sie die Informationen gelesen und die Schritte ausgeführt haben, die im Thema Voraussetzungen für die Programmierung beschrieben sind. Dort ist auch die gültige Syntax für Merkmalsdatentypen angegeben.

Es müssen Entitäten mit gefüllten erweiterten Merkmalen in verschiedenen Suchbasen vorhanden sein. Den Mustercode für die Erstellung von erweiterten Merkmalen finden Sie in den folgenden Themen:

Mustercode

Fügen Sie das folgende Code-Snippet zu Ihrem Anwendungscode hinzu und ersetzen Sie die Variablen durch die tatsächlichen Werte, die Sie verwenden wollen.

private static void searchWithSearchBase() 
{
    try 
    {
        //Search Person 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");
        /**
         * You can add search bases to the search as shown here:
         * o=defaultWIMFileBasedRealm for default file repository search
         * or
         * dc=yourco,dc=com for the LDAP repository search.
         * If no search base is provided, the search runs across all the base entries configured.
         */
        searchCtrl.getList(SchemaConstants.PROP_SEARCH_BASES).add("o=defaultWIMFileBasedRealm");
        searchCtrl.setString(SchemaConstants.PROP_SEARCH_EXPRESSION, 
                "@xsi:type='PersonAccount' and age > 2");
        root = service.search(root);
        System.out.println("Output data graph" +  printDO(root));
        printIdentifiers(root);
    }
    catch(Exception e) 
    {
        e.printStackTrace();
    }
}

Sie können die Suchergebnisse prüfen, indem Sie ermitteln, ob die Entitäten zur angegebenen Suchbasis gehören, z. B. o=defaultWIMFileBasedRealm für eine Suche im Standarddateirepository oder dc=yourco,dc=com für eine Suche im LDAP-Repository.

Ausgabedatengraphen

Ausgabedatengraph für Suche nach Entitäten anhand des Wertes eines erweiterten Merkmals unter Verwendung einer Suchbasis:

<?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>Person B</wim:cn>
      <wim:sn>PersonBLastName</wim:sn>
    </wim:entities>
  </wim:Root>
</sdo:datagraph>


Rechtliche Hinweise | Feedback