Chargement des ancêtres d'une entité

A l'aide de la méthode get(DataObject) et la commande AncestorControl, vous pouvez afficher les ancêtres d'une entité.

Pourquoi et quand exécuter cette tâche

Voici la structure hiérarchique du vendeur SalesPerson1 :
  • cn=users,dc=yourco,dc=com
    • o=Sales
      • ou=CA
        • uid=SalesPerson1
      • ou=US
      • ou=Europe

Dans cet exemple, la requête est destinée à afficher tous les niveaux d'ancêtres pour SalesPerson1.

Pour demander tous les niveaux d'ancêtres pour SalesPerson1, ajoutez ce code exemple à votre code application, puis remplacez les variables par les valeurs réelles à utiliser pour cette requête :
DataObject root = SDOHelper.createRootDataObject();
DataObject entity = SDOHelper.createEntityDataObject(root, null, DO_PERSON_ACCOUNT);
entity.createDataObject(DO_IDENTIFIER).setString(PROP_UNIQUE_NAME, 
               "uid=SalesPerson1,ou=CA,o=Sales,cn=users,dc=yourco,dc=com");			
DataObject ancesCtrl = SDOHelper.createControlDataObject(root, null, DO_ANCESTOR_CONTROL);
// 0 signifie tous les ancêtres
ancesCtrl.setInt(PROP_LEVEL, 0); 
ancesCtrl.getList(PROP_PROPERTIES).add("uid");
ancesCtrl.getList(PROP_PROPERTIES).add("cn");
ancesCtrl.getList(PROP_PROPERTIES).add("o");
ancesCtrl.getList(PROP_PROPERTIES).add("ou");			
		
root = service.get(root);

Modèles de graphiques de données d'entrée et de sortie

Pour cet exemple particulier, le graphique de données d'entrée est le suivant :
<?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 uniqueName="uid=SalesPerson1,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"/>
    </wim:entities>
    <wim:controls xsi:type="wim:AncestorControl" level="0">
      <wim:properties>uid</wim:properties>
      <wim:properties>cn</wim:properties>
      <wim:properties>o</wim:properties>
      <wim:properties>ou</wim:properties>
    </wim:controls>
  </wim:Root>
</sdo:datagraph>
Le graphique de données de sortie qui résulte de cet exemple est le suivant :
<?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=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:parent xsi:type="wim:OrgContainer">
        <wim:identifier externalId="0dfcccf7-9fb9-4b25-a0f4-ff4b6b33068e" 
                        externalName="ou=CA,o=Sales,cn=users,dc=yourco,dc=com"
                        repositoryId="LDAP1" 
                        uniqueName="ou=CA,o=Sales,cn=users,dc=yourco,dc=com"/>
        <wim:parent xsi:type="wim:OrgContainer">
          <wim:identifier externalId="eab85abb-9d29-40f1-b502-36c051d3ee96" 
                          externalName="o=Sales,cn=users,dc=yourco,dc=com"
                          repositoryId="LDAP1" 
                          uniqueName="o=Sales,cn=users,dc=yourco,dc=com"/>
          <wim:parent xsi:type="wim:OrgContainer">
            <wim:identifier externalId="93fde597-b628-4952-90cc-d6b178a05235" 
                            externalName="cn=users,dc=yourco,dc=com"
                            repositoryId="LDAP1" 
                            uniqueName="cn=users,dc=yourco,dc=com"/>
            <wim:cn>users</wim:cn>
          </wim:parent>
          <wim:o>Sales</wim:o>
        </wim:parent>
        <wim:ou>CA</wim:ou>
      </wim:parent>
    </wim:entities>
  </wim:Root>
</sdo:datagraph>
CA, ventes, utilisateurs et dc=yourco.dc=com sont retournés comme les ancêtres de SalesPerson1.

Consultez également la rubrique Exemple de code pour la création d'une entité dans une hiérarchie et l'extraction des descendants et des ancêtres.



Conditions d'utilisation | Commentaires