Я делаю проект java, связанный с хранилищем данных Documentum. Я пытаюсь создать ACL вручную, используя класс API. Ниже мой код:Установить владельца документа ACL в java с помощью API?
StringBuilder newAcl = new StringBuilder();
newAcl.append(selectedItem.getName());
newAcl.append(selectedItem.getId());
newAcl.append("_acl");
IDfACL acl = (IDfACL)_session.newObject("dm_acl");
acl.setObjectName(newAcl.toString());
acl.setDescription(newAcl.toString());
acl.save();
IDfPermit permit = new DfPermit();
permit.setAccessorName(newAcl.toString());
permit.setPermitType(IDfPermit.DF_ACCESS_PERMIT);
permit.setPermitValue(IDfACL.DF_XPERMIT_CHANGE_FOLDER_LINKS_STR);
permit.setPermitValue(IDfACL.DF_PERMIT_READ_STR);
acl.grantPermit(permit);
acl.save();
Дело в том, что я могу successully создать ACL Я пытаюсь создать, и это извлекаемый из dm_acl объекта таблицы. Единственное, что я застрял, - это установить владельца, поскольку я никогда не указывал его в своем коде, и как только я проверю таблицу dm_acl, он говорит, что владелец - dm_admin. Любая идея, как я могу это исправить? Кроме хотя я могу создать ACL успешно dm_acl, но я получаю сообщение об ошибке, а говоря:
[DM_ACL_E_USER_NOT_EXIST]error: "The owner_name or accessor_name 'China InvestmentsCIL_acl' given in the ACL 'China InvestmentsCIL_acl' does not exist."
Я предполагаю, что владелец ACL косвенно установлен из владельца сеанса, который создает объект dm_acl. Почему вы хотите изменить его? – Miki
Попробуйте следующее: acl.setString ("owner_name", "dm_dbo"); acl.save(); – KarolBe
@KarolBe Спасибо, что выработали;) –