我正在一个 .net Web 应用程序中工作,而不是需要能够在 Alfresco 中创建文档,然后将特定方面及其属性与这些文档相关联。
我在扩展文件夹中创建了我的方面(nameModel.xml、name-model-context.xml 所有这些文件、消息文件夹中的 name.properties 和 web 中的 custom-slingshot-application-context.xml share-config-custom.xml -extension 文件夹)在 /opt/bitnami/apache-tomcat/shared/classes/alfresco/ 路径中。
在我的 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 文件放在我的类路径中。但我不知道我在 bitnami 虚拟机中的类路径是什么。
另一件事是如果我在创建我的方面时忘记了一些东西。
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>
我将不胜感激任何建议。