Как я могу связать аспект и его свойство с документом в C# DotCmis Alfresco

Я работаю в веб-приложении.net, и мне нужно создавать документы на Alfresco, а затем связывать определенный аспект и его свойства с этими документами.

Я создал свой аспект (nameModel.xml, name-model-context.xml все эти файлы в папке расширений, name.properties в папке сообщений и custom-slingshot-application-context.xml share-config-custom.xml в Интернете папка -extension) в /opt/bitnami/apache-tomcat/shared/classes/alfresco/ path.

В моем коде C# у меня есть два метода:

        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);
        }
    }

С этим кодом у меня в результате ошибка:

Первый предназначен для создания документа, а второй - для добавления аспекта и его свойств.

Я искал ответ, и я нашел это: http://docs.alfresco.com/4.0/index.jsp?topic=%2Fcom.alfresco.enterprise.doc%2Fconcepts%2Fopencmis-ext-intro.html

Но на самом деле не знаю, как установить Alfresco OpenCMIS Extension; они говорят, что мне нужно положить файл JAR в мой путь к классу. Но я не знаю, каков мой путь к классу в битнами виртуальной машине.

Другое дело, если я забыл что-то в создании моего аспекта.

pd: для меня важно, но не срочно, чтобы это можно было сделать, если однажды возникнет необходимость изменить Alfresco на Sharepoint или другое корпоративное управление контентом

Я буду признателен за любую помощь.


Спасибо! Вы знаете, где я могу увидеть хороший пример? Я думаю, что первый пункт: мне нужно изменить свою модель. В данный момент у меня есть свойства внутри тегов аспектов. Мне нужно будет создать типы и свойства... Можете ли вы сказать мне, если я иду хорошим путем?

Это мой файл xml модели (aridocsModel.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>

Буду признателен за любые советы.

1 ответ

Вам не нужны расширения при создании документа. Расширение только для управления аспектами.

Из того, что я слышал, расширение доступно не на всех языках, поэтому я не уверен, есть ли в вашем проекте файл.dll.

Читали ли вы эти темы: интегрируйте приложение.net с Alfresco, используя cmis

И: .net wcf и создать документ

Другие вопросы по тегам