Chargement des descendants d'une entité

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

Pourquoi et quand exécuter cette tâche

Voici la structure hiérarchique des vendeurs SalesPerson 1 et SalesPerson2 :
  • dc=yourco,dc=com
    • cn=users
      • o=Sales
        • ou=CA
          • uid=SalesPerson1
          • uid=SalesPeson2
        • ou=US
          • uid=SalesPerson3
          • uid=SalesPeson4
        • ou=Europe

Dans cet exemple, la requête est destinée à afficher tous les enfants des ventes OrgContainer Sales.

Pour demander les descendants des ventes OrgContainer Sales, ajoutez ce code exemple à votre code d'application, puis remplacez les variables par les valeurs réelles à utiliser pour cette requêtes :
DataObject root = SDOHelper.createRootDataObject();
DataObject entity = SDOHelper.createEntityDataObject(root, null, DO_ENTITY);
entity.createDataObject(DO_IDENTIFIER).setString(PROP_UNIQUE_NAME,
           "o=Sales,cn=users,dc=yourco,dc=com");			
DataObject descCtrl = SDOHelper.createControlDataObject(root, null, DO_DESCENDANT_CONTROL);
// 0 signifie tous les descendants
descCtrl.setInt(PROP_LEVEL, 0); 
descCtrl.getList(PROP_PROPERTIES).add("uid");
descCtrl.getList(PROP_PROPERTIES).add("cn");
descCtrl.getList(PROP_PROPERTIES).add("o");
descCtrl.getList(PROP_PROPERTIES).add("ou");
descCtrl.getList(PROP_PROPERTIES).add("manager");	
		
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>
      <wim:identifier uniqueName="o=Sales,cn=users,dc=yourco,dc=com"/>
    </wim:entities>
    <wim:controls xsi:type="wim:DescendantControl" level="0">
      <wim:properties>uid</wim:properties>
      <wim:properties>cn</wim:properties>
      <wim:properties>o</wim:properties>
      <wim:properties>ou</wim:properties>
      <wim:properties>manager</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:OrgContainer">
      <wim:identifier externalName="o=Sales,cn=users,dc=yourco,dc=com" 
                      repositoryId="LDAP1"
                      uniqueId="eab85abb-9d29-40f1-b502-36c051d3ee96" 
                      uniqueName="o=Sales,cn=users,dc=yourco,dc=com"/>
      <wim:children 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:ou>CA</wim:ou>
      </wim:children>
      <wim:children xsi:type="wim:PersonAccount">
        <wim:identifier externalId="e7db8c0e-d2b3-43fe-be14-1475125606f4" 
                        externalName="uid=SalesPerson1,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"
                        repositoryId="LDAP1" 
                        uniqueName="uid=SalesPerson1,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"/>
        <wim:uid>SalesPerson1</wim:uid>
        <wim:cn>Sales Person1</wim:cn>
        <wim:manager externalId="5e846c20-a1b4-4bfc-bce2-1f841d762f9a" 
                     externalName="uid=SalesManager,cn=users,dc=yourco,dc=com"
                     repositoryId="LDAP1" 
                     uniqueName="uid=SalesManager,cn=users,dc=yourco,dc=com"/>
      </wim:children>
      <wim:children xsi:type="wim:OrgContainer">
        <wim:identifier externalId="70dd624d-6eb0-4fdf-8338-3ae4090b1c6f" 
                        externalName="ou=US,o=Sales,cn=users,dc=yourco,dc=com"
                        repositoryId="LDAP1" 
                        uniqueName="ou=US,o=Sales,cn=users,dc=yourco,dc=com"/>
        <wim:ou>US</wim:ou>
      </wim:children>
      <wim:children xsi:type="wim:PersonAccount">
        <wim:identifier externalId="13ae346f-1e4c-40cd-8896-1c7f0b2b3079" 
                        externalName="uid=SalesPerson3,ou=US,o=Sales,cn=users,dc=yourco,dc=com"
                        repositoryId="LDAP1" 
                        uniqueName="uid=SalesPerson3,ou=US,o=Sales,cn=users,dc=yourco,dc=com"/>
        <wim:uid>SalesPerson3</wim:uid>
        <wim:cn>Sales Person3</wim:cn>
        <wim:manager externalId="5e846c20-a1b4-4bfc-bce2-1f841d762f9a" 
                     externalName="uid=SalesManager,cn=users,dc=yourco,dc=com"
                     repositoryId="LDAP1" 
                     uniqueName="uid=SalesManager,cn=users,dc=yourco,dc=com"/>
      </wim:children>
      <wim:children xsi:type="wim:PersonAccount">
        <wim:identifier externalId="a2d1be42-212e-44f0-8396-0bfc2d7d346d" 
                        externalName="uid=SalesPerson4,ou=US,o=Sales,cn=users,dc=yourco,dc=com"
                        repositoryId="LDAP1" 
                        uniqueName="uid=SalesPerson4,ou=US,o=Sales,cn=users,dc=yourco,dc=com"/>
        <wim:uid>SalesPerson4</wim:uid>
        <wim:cn>Sales Person4</wim:cn>
      </wim:children>
      <wim:children xsi:type="wim:PersonAccount">
        <wim:identifier externalId="a3f9e8a1-117a-4252-840f-6d0cb079a7fb" 
                        externalName="uid=SalesPerson2,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"
                        repositoryId="LDAP1" 
                        uniqueName="uid=SalesPerson2,ou=CA,o=Sales,cn=users,dc=yourco,dc=com"/>
        <wim:uid>SalesPerson2</wim:uid>
        <wim:cn>Sales Person2</wim:cn>
        <wim:manager externalId="5e846c20-a1b4-4bfc-bce2-1f841d762f9a" 
                     externalName="uid=SalesManager,cn=users,dc=yourco,dc=com"
                     repositoryId="LDAP1" 
                     uniqueName="uid=SalesManager,cn=users,dc=yourco,dc=com"/>
      </wim:children>
    </wim:entities>
  </wim:Root>
</sdo:datagraph>
OrganizationUnit CA et ses enfants SalesPerson1 et SalesPerson2, OrganizationUnit US et ses enfants SalesPerson3 et SalesPerson4, et OrganizationUnit Europe sont retournés comme les descendants des ventes OrgContainer Sales.

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