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

时间:2017-07-11 16:08:25

标签: alfresco cmis chemistry

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

我想扩展模型并创建自己的模型。在这种情况下,它非常简单,我创造​​了#my; myPersonal"模型,并创建一个自定义类型' folderAmp' (他的父母是cm:文件夹)。我扩展了这个自定义类型并创建了一个新属性" myP:idNew"我想在哪里存储一些id代码。

所以,当我用这个库(或者在java中)创建一个文件夹时,我用...创建它

JAVA

forEachRemaining

PHP

Spliterator

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

我尝试添加:

properties.put(PropertyIds.OBJECT_TYPE_ID," cmis:文件夹, myP:folderAmp" 但它不起作用。

2 个答案:

答案 0 :(得分:2)

You are looking for createType(). Not all repositories support it.

Get the CMIS Workbench from https://chemistry.apache.org/java/download.html , login into your repository, and open the "Types window". Select the folder type (cmis:folder). If the "Create Type" button on the top is enabled you can create a new subtype of cmis:folder. If not, either the repository doesn't support it or you don't have the permissions to do this.

答案 1 :(得分:0)

但是......如果没有启用创建类型按钮...这个存储库不是“CMIS标准”¿不?

最后,问题我解决了......非常简单......我改变了

$properties = array(
    \Dkd\PhpCmis\PropertyIds::OBJECT_TYPE_ID => 'cmis:folder',
    \Dkd\PhpCmis\PropertyIds::NAME => 'Demo Folder'
);

try {
    $folder = $session->createFolder(
        $properties,
        $session->createObjectId($session->getRepositoryInfo()->getRootFolderId())
    );

由此......

$properties = array(
    \Dkd\PhpCmis\PropertyIds::OBJECT_TYPE_ID => 'F:oto:Historia',
    \Dkd\PhpCmis\PropertyIds::NAME => 'Demo Folder'
);

try {
    $folder = $session->createFolder(
        $properties,
        $session->createObjectId($session->getRepositoryInfo()->getRootFolderId())
    );

如果它是一个模型和Historia,它是我用Alfresco Console Admin创建的自定义类型。我在oto:Historia中包含了所有父(cm:文件夹)属性,并创建了相同的自定义属性。

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