2014-02-24 13 views
0

Alfresco에서 문서를 만든 다음 특정면과 그의 특성을 해당 문서에 연결할 수 있어야하는 것보다 .net 웹 응용 프로그램에서 작업하고 있습니다. .어떻게 C# DotCmis에서 문서에 애스펙트와 속성을 연결할 수 있습니까? Alfresco

내 aspect (nameModel.xml, name-model-context.xml)를 확장 폴더에, name.properties를 messages 폴더에, custom-slingshot-application-context.xml share-config-custom에 각각 만들었습니다. 웹 확장 폴더의 xml)/opt/bitnami/apache-tomcat/shared/classes/alfresco/path에 있습니다. i가 오류 발생으로이이 코드

 public void PutFile(CMISDocument document) 
    { 
     IObjectId cmisObjectFolder = (IObjectId)session.GetObject(document.FolderId); 

     IDictionary<string, object> properties = new Dictionary<string, object>(); 
     properties[PropertyIds.Name] = document.ContentStreamFileName; 
     properties[PropertyIds.ObjectTypeId] = "cmis:document"; 
     properties[PropertyIds.CreationDate] = DateTime.Now; 

     ContentStream contentStream = new ContentStream(); 
     contentStream.FileName = document.ContentStreamFileName; 
     contentStream.MimeType = document.ContentStreamMimeType; 
     contentStream.Length = document.Stream.Length; 
     contentStream.Stream = document.Stream; 

     IObjectId objectId = session.CreateDocument(properties, cmisObjectFolder, contentStream, DotCMIS.Enums.VersioningState.None); 

     PutFileDetail(objectId,document.Owner); 
    } 

     internal void PutFileDetail(IObjectId objectId,string actorIdCard) 
    { 
     ICmisObject cmisObject = session.GetObject(objectId); 

     IDictionary<string, object> properties = new Dictionary<string, object>(); 
     properties[PropertyIds.ObjectTypeId] = "adm:aridoctypBase"; 
     properties["adm:actidcard"] = actorIdCard; 

     IObjectId newId = cmisObject.UpdateProperties(properties); 

     if (newId.Id == cmisObject.Id) 
     { 
      // the repository updated this object - refresh the object 
      cmisObject.Refresh(); 
     } 
     else 
     { 
      // the repository created a new version - fetch the new version 
      cmisObject = session.GetObject(newId); 
     } 
    } 

: 첫번째 문서 및 제를 만들위한

추가하기위한 것이다

내 C# 코드에서

나는 두 가지 방법이 애스펙트와 그의 속성.

내가 대답을 찾고 있었다, 나는이 finded : http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fopencmis-ext-intro.html

을하지만 정말 알 프레스코 OpenCMIS 확장을 설치하는 방법을 모른다; 그들은 클래스 경로에 jar 파일을 넣어야한다고 말합니다. 하지만 bitnami 가상 컴퓨터에서 내 클래스 경로가 무엇인지 모르겠습니다.

다른면은 내 측면의 생성에 뭔가를 잊었습니다.

PD : 그것은이 방법은 어느 날 A가 셰어 또는 다른 다른 엔터프라이즈 컨텐츠 관리

내가 어떤 도움을 뵙죠 것에 프레스코를 변경할 필요가있는 경우이 작업을 할 수 할 것을, 나에게 중요하지만도 시급하다.


고마워요! 내가 어디에서 좋은 모범을 볼 수 있는지 아십니까? 나는 첫 번째 요점 : 나는 나의 모델을 바꿀 필요가 있다고 생각한다. 이 순간에는 aspect 태그 내부에 속성이 있습니다. 유형과 속성을 만들어야합니다 ... 내가 좋은 방향으로 가고 있는지 말해 줄 수 있습니까?

이 (aridocsModel.xml) 이력서 내 모델 XML 파일입니다 : 이제

<?xml version="1.0" encoding="UTF-8"?> 
<model name="adm:aridocsModel" xmlns="http://www.alfresco.org/model/dictionary/1.0"> 

     ... 

     <aspects> 
       <aspect name="adm:aridocsBase"> 
       <title>AriDocs Base</title> 
           <properties> 
            <property name="adm:createdate"> 
              <type>d:date</type> 
            </property> 
            <property name="adm:disabledate"> 
              <type>d:date</type> 
            </property> 
            <property name="adm:artiddoc"> 
              <type>d:text</type> 
            </property> 
            <property name="adm:accnumber"> 
              <type>d:text</type> 
            </property> 
            <property name="adm:actidcard"> 
              <type>d:text</type> 
            </property> 
           </properties> 
       </aspect> 
     </aspects> 
</model> 

, 내가 측면 작동하지 않을 수있는 방법; 유형이 필요합니다.

<?xml version="1.0" encoding="UTF-8"?> 
<model name="adm:aridocsModel" xmlns="http://www.alfresco.org/model/dictionary/1.0"> 

     ... 

     <types> 
       <type name="adm:aridoctypBase"> 
         <title>Ari Docs Type Base</title> 
         <parent>cm:content</parent> 
          <properties> 
            <property name="adm:createdate"> 
              <type>d:date</type> 
            </property> 
            <property name="adm:disabledate"> 
              <type>d:date</type> 
            </property> 
            <property name="adm:artiddoc"> 
              <type>d:text</type> 
            </property> 
            <property name="adm:accnumber"> 
              <type>d:text</type> 
            </property> 
            <property name="adm:actidcard"> 
              <type>d:text</type> 
            </property> 
           </properties> 
       </type> 
     </types> 

     ... 
     <!-- i need put the aspect here... Even if i will work with types... --> 
     ... 

</model> 

나는 조언을 부탁드립니다.

답변

2

문서를 만들 때 확장 프로그램이 필요하지 않습니다. 확장은 측면 관리에만 해당됩니다.

그리고 확장 기능을 모든 언어로 사용할 수 없다고 들었으므로 프로젝트에 .dll 파일을 포함 시킬지 모르겠습니다. integrate a .net application with alfresco using cmis

그리고 :

는 이러한 주제 읽었다 답변에 대한 .net wcf and create document

+0

감사합니다,하지만 난 측면을 관리 할; 이런 이유로 나는 연장을 언급했다. 나는 이제 "xyz.txt"문서를 만들고이 문서에 특정 측면의 몇 가지 속성을 추가하고 싶습니다. 내가 어떻게 해? –

+0

사용할 수있는 확장자가 없으면 다른 방법은 없습니다. 속성이있는 유형으로 작업해야합니다.나는 동일한 문제 (확장이 가능하지 않음)가있는 구현을 수행 했으므로 여러 내용 유형으로 여러 중첩 유형을 작성하여 일부 작업을 복잡하게 만들었지 만 동일한 결과를 제공했습니다. –