Documentum DFS, renaming dm_user (user_name attribute)
-
08-10-2019 - |
Question
After changing some user's user_name attribute with DFS Object web service consistency checker fails. It seems Documentum uses user_name as foreign key in other documents and renaming this attribute on dm_user doesn't change all foreign keys of this user.
Anyone knows how to correctly change user_name value and all its 'dependencies'? Is this even possible with DFS?
Oh, I am using .NET c#, so any solution have to be compatible with that.
Consistency checker report:
WARNING CC-0002: User 'FirstName LastName' is referenced in dm_group with id '1200400186008806' but does not have a valid dm_user object ....
It goes like this for about 50 users. after that comes:
WARNING CC-0007: ACL object with r_object_id '4500000160051328' has a non-existent user 'FirstName LastName' ...
and about 50000 more lines for ACL, sysobjects,...
tnx
EDIT: some clarifications
EDIT 2: added consistency checker report
Solution 2
Ok, figured it out:
What you have to do is create new dm_job_request with following attributes:
object_name = "UserRename",
job_name = "dm_UserRename",
method_name = "dm_UserRename",
request_completed = false,
priority = 0,
arguments_keys = "OldUserName,NewUserName,report_only,unlock_locked_obj".Split(','), //stringarrayproperty
arguments_values = "test,test123,F,T".Split(',') ////stringarrayproperty
After that you manually run dm_userrename job. I tried to set priority to 1 (that was supposed to be "run Now" option) but it didn't automatically start dm_userrename
Hope this helps someone.
OTHER TIPS
Dm_userrename job is the way to do it. Having the user_name as the foreign key was not a great design choice but we have to live with it.
I'm not quite sure what you mean buy renaming dm_user, but I expect that you're going to get a heap of problems, considering it's pretty fundamental to the whole platform.
Documentum is effectively an object-orientated database, so you should be able to create a sub-type of dm_user, call it what you like and it should behave in the same way.
You could use a DQL query to do the update, which you could issue through DFC. Something like
UPDATE dm_document set user_name='new name' where user_name='old name'