我在.net网络应用程序中工作,而不是需要能够在Alfresco中创建文档,然后将特定方面和他的属性与这些文档相关联。
我创建了我的方面(nameModel.xml,name-model-context.xml扩展文件夹中的所有文件,messages文件夹中的name.properties和custom-slingshot-application-context.xml share-config-custom.xml在web-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文件放在我的类路径中。但我不知道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>
我将不胜感激。
答案 0 :(得分:2)
创建文档时不需要扩展名。该扩展仅用于管理方面。
根据我所听说的,所有语言都没有扩展名,所以我不确定你的项目中是否包含.dll。
您是否阅读了以下主题:integrate a .net application with alfresco using cmis