Script de mail a grupos

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

Script de mail a grupos

Buenas,

Os pongo un script que os puede venir bien para realizar el envio de mail a grupos, obtenidos dinamicamente a partir de un metadato multivalor. Ves Javier, al final me vino bien tu explicacion.

Saludos


for each(prop in document.properties["cjp:dproc_listaAImplicadas"])
{
var mail = actions.create("mail");
var groups = new Array("GROUP_"+prop);
mail.parameters.to_many=groups;
mail.parameters.subject = "Nuevo Procedimiento elaborado por el area de " + document.properties["cjp:dproc_AreaOrigen"];
mail.parameters.from = "pedro.jimenezt@xxxxxx.xx";
mail.parameters.template = companyhome.childByNamePath("Data Dictionary/Email Templates/notificar_grupos.ftl");
mail.parameters.text = "";
mail.execute(document);
}
9 Replies
giorgio
Member II

Re: Script de mail a grupos

Buenas pedro, es posible ejecutar este código sin documento? quiero decir enviar un email sin mas, por ejemplo en una jsp?.
gracias y saludos
pjcaracuel_2349
Active Member II

Re: Script de mail a grupos

Entiendo que seria posible puesto que es simplemente un fichero javascript que puedes incluir donde quieras.

Peroooooo, las properties que lees del documento no tendrian sentido si no van asociados a un documento.

Saludos
giorgio
Member II

Re: Script de mail a grupos

Jeje, si si, las partes que se refieren a  las propiedades del fichero las he quitado, todavia no lo he probado, pero el problema que tengo
es que si no tengo documento que pongo en la instrucción execute? ahora lo tengo asi a ver lo que pasa.

var mail = actions.create("mail");
mail.parameters.to="correo@lala.es";
mail.parameters.subject = "reasignado ";
mail.parameters.from = "noreply@noreply.com";
mail.parameters.text = "hola hola hola";
mail.execute();

en el javascript de una jsp.

saludos
giorgio
Member II

Re: Script de mail a grupos

como era de esperar, peta, el mail.execute() me pide un nodo.
segun la api de la wiki

execute(ScriptNode node)
Executes the action against the specified node. The action (and its parameters) may be re-used against many nodes by repeatedly invoking execute. Between invocations, the parameters of the action may be changed. An example of executing the "mail" action follows:
pjcaracuel_2349
Active Member II

Re: Script de mail a grupos

Pequeño detalle en el que no habia caido. Pensemos, este codigo se ejecuta cuando subimos y/o actualizamos un documento (nodo).

De todas formas, mirando por ahi he encontrado ejemplos de envios de mail via js, que es lo que realmente buscas no?
http://javascripts.astalaweb.net/Correo/1_Correo.asp

Saludos
giorgio
Member II

Re: Script de mail a grupos

mmm, pero lo que buscaba era hacerlo con la api de Alfresco, no para abrir el cliente de correo.

Saludos.
pjcaracuel_2349
Active Member II

Re: Script de mail a grupos

Buff , esto no se si seria un poco chapuza, me da que si pero es lo unico que me ocurre, crearte un nodo especifico para el envio de mail, y hacer referencia al mismo nodo. Vamos que yo usaria el nodo de la plantilla de mail, pero…..

Saludos
giorgio
Member II

Re: Script de mail a grupos

anda, leches, que este post no lo habia visto todavia, por eso te he puesto lo del outlook en el correo.
lo siento pedro, sin duda voy a probar esto que me cuentas.

gracias.
giorgio
Member II

Re: Script de mail a grupos

He aqui la solución, y mira que habia probado cosas parecidas, pero claro no caes en utilizar las variables que toca en cada momento.
esto iría en el review_pooled_processdefinition.xml y lo que hace el evento es capturar el momento en que cambia la asignación del workflow
por lo que puedo capturar el nombre de grupo o el nombre de usuario segun me convenga.

        <event type="task-assign">
             <action class="org.alfresco.repo.workflow.jbpm.AlfrescoJavaScript">
                <script>
          
for (var t = 0; t &lt; bpm_package.children.length; t++)
{

bpm_package.children[t].properties["mySmiley Tonguerioridad"] = bpm_workflowPriority;
bpm_package.children[t].properties["my:estado"] = "Pendent";
if(taskInstance.actorId != null){
bpm_package.children[t].properties["my:tecnico"] = taskInstance.actorId;
} else {
bpm_package.children[t].properties["my:tecnico"] = bpm_groupAssignee.properties['usr:authorityName'];
}
bpm_package.children[t].save();
}

if(taskInstance.actorId != null){
               if(taskInstance.previousActorId != taskInstance.actorId) {
            for (var k = 0; k &lt; bpm_package.children.length; k++){
            bpm_package.children[k].properties["my:tecnico"] = taskInstance.actorId;
            bpm_package.children[k].save();
            }
          
                  var mail = actions.create("mail");
                
                  mail.parameters.to = (people.getPerson(taskInstance.actorId)).properties["cm:email"];
                  mail.parameters.subject = "Tiene una tarea pendiente";
                  mail.parameters.from = initiator.properties["cm:email"];
                  mail.parameters.text = "No responda a este mensaje. Tiene asignada la tarea:  " + bpm_workflowDescription;
                  mail.execute(bpm_package);     
               }      
}                   
                </script>
             </action>
          </event>

Espero que te sirva si alguna vez necesitas algo parecido. De todas formas lo voy a postear en el foro.

Un saludo, y muchas gracias por tu ayuda,que es inigualable, que de no ser por ti no habria hecho todo lo que he hecho.