cancel
Showing results for 
Search instead for 
Did you mean: 

Presentar un mensaje en pantalla

sorbelal
Champ in-the-making
Champ in-the-making
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 4

cristinamr
World-Class Innovator
World-Class Innovator
¿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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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