Control de versiones de afresco.

cancel
Showing results for 
Search instead for 
Did you mean: 
Highlighted
aldo_valenzuela
Member II

Control de versiones de afresco.

Hola, estoy trabajando con alfresco y al momento de subir un archivo no hay problema, el problema es que al momento de intentar subir un archivo con el mismo nombre no sube nada.  ¿Cómo hago para que cuando suba documentos que ya existan en Alfresco no me de error sino que tome el documento como una nueva versión del archivo que ya se encuentra en Alfresco? la version de alfresco que estoy utilizando es la 5.2 y el codigo para subir un archivo es el siguiente:

<?php
//DATA
$ticket = 'xxxx';
$pdfnode = '13caa245-2249-4769-953c-b010053a6fd4';
$server = 'xxxx';
$port = ':8080';
$filename = 'test.txt';
$type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
$url = $server.$port.'/alfresco/api/-default-/public/alfresco/versions/1/nodes/'.$pdfnode.'/children?alf_ticket='.$ticket;
$ch = curl_init($url);
$args = new CurlFile($filename,$type,$filename);
$data = array(
'nodeType'=>'cm:content',
'filedata'=>$args
);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
curl_setopt($ch, CURLOPT_HEADER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_VERBOSE, true);
$result = curl_exec($ch);
?>
Atento a su ayuda.
8 Replies
angelborroy
Expert

Re: Control de versiones de afresco.

Para subir nuevas versiones, necesitas bloquear el nodo previamente.

Tienes un ejemplo aquí: https://community.alfresco.com/community/ecm/blog/2016/11/11/v1-rest-api-part-5-versioning-locking

Software Engineer in Alfresco Search Team.
aldo_valenzuela
Member II

Re: Control de versiones de afresco.

Estimado, lamentablemente no he conseguido obtener resultados positivos siguiendo el tutorial. al momento de agregar propiedades no tengo ningún problema por ejemplo en el siguiente código añado la propiedad MajorVersion=true de la siguiente manera:

 

 

<?php

 

//DATA

$ticket = 'TICKET_f7acb34052591bf8cc49add5be1dd17578ebc5cc';

$pdfnode = '13caa245-2249-4769-953c-b010053a6fd4';

$server = 'http://192.168.120.209';

$port = ':8080';

$filename = '../informeGeneradores/files/minuta12.pdf';

$type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';

$url = $server.$port.'/alfresco/api/-default-/public/alfresco/versions/1/nodes/'.$pdfnode.'/children?alf_ticket='.$ticket;

 

$ch = curl_init($url);

 

$args = new CurlFile($filename,$type,$filename);

 

$data = array(

'nodeType'=>'cm:content',

'filedata'=>$args,

'name'=> 'version',

'MajorVersion'=>'true'

);

 

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_HEADER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_VERBOSE, true);

 

$result = curl_exec($ch);

echo $result;

?>

 

y el resultado es el siguiente:

 

{"entry":{"isFile":true,"createdByUser":{"id":"admin","displayName":"Administrator"},"modifiedAt":"2018-05-25T16:41:49.397+0000","nodeType":"cm:content","content":{"mimeType":"application/pdf","mimeTypeName":"Adobe PDF Document","sizeInBytes":5172,"encoding":"UTF-8"},"parentId":"13caa245-2249-4769-953c-b010053a6fd4","aspectNames":["cm:versionable","cm:titled","cm:auditable","cm:author"],"createdAt":"2018-05-25T16:41:49.397+0000","isFolder":false,"modifiedByUser":{"id":"admin","displayName":"Administrator"},"name":"version","id":"0418771d-adc4-4343-8eba-9d9015b8e1b2","properties":{"cm:versionLabel":"1.0","cm:versionType":"MAJOR"}}} 

 

Pero luego en el siguiente paso le añado la siguiente propiedad:

majorversion= false de la siguiente manera:

 

 

<?php

 

//DATA

$ticket = 'TICKET_f7acb34052591bf8cc49add5be1dd17578ebc5cc';

$pdfnode = '13caa245-2249-4769-953c-b010053a6fd4';

$server = 'http://192.168.120.209';

$port = ':8080';

$filename = '../informeGeneradores/files/minuta12.pdf';

$type = 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';

$url = $server.$port.'/alfresco/api/-default-/public/alfresco/versions/1/nodes/'.$pdfnode.'/children?alf_ticket='.$ticket;

 

$ch = curl_init($url);

 

$args = new CurlFile($filename,$type,$filename);

 

$data = array(

'nodeType'=>'cm:content',

'filedata'=>$args,

'name'=> 'version',

'majorVersion'=>'false',

'comment'=>'second'

);

 

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_HEADER, false);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_VERBOSE, true);

 

$result = curl_exec($ch);

echo $result;

?>

 

y el resultado es el siguiente:

 

{"error":{"errorKey":"version already exists.","statusCode":409,"briefSummary":"04250647 version already exists.","stackTrace":"Por motivos de seguridad, ya no se muestra el seguimiento de la pila, pero se guarda la propiedad para versiones anteriores.","descriptionURL":"https://api-explorer.alfresco.com"}} 

 

la verdad no se qué es lo que estoy haciendo mal también he intentado subiendo un archivo con la propiedad majorversion=false y repitiendo el procedimiento me da el mismo error. Espero me puedas ayudar.

vicevaldes
Member II

Re: Control de versiones de afresco.

Estimado angel, lamentablemente yo tambien estoy teniendo el mismo problema... paso los argumentos y puedo modificar el nombre, cambiar de majorVersion a minorVersion pero al momento de cargar el segundo archivo sigo atrapado en el mismo problema.

angelborroy
Expert

Re: Control de versiones de afresco.

Hace tiempo que no lo pruebo, pero esto funcionaba:

https://github.com/keensoft/alfresco-ttl-106/blob/master/postman/collections/Alfresco%20TTL%20106.po...

Hace la siguiente invocación pasando el contenido en el payload

[PUT] http://localhost:8080/alfresco/api/-default-/public/alfresco/versions/1/nodes/0a3f5195-4884-49bb-b1a... version  

Software Engineer in Alfresco Search Team.
vicevaldes
Member II

Re: Control de versiones de afresco.

Estimado,

He intentado con la url que me has mandado en el enlacePero lo que hace es descargar un archivo y no modifica la version, obviamente algo esto haciendo mal pero no logro darme cuenta en que estoy fallando, espero me puedas ayudar.

angelborroy
Expert

Re: Control de versiones de afresco.

Haz un PUT, no un GET

Software Engineer in Alfresco Search Team.
vicevaldes
Member II

Re: Control de versiones de afresco.

Muchas gracias por la paciencia Angel Voy a intentar nuevamente.

hmercado67
Active Member

Re: Control de versiones de afresco.

Aldo, cordial saludo. Pudiste resolver este asunto?