2016-09-15 15 views
0

Documentum 데이터 저장소에 연결된 Java 프로젝트를 수행하고 있습니다. API 클래스를 사용하여 수동으로 ACL을 만들려고합니다. 다음은 내 코드입니다 :API를 사용하여 java에서 documentum ACL의 소유자를 설정 하시겠습니까?

  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이라고 말합니다. 어떤 생각을 어떻게 고칠 수 있습니까? 옆에 내가 dm_acl에 성공적으로 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."

+1

ACL 소유자가 dm_acl 오브젝트를 작성하는 세션 소유자로부터 간접적으로 설정된다고 가정합니다. 왜 그것을 바꾸고 싶습니까? – Miki

+1

시험해보기 : acl.setString ("owner_name", "dm_dbo"); acl.save(); – KarolBe

+0

@KarolBe Thanks Worked;) –

답변

0

당신이 직면하고있는 [DM_ACL_E_USER_NOT_EXIST] 오류가 아마 당신의 ACL과 그 사이에 어떻게 든 그것은 삭제되었다. 이제 dm_acl 개체를 업데이트 할 때이 문제가 발생합니다.

0

문제는 코드에서 ACL 접근자를 올바르게 정의하지 않는다는 것입니다. 메시지에서 을 볼 수 있습니다. 접근 자의 이름으로 ACL의 이름을 설정하려고합니다.

permit.setAccessorName(newAcl.toString());

그리고 사용 권한을 설정하고있는 기존 사용자/그룹의 이름이어야합니다.