2016-08-23 1 views
0

Ich habe eine objectId und ich möchte seinen Namen ändern (zum Beispiel) mit Apache Chemistry PHP Library.Update cmis: Name des Objekts (Dokument) mit Apache Chemistry Php Bibliothek

Ich versuche updateProperties-Methode zu verwenden, die Chemistry-Bibliothek bieten ... aber ich kann die Änderung nicht sehen. Was ist los?

$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? 

Kann ich den Namen eines Dokuments ändern?

Allerdings kann ich die cmis: description perfekt ändern ... Warum cmis: Name kann ich nicht?

+0

Niemand mir helfen? – aivdev

Antwort

1

I verglichen, um die durch cmislib (Python) gesendeten Anfrage und eine Gabel Apache Chemistry PHP-Client auf github und gefunden, dass diese die folgenden Atom Anforderung sendet:

<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> 

Der Python Client den neuen Namen in das versendet <atom:title> tag. Ich habe versucht, die <atom:title> und <atom:summary> Tags zu entfernen und den Text über curl --upload-file an Alfresco zu senden, und das hat richtig funktioniert.

Also meine Vermutung ist, dass Alfresco zuerst den Wert des <atom:title> Tag hält (wenn Versuch cmis:name Eigenschaft zu aktualisieren) und fällt auf den Wert des <cmis:value> Tag zurück.

IMHO, kann es ein Bug der PHP-Client-Bibliothek, die nicht sehr schwer zu beheben sein sollte.

+0

Danke Erny. Ich habe versucht, mit dieser anderen Bibliothek https://github.com/dkd/php-cmis-client zu arbeiten, die gut funktioniert. – aivdev

1

Erny war auf dem richtigen Weg.

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

die für mich gearbeitet, Sie brauchen eigentlich nur den Titel in der Array-Optionen Namen ändern

Verwandte Themen