03-27-2008 09:47 PM
03-27-2008 09:47 PM
var mail = actions.create("mail");
mail.parameters.to = initiator.properties["cm:email"];
mail.parameters.subject = "Just Do It " + bpm_workflowDescription;
mail.parameters.from = bpm_assignee.properties["cm:email"];
mail.parameters.text = "just do it";
mail.execute(bpm_package);Grüsse,03-27-2008 09:51 PM
21.06.2007 16:46:30 org.apache.catalina.startup.Catalina start
INFO: Server startup in 32750 ms
16:48:32,328 ERROR [action.executer.MailActionExecuter] Failed to send email to
null
org.springframework.mail.MailSendException: Mail server connection failed; neste
d exception is javax.mail.MessagingException: Could not connect to SMTP host: lo
calhost, port: 25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port:
25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1213)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:31
1)
at javax.mail.Service.connect(Service.java:233)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailS
enderImpl.java:373)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:326)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:341)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:330)
at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(Mail
ActionExecuter.java:291)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(
ActionExecuterAbstractBase.java:112)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(Acti
onServiceImpl.java:524)
at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl
(CompositeActionExecuter.java:64)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(
ActionExecuterAbstractBase.java:112)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(Acti
onServiceImpl.java:524)
at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionSe
rviceImpl.java:456)
at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionE
xecutionWrapper$1.doWork(AsynchronousActionExecutionQueueImpl.java:296)
at org.alfresco.repo.transaction.TransactionUtil.executeInTransaction(Tr
ansactionUtil.java:168)
at org.alfresco.repo.transaction.TransactionUtil.executeInNonPropagating
UserTransaction(TransactionUtil.java:108)
at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionE
xecutionWrapper.run(AsynchronousActionExecutionQueueImpl.java:286)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
at java.lang.Thread.run(Thread.java:595)
16:48:32,359 ERROR [action.executer.MailActionExecuter] Failed to send email to
null
org.springframework.mail.MailSendException: Mail server connection failed; neste
d exception is javax.mail.MessagingException: Could not connect to SMTP host: lo
calhost, port: 25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect
javax.mail.MessagingException: Could not connect to SMTP host: localhost, port:
25;
nested exception is:
java.net.SocketException: Software caused connection abort: connect
at com.sun.mail.smtp.SMTPTransport.openServer(SMTPTransport.java:1213)
at com.sun.mail.smtp.SMTPTransport.protocolConnect(SMTPTransport.java:31
1)
at javax.mail.Service.connect(Service.java:233)
at org.springframework.mail.javamail.JavaMailSenderImpl.doSend(JavaMailS
enderImpl.java:373)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:326)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:341)
at org.springframework.mail.javamail.JavaMailSenderImpl.send(JavaMailSen
derImpl.java:330)
at org.alfresco.repo.action.executer.MailActionExecuter.executeImpl(Mail
ActionExecuter.java:291)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(
ActionExecuterAbstractBase.java:112)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(Acti
onServiceImpl.java:524)
at org.alfresco.repo.action.executer.CompositeActionExecuter.executeImpl
(CompositeActionExecuter.java:64)
at org.alfresco.repo.action.executer.ActionExecuterAbstractBase.execute(
ActionExecuterAbstractBase.java:112)
at org.alfresco.repo.action.ActionServiceImpl.directActionExecution(Acti
onServiceImpl.java:524)
at org.alfresco.repo.action.ActionServiceImpl.executeActionImpl(ActionSe
rviceImpl.java:456)
at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionE
xecutionWrapper$1.doWork(AsynchronousActionExecutionQueueImpl.java:296)
at org.alfresco.repo.transaction.TransactionUtil.executeInTransaction(Tr
ansactionUtil.java:168)
at org.alfresco.repo.transaction.TransactionUtil.executeInNonPropagating
UserTransaction(TransactionUtil.java:108)
at org.alfresco.repo.action.AsynchronousActionExecutionQueueImpl$ActionE
xecutionWrapper.run(AsynchronousActionExecutionQueueImpl.java:286)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExec
utor.java:650)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor
.java:675)
at java.lang.Thread.run(Thread.java:595)__________________03-27-2008 09:52 PM
03-27-2008 09:52 PM
alfresco/WEB-INF/classes/alfresco/core-services-context.xmlein Spring-Bean mit dem Namen "mailService". Dort sieht man, dass der mail.host und mail.port über eine Umgebungsvariable gesetzt werden müssen. Entwder könnte man diese der JVM per -Dmail.host=mail.xyz.de -Dmail.port=25 mitgeben, oder diese Parameter in eine .properties Datei packen und von Spring einlesen lassen.03-27-2008 09:52 PM
03-27-2008 09:53 PM
In der Datei WEB-INF/classes/alfresco/repository.properties kann der Mailserver eingetragen werden.…typischerweise würde man das allerdings in der entsprechenden Extensions-Datei alfresco/extension/custom-respository.properties durchführen, da damit neue Versionen von alfresco.war problemloser eingespielt werden können. Der genaue Ort richtet sich nach dem eingesetzten Server, also /jboss/server/default/conf/alfresco/extension bei JBoss und /tomcat/shared/classes/alfresco/extension bei Tomcat.
Robert
03-27-2008 09:54 PM
03-27-2008 09:55 PM
<?xml version="1.0" encoding="UTF-8"?>
<process-definition xmlns="urn:jbpm.org:jpdl-3.1" name="wf:adhoc">
<swimlane name="initiator"/>
<start-state name="start">
<task name="wf:submitAdhocTask" swimlane="initiator"/>
<transition name="" to="adhoc"/>
</start-state>
<swimlane name="assignee">
<assignment class="org.alfresco.repo.workflow.jbpm.AlfrescoAss ignment">
<actor>#{bpm_assignee}</actor>
</assignment>
</swimlane>
<task-node name="adhoc">
<task name="wf:adhocTask" swimlane="assignee">
<event type="task-create">
<script>
if (bpm_workflowDueDate != void) taskInstance.dueDate = bpm_workflowDueDate;
if (bpm_workflowPriority != void) taskInstance.priority = bpm_workflowPriority;
</script>
</event>
</task>
<transition name="" to="completed">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJav aScript">
<script>
if (wf_notifyMe)
{
var mail = actions.create("mail");
mail.parameters.to = initiator.properties.email;
mail.parameters.subject = "Adhoc Task " + bpm_workflowDescription;
mail.parameters.from = bpm_assignee.properties.email;
mail.parameters.text = "It's done";
mail.execute(bpm_package);
}
</script>
</action>
</transition>
</task-node>
<task-node name="completed">
<task name="wf:completedAdhocTask" swimlane="initiator"/>
<transition name="" to="end"/>
</task-node>
<end-state name="end"/>
</process-definition>
Danke steporZitat von devylon Beitrag anzeigen
Hallo Clueless,
ich kenne den WebCMS Workflow jetzt leider nicht so genau und gehe jetzt davon aus, dass der Workflow auch auf jBPM basiert. Eine mögliche Lösung wäre das Versenden einer E-Mail in den jBPM Worklow "einzuweben". Bei einem jBPM Task Node kann des über Event-Handler gemacht werden. Dort kann dann z.B. bei dem "Task Todo"-Node in einem "node-enter"-Event ein per JavaScript eine E-Mail versendet werden. Das JavaScript würde in etwa folgendermassen aussehen:Grüsse,var mail = actions.create("mail");
mail.parameters.to = initiator.properties["cm:email"];
mail.parameters.subject = "Just Do It " + bpm_workflowDescription;
mail.parameters.from = bpm_assignee.properties["cm:email"];
mail.parameters.text = "just do it";
mail.execute(bpm_package);
devylon
03-27-2008 09:56 PM
<transition name="" to="completed">
<action class="org.alfresco.repo.workflow.jbpm.AlfrescoJav aScript">
<script>
if (wf_notifyMe)
{
var mail = actions.create("mail");
mail.parameters.to = initiator.properties.email;
mail.parameters.subject = "Adhoc Task " + bpm_workflowDescription;
mail.parameters.from = bpm_assignee.properties.email;
mail.parameters.text = "It's done";
mail.execute(bpm_package);
}
</script>
</action>
</transition>In dem Beispiel ist der E-Mail Versand an einen Zustandsübergang geknüpft, sprich Transition. Verwendet wird hier die Alfresco JavaScript API.
Tags
Find what you came for
We want to make your experience in Hyland Connect as valuable as possible, so we put together some helpful links.