0

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

我想扩展模型并创建自己的模型。在这种情况下,非常简单,我创建“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(
    \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.put(PropertyIds.OBJECT_TYPE_ID, "cmis:folder, myP:folderAmp"但它不起作用。

4

2 回答 2

2

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

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

于 2017-07-12T08:14:13.347 回答
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())
    );

oto 是一个模型,而 Historia 是我使用 Alfresco Console Admin 创建的自定义类型。我在 oto:Historia 中包含了所有父 (cm:folder) 属性并创建了相同的自定义属性。

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

于 2017-07-12T12:07:32.537 回答