cancel
Showing results for 
Search instead for 
Did you mean: 

people.getGroup devuelve null

pecdesarrollo
Confirmed Champ
Confirmed Champ

Estoy tratando de enviar correos a los miembros de un grupo.

El script es muy sencillo:

--------------------------------------------------------------------------------------------------------

     var mail = actions.create("mail");

     var grupo = people.getGroup("GROUP_G-CL1-Preparadores1");

     var personas = people.getMembers(grupo);        

     mail.parameters.subject = "Tiene un nuevo documento: " + document.name;

     mail.parameters.template = companyhome.childByNamePath("Data Dictionary/Email Templates/notify_user_email_cli.ftl");

     mail.parameters.text = "Texto alternativo si no encuentra el template"; 

     for(var persona in personas)

     {

            mail.parameters.to = persona.properties["cm:email"];

            mail.execute(document);

     }

----------------------------------------------------------------------------------------------------------

El problema es que people.getGroup("GROUP_G-CL1-Preparadores1") devuelve null.

El error en alfresco.log es "Group is a mandatory parameter".

El grupo "G-CL1-Preparadores1" existe y tiene 2 personas.

He buscado y parece que hay que agregar "GROUP_" delante del nombre corto del grupo.

He probado de ambas formas y el resultado es el mismo: devuelve null.

Por favor ¿alguna idea sobre el motivo?

Muchas gracias, un cordial saludo.

7 REPLIES 7

cesarista
World-Class Innovator
World-Class Innovator

Hola:

Quizas este link del blog de Angel Borroy​​ te ayude:

Alfresco – Sending a notification email to Site Administrators by using JavaScript API | Programming...

Saludos.

--C.

Fue el ejemplo que tomé como base.

El problema con ese ejemplo es que site.listMembers solo admite seleccionar usuarios o por su Rol o por su Nombre.

Yo necesito seleccionar a los usuarios que pertenezcan a un Grupo.

De todas formas te agradezco mucho el tiempo que dedicas a ayudarme.

Seguiré investigando y si doy con la solución te la comento.

Un cordial saludo.

Buenas,

Prueba de esta manera:

people.getGroup("GROUP_G-CL1-Preparadores1");

var members = people.getMembers(group);

for (var i = 0; i < members.length; i++) {

    logger.log(members[i].properties["cm:email"]);

}

A veces el API JavaScript devuelve los objetos "iterables" como arrays.

Hyland Developer Evangelist

En cualquier caso, creo que también debería funcionarte:

     var mail = actions.create("mail");

     mail.parameters.subject = "Tiene un nuevo documento: " + document.name;

     mail.parameters.template = companyhome.childByNamePath("Data Dictionary/Email Templates/notify_user_email_cli.ftl");

     mail.parameters.text = "Texto alternativo si no encuentra el template";

     mail.parameters.to_many="GROUP_G-CL1-Preparadores1";

     mail.execute(document);

Y quizá sea más sencillo.

Hyland Developer Evangelist

Hola Ángel:

Muchas gracias por el tiempo que me dedicas.

Finalmente, después de muchas horas encontré el problema, es para partirse de risa.

Resulta que falla si el nombre del grupo tiene guiones altos "-", supongo que haberlos utilizado es un error de principiantes.

Bueno, hemos dado un pasito más .

Ahora solo me queda un problema, no está encontrando el template con companyhome.childByNamePath("Data Dictionary/Email Templates/Notify Email Templates/notify_user_email.html.ftl"); y el template existe.

¿Se te ocurre cuál puede ser el problema?

Un cordial saludo.

angelborroy
Community Manager Community Manager
Community Manager

Prueba con "Diccionario de Datos" si has instalado en español

Hyland Developer Evangelist

Perfecto.

Funcionó poniendo todos los nombres en castellano.

Tema completamente cerrado Smiley HappySmiley HappySmiley Happy.

Muchas gracias, un cordial saludo.