Alfresco でドキュメントを作成し、特定の側面とそのプロパティをそれらのドキュメントに関連付ける必要があるよりも、.net Web アプリケーションで作業しています。
アスペクトを作成しました (nameModel.xml、name-model-context.xml このすべてのファイルを拡張フォルダーに、name.properties をメッセージ フォルダーに、custom-slingshot-application-context.xml を web に share-config-custom.xml を作成しました)。 -extension フォルダー) を /opt/bitnami/apache-tomcat/shared/classes/alfresco/ パスに配置します。
私の C# コードには、次の 2 つの方法があります。
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);
}
}
このコードでは、結果としてエラーが発生します:
1 つ目はドキュメントを作成するためのもので、2 つ目はアスペクトとそのプロパティを追加するためのものです。
私は答えを探していました、そして私はこれを見つけました:
しかし、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>
アドバイスをいただければ幸いです。