Eliminar una etiqueta de un documento y de alfresco , PROBLEMA

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

Eliminar una etiqueta de un documento y de alfresco , PROBLEMA

Muy buenas,

estoy utilizando la API RESTFul de Alfresco. No soy capaz de eliminar una etiqueta de un documento. Ni de eliminar una etiqueta de Alfresco.

Envío una petición DELETE con esta url.

String url = servidor + "/alfresco/service/api/tags/workspace/SpacesStore/" + nombreEtiqueta + "?alf_ticket=" + ticket;

ME devuelve un error : "Error en el servidor remoto: (405) Método no permitido."

- Tengo permisos de Administrador.
- El nombre de la etiqueta existe.

¿Existe alguna manera de poder hacerlo con CMIS?¿Otra manera de hacerlo con la API Rest?

Me estoy volviendo realmente loco,
gracias por su tiempo.

6 Replies
angelborroy
Expert

Re: Eliminar una etiqueta de un documento y de alfresco , PROBLEMA

Para eliminar la etiqueta de Alfresco (también la elimina para todos los nodos en los que esté asociada) puedes invocar directamente al servicio de Tags. La siguiente línea elimina la etiqueta "prueba".

<CODE>curl -u admin:admin -i -H "Accept: application/json" -H "Content-Type: application/json" -X DELETE http://localhost:8080/alfresco/service/api/tags/prueba</CODE>

No estoy seguro de que existe un método en la API para eliminar la etiqueta de uno de los nodos, aunque siempre puedes desarrollar un nuevo webscript para conseguirlo.
Software Engineer in Alfresco Search Team.
awaxisnei
Member II

Re: Eliminar una etiqueta de un documento y de alfresco , PROBLEMA

Gracias Ángel por tu rápida respuesta antes de nada.

El caso es que estoy implementando una aplicación en C# (.NET) y necesito hacer algunas llamadas e implementar algunas funciones de Alfresco.
Entre ellas el managing de etiquetas. No tengo manera de borrar una etiqueta de un nodo o borrar la etiqueta de Alfresco.

Mis funciones son las siguientes:



public string sendDelete(string endPoint)
        {

            HttpWebRequest request = CreateWebRequestDelete(endPoint);

            try
            {
                using (var response = (HttpWebResponse)request.GetResponse())
                {
                    var responseValue = string.Empty;

                    if (response.StatusCode != HttpStatusCode.OK)
                    {
                        string message = String.Format("DELETE failed. Received HTTP {0}", response.StatusCode);
                        throw new ApplicationException(message);
                    }

                    // grab the response 
                    using (var responseStream = response.GetResponseStream())
                    {
                        using (var reader = new StreamReader(responseStream))
                        {
                            responseValue = reader.ReadToEnd();
                        }
                    }

                    return responseValue;
                }

            }
            catch (Exception ex)
            {
                return null;
            }
        }


private HttpWebRequest CreateWebRequestDelete(string endPoint)
        {
            var request = (HttpWebRequest)WebRequest.Create(endPoint);

            request.Method = "DELETE";
            request.ContentLength = 0;
            request.ContentType = "text/xml";

            return request;
        }






public string deleteTag(string nameTag)
        {
            try
            {
                String ticket = admon.getTicketConector();
                String url = server + "/alfresco/service/api/tags/workspace/SpacesStore/" + nameTag + "?alf_ticket=" + ticket;

                return sendDelete(url);
            }
            catch(Exception ex)
            {
                throw ex;
            }
        }



El servidor me devuelve un error http 405 Método no permitido.

He utilizado estas URL de la APIRESt de Alfresco

http://docs.alfresco.com/community/references/RESTful-TaggingTagDelete.html

He probado con la segunda dirección y el servidor me devuelve otro error 404 "No encontrado". Que no ecnuentra ese webScript.
El caso es que me estoy volviendo loco. No había tenido ningún problema con ninguna función anterior.

Gracias.
Un saludo.
angelborroy
Expert

Re: Eliminar una etiqueta de un documento y de alfresco , PROBLEMA

La primera URL (incluye el workspace y el space) sirve para borrar una etiqueta en un espacio de trabajo. La segunda URL borra la etiqueta de toda la instancia de Alfresco. He estado probando con CURL y me han funcionado ambas URLs. Por el error que estás recibiendo parece que el problema es que la etiqueta que estás intentando borrar no existe. Prueba a hacer primero un GET con la misma URL (para verificar que existe) y después lanza el DELETE.
Software Engineer in Alfresco Search Team.
awaxisnei
Member II

Re: Eliminar una etiqueta de un documento y de alfresco , PROBLEMA

Gracias Ángel por tu respuesta,

existe la etiqueta, ya que tengo implementado la función que utiliza el GET que devuelve la lista de etiquetas.Me he asegurado de que exista, de hecho el nombre de la misma lo cojo de esta lista (me he asegurado de que el string esté bien).
He estado buscando por ahí en foros y he leído que puede venir por la versión que tengo instalada de Alfresco. Que no esté implementada esta función para dicha versión… De hecho la segunda función, en la API de mi Alfresco ni aparece (error 404 no encontrado).

Tengo la versión : Community - v3.4.0 (d 3370)

Gracias de nuevo.
angelborroy
Expert

Re: Eliminar una etiqueta de un documento y de alfresco , PROBLEMA

Correcto, en tu perfil pone versión 5.0.a lo que me llevó a error.

Cuando consultes la API, asegúrate de que estás en la ruta correcta. Para la versión 3.4 no existe el servicio que necesitas (http://docs.alfresco.com/3.4/references/RESTful-Tagging.html)
Software Engineer in Alfresco Search Team.
awaxisnei
Member II

Re: Eliminar una etiqueta de un documento y de alfresco , PROBLEMA

Muchas gracias Ángel. Llevo poco tiempo con esto de Alfresco …
y tienes razón, estaba mirando la API que no era cuando quise implementar la gestión de tags.
Qué despiste, madre mía. Menos mal que por lo menos ya sé lo que ocurría.


Muchísimas gracias de nuevo.