Reparenting a sub-community is a feature added in Connections 4.5 CR3.
This feature allows you to move a sub-community to a Parent level, but also allows you to move the sub community to a different parent. (Think of the sub community as the child).
To move a sub-community, you use wsadmin, and the CommunitiesService.moveSubcommunityToCommunity(“CommunityUNID”) command.
Here is the IBM Link to the this utility.
I ran into an issue when trying to move the Community.
Firing up wsadmin as our usual Admin user, I got the below error.
The System.Out
000009a TangoServiceI W com.ibm.tango.internal.service.TangoServiceImpl getMemberProfileWithUpdates CLFRM0110W: Undetermined memberProfile, in which its name: waslocaladmin, email: null, member uuid: 2f333cc26-b4d5-437d-b970-c9c1b3c076aa, and logins: [waslocaladmin], closely matches to directory service object of an user, whose name: waslocaladmin, email: null, and logins: [waslocaladmin].
Then
000009a TangoServiceI E com.ibm.tango.internal.service.TangoServiceImpl updateCommunity CLFRM0039E: internal error
com.ibm.tango.exception.MemberDuplicateLoginIdException: [waslocaladmin]
at com.ibm.tango.internal.service.TangoServiceImpl.getMemberProfileWithUpdates(TangoServiceImpl.java:3187)
This was interesting, as the user waslocaladmin user was the Admin user for Connections, but wasn’t listed as an Admin userroles in the Application.
Additionally, waslocaladmin user was in the file based repository.
Workaround..
Switching to our support login, which has Administration access to the Communities application, I was able to run the reparenting command successfully.
This was done by running the wsadmin command as the support user.
Fix..
Further Troubleshooting revealed that this issue is more than likely the waslocaladmin id not being synced with the Community member database table.
This environment was upgraded, so in theory this could be correct. The migration method was a side-by-side install, so the waslocaladmin user would be different.
Synchronise a single member’s directory ID in the Communities member database table
- Open a command prompt and navigate to C:\IBM\WebSphere\AppServer\profiles\Dmgr01\bin
- Run wsadmin -lang jython -user waslocaladmin -password password -port 8879
From the wsadmin prompt run:
wsadmin>execfile(“communitiesAdmin.py”) (enter)
wsadmin>CommunitiesMemberService.syncMemberExtIdByLogin(“waslocaladmin”)
Errors have stopped, so fingers crossed!