Обновите cmis: имя объекта (документа) с помощью библиотеки Apache Chemistry Php

У меня есть один идентификатор объекта, и я хочу изменить его имя (например) с помощью библиотеки Apache Chemistry PHP.

Я пытаюсь использовать метод updateProperties, который предоставляет библиотека Chemistry … но я не вижу изменений. Что происходит?

$test  = new CMISService($repo_url, $repo_username, $repo_password);
$id = 'ddb6eabd-a862-4e6b-9251-32b6e73300d7';  //existing objectId of the document that his name now is PRUEBAS.

$obj = $test->updateProperties($id, array('cmis:name' => 'PRUEBAS_MODIFIED'));

var_dump($cmis_repo->getObject($obj->id)); // I see that cmis:name continue PRUEBAS instead of PRUEBAS_MODIFIED ¿why?

Могу ли я изменить название документа?

Однако я могу изменить свойство cmis: description идеально … Почему cmis: name я не могу?

0

Решение

Я сравнил запрос, отправленный cmislib (python) и клиентской вилкой PHP Apache Chemistry на github, и обнаружил, что последний отправляет следующий запрос атома:

  <atom:title>PRUEBAS</atom:title>
<atom:summary>PRUEBAS</atom:summary>
<cmisra:object>
<cmis:properties>
<cmis:propertyString propertyDefinitionId="cmis:name">
<cmis:value>PRUEBAS_MODIFIED</cmis:value>
</cmis:propertyString>
</cmis:properties>
</cmisra:object>

Клиент Python отправляет новое имя в <atom:title> тег. Я пытался удалить <atom:title> а также <atom:summary> теги и отправить текст через curl --upload-file на свежем воздухе, и это работало правильно.

Так что я предполагаю, что Alfresco в первую очередь учитывает ценность <atom:title> тег (при попытке обновить cmis:name свойство) и возвращается к значению <cmis:value> тег.

ИМХО, это можно считать ошибкой клиентской библиотеки php, которую не очень сложно исправить.

1

Другие решения

Эрни был на правильном пути.

public function renameObject($objectId, $name)
{
$properties = array(
'cmis:name' => $name
);
$options = array(
'title' => $name,
'summary' => $name,
);
return $this->repository->updateProperties($objectId, $properties, $options);
}

Это сработало для меня, на самом деле вам нужен только заголовок в массиве параметров, чтобы изменить имена

1

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector