0

我正在一个 .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>

我将不胜感激任何建议。

4

1 回答 1

2

创建文档时不需要扩展。该扩展仅用于管理方面。

而且据我所知,该扩展名并非在所有语言中都可用,所以我不确定是否有 .dll 供您包含在您的项目中。

您是否阅读过这些主题:使用 cmis 将 .net 应用程序与 alfresco 集成

并且:.net wcf 并创建文档

于 2014-02-25T08:52:00.383 回答