Как я могу связать аспект и его свойство с документом в 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