Deleting entities
Use the delete (DataObject) method and DeleteControl to remove entries.
About this task
This is the hierarchical structure for the OrgContainer
Sales:
- dc=yourco,dc=com
- cn=users
- o=Sales
- ou=CA
- uid=SalesPerson1
- uid=SalesPeson2
- ou=US
- uid=SalesPerson3
- uid=SalesPeson4
- ou=CA
- o=Sales
- cn=users
In this example OrgContainer Sales and its descendants are being removed from the repository.
To remove an entity,
OrgContainer Sales and its descendants from the data repository, add
this sample code to your application code and replace the variables with
the actual values that you want to use for this request:
DataObject root = SDOHelper.createRootDataObject();
DataObject entity = SDOHelper.createEntityDataObject(root, null, DO_ENTITY);
DataObject ctrl = SDOHelper.createControlDataObject(root, null, DO_DELETE_CONTROL);
ctrl.setBoolean(PROP_DELETE_DESCENDANTS, true);
ctrl.setBoolean(PROP_RETURN_DELETED, true);
entity.createDataObject(DO_IDENTIFIER).set(PROP_UNIQUE_NAME,
"o=Sales,cn=users,dc=yourco,dc=com");
root = service.delete(root);
Sample input and output data graphs
For
this particular example the input data graph is:
<?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:DeleteControl" deleteDescendants="true" returnDeleted="true"/>
</wim:Root>
</sdo:datagraph>
The resulting output data graph is:
<?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: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:entities>
<wim:entities xsi:type="wim:OrgContainer">
<wim:identifier externalName="ou=CA,o=Sales,cn=users,dc=yourco,dc=com"
repositoryId="LDAP1"
uniqueId="0dfcccf7-9fb9-4b25-a0f4-ff4b6b33068e"
uniqueName="ou=CA,o=Sales,cn=users,dc=yourco,dc=com"/>
</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:entities>
<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:entities>
<wim:entities xsi:type="wim:OrgContainer">
<wim:identifier externalName="ou=US,o=Sales,cn=users,dc=yourco,dc=com"
repositoryId="LDAP1"
uniqueId="70dd624d-6eb0-4fdf-8338-3ae4090b1c6f"
uniqueName="ou=US,o=Sales,cn=users,dc=yourco,dc=com"/>
</wim:entities>
<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:entities>
</wim:Root>
</sdo:datagraph>
The OrgContainer Sales is deleted as well as its descendants
OrganizationUnits CA and US and their children SalesPerson1, SalesPerson2,
SalesPerson3 and SalesPerson4.For end-to-end sample code, see the topic, Sample code for working with users, groups, group members, and group memberships.