Presentar un mensaje en pantalla

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

Presentar un mensaje en pantalla

Hola a todos.

Quiero obligar a los usuarios de Alfresco a categorizar los documentos antes de dejarlos en un espacio concreto, en particular deben tener los documentos al menos 3 categorías asociadas, si no las tienen quiero presentar un error.

He conseguido el script y funciona correctamente, pero no consigo sacar el mensaje que pretendo. El script que he realizado es:

var cats = document.properties["cm:categories"]
for (var i = 0; i < cats.length ; i++)
{
   var catName = cats.name;
   if (cats.length < 3)
   {
     status.message = "error debes categorizar";
     status.redirect = true;  
     break script;
   }
   document.save();
}

Como podeis imaginar lo que quiero que me aparezca es el error en pantalla "error debes categorizar", pero me aparece "undefinied label".

¿Alguien puede ayudarme?. Saludos.
4 Replies
cristinamr
Advanced

Re: Presentar un mensaje en pantalla

¿La función que tienes declarada se llama script? ¿Puedes poner completo el script?
--
VenziaIT: helping companies since 2005! Our ECM products: AQuA & Seidoc
yakon_8894
Member II

Re: Presentar un mensaje en pantalla

Hola sorbelal,

Supongo que lo que estás haciendo es un webscript, ya que el objeto status se usa para definir el estado de la respuesta y poder añadir mensajes o códigos de error.

SI es así con este código debería funcionarte:


status.code = 500;
status.message = "Error ….";
status.redirect = true;
return;

El status.code admite varios valores en función del tipo de error que quieras capturas. Puedes echar un vistazo a http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html y ver qué código se adapta mejor a tu error.

Saludos
sorbelal
Member II

Re: Presentar un mensaje en pantalla

Yacon, he probado lo que me has indicado, preparando el script así:

var cats = document.properties["cm:categories"]
for (var i = 0; i < cats.length ; i++)
{
   var catName = cats[i].name;
   if (cats.length < 3)
   {
   status.code = 500;
   status.message = "Error Obligado_Categorizar_el_Documento";
   status.redirect = true;
   return;  
   }
   document.save();
}

y me da el error

Unable to paste item due to system error:Transaction didn't commit: 00250057 Failed to execute script 'workspace://SpacesStore/b4114206-7144-49d5-b677-b3ba3602d27a': invalid return (workspace://SpacesStore/b4114206-7144-49d5-b677-b3ba3602d27a#10)

Es decir que no me aparece el error que pretendo.

Quizás el problema sea que estoy lanzando un script (no web script) al definir una regla, que se ejecuta al entrar un documento en una carpeta.
yakon_8894
Member II

Re: Presentar un mensaje en pantalla

Yacon, he probado lo que me has indicado, preparando el script así:

var cats = document.properties["cm:categories"]
for (var i = 0; i < cats.length ; i++)
{
   var catName = cats[i].name;
   if (cats.length < 3)
   {
   status.code = 500;
   status.message = "Error Obligado_Categorizar_el_Documento";
   status.redirect = true;
   return;  
   }
   document.save();
}

y me da el error

Unable to paste item due to system error:Transaction didn't commit: 00250057 Failed to execute script 'workspace://SpacesStore/b4114206-7144-49d5-b677-b3ba3602d27a': invalid return (workspace://SpacesStore/b4114206-7144-49d5-b677-b3ba3602d27a#10)

Es decir que no me aparece el error que pretendo.

Quizás el problema sea que estoy lanzando un script (no web script) al definir una regla, que se ejecuta al entrar un documento en una carpeta.

Efectivamente el ejemplo que te puse era para un webscript. Desconozco si se puede hacer lo que tú quieres, pero juraría que no. Seguro que hay gente más experta que te puede ayudar, aunque en la wiki de Alfresco no encuentro nada en la API que permita mostrar mensajes de error a un javascript lanzado como regla de contenido.

Un saludo