2014-03-14 18 views
0

CMIS를 사용하여 alfresco에서 문서와 폴더를 만드는 데이 방법을 사용하여 Java를 사용하는 작업 코드가 있습니다.DotCMIS를 사용하여 Alfresco 폴더 및 문서에 aspect/extentions를 추가하는 방법은 무엇입니까?

Folder.createFolder(
     Map<string, ?> properties, 
     List<Policy> policies, List<Ace> addAce, List<Ace> removeAce, 
     OperationContext context);   

그리고 나는 (그들이 같은 매개 변수가) 문서를 만들기위한 Folder.createDocument을 사용하고 다음과 같이 그것을 사용 :

AlfrescoFolder.java

parentFolder.createFolder(
     AlfrescoUtilities.mapAlfrescoObjectProperties("cmis:folder", 
      folderName, title, description, tags), 
     null, null, null, 
     AlfrescoSession.getSession().getDefaultContext() 
    ); 

    // AlfrescoSession.getSession() a custom method that we created to 
    // create a Session variable 



AlfrescoUtilities.java 위의 코드에서

public static Map<String, Object> mapAlfrescoObjectProperties( String objectType, String name, String title, String description, List<String> tags) { Map<String, Object> properties = new HashMap<>(); properties.put(PropertyIds.OBJECT_TYPE_ID, objectType + ",P:cm:titled,P:cm:taggable"); properties.put(PropertyIds.NAME, name); if (title != null) properties.put("cm:title", title); if (description != null) properties.put("cm:description", description); if (tags != null) properties.put("cm:taggable", tags); return properties; } } 

, objectType의 매개 변수는 cmis:folder 또는 cmis:document 중 하나가 될 것이며 우리는 설명을 추가하는 측면을 추가하려면 그에 대한 설명과 제목과 P:cm:taggable을 추가 P:cm:titled을 추가하는 것입니다 발견 태그를 첨부하십시오.

이제 C#을 사용하는 .NET 응용 프로그램에서 작업하고 있습니다. 그것을 번역과 같은 방법을 사용하면 는 유일한 문제는 여기 P:cm:tittled; P:cm:taggable

제거 특성 만들기위한 현재 코드 인 경우에만 작동된다 :

AlfrescoUtilities.cs을

public static Dictionary<string, object> mapAlfrescoObjectProperties(
     string objectType, string name, string title, string description, 
     List<string> tags) 
    { 
     Dictionary<string, object> properties = new Dictionary<string, object>(); 

     properties[PropertyIds.ObjectTypeId] = objectType; 
      // +",P:cm:titled,P:cm:taggable"; 
     properties[PropertyIds.Name] = name; /*    
     if (title != null) properties["cm:title"] = title; 
     if (description != null) properties["cm:description"] = description; 
     if (tags != null) properties["cm:taggable"] = tags; 
     */ 
     return properties; 
    } 

그리고 내가 알아챈 것처럼 나는 다른 코드에 댓글을 달았습니다.
해당 작업은 objecttypeid (cmis : 폴더 또는 cmis : 문서 여부)
이고 이름은 한 번입니다.


친절하게 도와주세요. 이것은 .NET 3.5 및 C#을 사용하는 Windows 응용 프로그램입니다. Alfresco 버전은 4.2.3입니다.

+1

dotcmis에서 aspect를 추가하는 것이 지원되지 않는다고 생각합니다. – billerby

+0

그러나 extentions/aspect를 가져올 수 있습니까? –

답변

0

우리는 dotCmis < = 0.6.0이 CMIS 1.1을 지원하지 않으며 따라서 애스 팩트 속성에 대한 기본 지원이 없음을 확인했습니다.

그러나, 우리는 성공적으로 낮은 수준의 CMIS의 API 작업을 수동으로 프레스코 CMIS 확장을 활용 http://mail-archives.apache.org/mod_mbox/chemistry-dev/201202.mbox/%[email protected]-solutions.com%3E

에 기술 된 방법을 시험했다.

우리는 또한 session.Query ("select * from nm : aspectName") 결과에 aspect 속성이 포함되어 있는지 확인했습니다.