使用DFS更改某些用户的 user_name 属性后,Web服务一致性检查程序失败。似乎Documentum在其他文档中使用user_name作为外键,并且在dm_user上重命名此属性不会更改此用户的所有外键。
任何人都知道如何正确更改user_name值及其所有“依赖项”? DFS甚至可以实现这一点吗?
哦,我正在使用.NET c#,因此任何解决方案都必须与之兼容。
一致性检查报告:
警告CC-0002:用户' FirstName 在dm_group中引用了LastName ' id为'1200400186008806',但确实如此 没有有效的dm_user对象 ....
约50个用户就是这样。 在那之后:
警告CC-0007:ACL对象 r_object_id'4500000160051328'有一个 不存在的用户' FirstName LastName ' ...
和ACL,sysobjects,...还有大约50000行
TNX
编辑:一些澄清
编辑2:添加了一致性检查报告
答案 0 :(得分:3)
Dm_userrename作业是这样做的。将user_name作为外键并不是一个很好的设计选择,但我们必须忍受它。
答案 1 :(得分:3)
好的,想通了:
您需要做的是创建具有以下属性的新dm_job_request:
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
之后,您手动运行dm_userrename作业。我试图将优先级设置为1(那应该是“立即运行”选项)但它没有自动启动dm_userrename
希望这有助于某人。
答案 2 :(得分:1)
我不太清楚你的意思是购买重命名dm_user,但我希望你会遇到一堆问题,因为它对整个平台来说都是非常基础的。
Documentum实际上是一个面向对象的数据库,所以你应该能够创建一个dm_user的子类型,按你喜欢的方式调用它,它应该以相同的方式运行。
答案 3 :(得分:-1)
您可以使用DQL查询来执行更新,您可以通过DFC发出更新。 像
这样的东西UPDATE dm_document set user_name='new name' where user_name='old name'