Category:Group as Group Sync
Last Updated:2011-08-18
 
Default functionality for Group as Group sync is outlined in the How can I sync Groups as Groups (List Processing) article. Default Group as Group sync processing requires that you sync both Groups AND member objects (Users/Contacts).This is required because the connection needs to know how to resolve the DNs of the Group members in order to sync group membership.
You may have a connection that syncs Groups which contain synced contacts as members. The default Groups as Groups connection will drop those members, because the connection does not sync the member's contact objects.
In these cases, you may implement a DNHashGen connection solution. This solution uses a Join connection between the source and destination, and builds a DNHash.txt file containing DN information for the source and destination member objects. This file is used by your Group sync connection so Group Membership can be resolved for those synced contact members.
Connection 1 (DirA-to-DirB) is your standard sync connection, which syncs Users and Groups as Groups. This connection will utilize the dnhash.txt created by Connection 2.
Connection 2 (DirA-to-DirB-DNHashGen) uses a special destination sync engine of DNHASHGen. This connection uses Source/Dest indexes to perform a JOIN identifying matching member objects between the source and destination directories. Suggested indexes may be Mail/Mail, or some other set of unique index attributes. When the DNHashGen connection runs, the JOIN is performed, exporting a file, export.txt. This file contains a hash table identifying source/destination matches. (Your destination objects are not touched.) You will rename Export.txt to DNHash.txt and copy to Connection 1 i.e. \Connections\DirA-To-DirB\DNHash.txt.
Connection 3 (DirB-to-DirA) is your standard sync connection that is syncing contacts into DirA. These contacts are then added as Members to local Groups. Note: If you are syncing Groups as Groups in both directions, and members are synced contacts, you'll need another DNHashGen Connection for this connection as well (DirB-to-DirA DNHashGen). Follow the same format as outlined for Connection 2, using Connection 3 source/dest info. And copy this second Export.txt to \DirB-to-DirA\dnhash.txt.
To create Connection 1 (DirA-to-DirB) and Connection 3 (DirB-to-DirA)
To create Connection 2 (DirA-to-DirB-DNHashGen)
Executing your Connections
Note: If running this on an ongoing basis, you'll want to always run all connections, copying the export.txt to DNHASH.txt in between the connection runs. Sync runs and copy of the export file can be automated via your usual sync script.
Sample Script to execute your connections and copy Export.txt to DNHash.txt
c:
cd\UnitySync-v1.x\programs
shell "DirB-to-DirA"
shell "DirA-to-DirB DNHashGen"
copy /Y c:\UnitySync-v1.x\connections\DirA-to-DirB-DNHashGen\Export.txt c:\UnitySync-v1.x\connections\DirA-to-DirB\DNHash.txt
shell "DirA-to-DirB"