cancel
Showing results for 
Search instead for 
Did you mean: 

Script de mail a grupos

pjcaracuel_2349
Confirmed Champ
Confirmed Champ
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 9

giorgio
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
mmm, pero lo que buscaba era hacerlo con la api de Alfresco, no para abrir el cliente de correo.

Saludos.

pjcaracuel_2349
Confirmed Champ
Confirmed Champ
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
Champ in-the-making
Champ in-the-making
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
Champ in-the-making
Champ in-the-making
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.