CMIS 将自定义类型添加到 cm:文件夹



我有一个存储库,我在其中创建了一些站点,用于存储我的组织创建的所有文档和文件夹。 我有一个包含这个php库 https://github.com/dkd/php-cmis-client(Apache Chemistry Java实现的端口(的Web应用程序。 所以我可以创建文档、文件夹、设置一些属性等......但我想做"更多"。

我想扩展模型并创建自己的模型。在这种情况下,非常简单,我创建"myPersonal"模型,并创建一个自定义类型"folderAmp"(他的父母是cm:folder(。我扩展了这个自定义类型并创建了一个新属性"myP:idNew",我想在其中存储一些 id 代码。

因此,当我使用此库(或者可能在 java 中创建(创建一个文件夹时,我使用...

.JAVA

Folder parent = ....
Map<String, Object> properties = new HashMap<String, Object>();
properties.put(PropertyIds.NAME, "a new folder");
properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder");
// create the folder
Folder newFolder = parent.createFolder(properties);

.PHP

$properties = array(
DkdPhpCmisPropertyIds::OBJECT_TYPE_ID => 'cmis:folder',
DkdPhpCmisPropertyIds::NAME => 'Demo Folder'
);
try {
$folder = $session->createFolder(
$properties,
$session->createObjectId($session->getRepositoryInfo()->getRootFolderId())
);

因此,如果我想添加新的自定义类型...我要做什么?

我尝试添加以下内容:

properties.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder,myP:folderAmp">但它不起作用。

你正在寻找 createType((。并非所有存储库都支持它。

从 https://chemistry.apache.org/java/download.html 获取CMIS工作台,登录到存储库,然后打开"类型窗口"。选择文件夹类型 (cmis:folder(。如果启用了顶部的"创建类型"按钮,则可以创建新的子类型cmis:folder。如果没有,则存储库不支持它,或者您没有执行此操作的权限。

但是...如果未启用"创建类型"按钮...此存储库不是"CMIS 标准"¿no?

最后,我解决了这个问题...很简单...我改变

$properties = array(
DkdPhpCmisPropertyIds::OBJECT_TYPE_ID => 'cmis:folder',
DkdPhpCmisPropertyIds::NAME => 'Demo Folder'
);
try {
$folder = $session->createFolder(
$properties,
$session->createObjectId($session->getRepositoryInfo()->getRootFolderId())
);

通过这个...

$properties = array(
DkdPhpCmisPropertyIds::OBJECT_TYPE_ID => 'F:oto:Historia',
DkdPhpCmisPropertyIds::NAME => 'Demo Folder'
);
try {
$folder = $session->createFolder(
$properties,
$session->createObjectId($session->getRepositoryInfo()->getRootFolderId())
);

其中oto它是一个模型,而Historia是我用Alfresco控制台管理员创建的自定义类型。我在 oto:Historia 中包含所有父 (cm:folder( 属性,并创建了相同的自定义属性。

当我创建文件夹时,它是用oto:Historia类型创建的。

相关内容

  • 没有找到相关文章

最新更新