java - 如何使用 Spring Boot 和 Flowable 修改邮件任务数据

标签 java spring-boot bpmn flowable

我创建了邮件任务配置

<serviceTask id="mailtask_name" name="Name" flowable:delegateExpression="${STCustomMail}" flowable:type="mail" >
  <extensionElements>
    <flowable:field name="to">
      <flowable:string><![CDATA[mail@mail.com]]></flowable:string>
    </flowable:field>
    <flowable:field name="subject">
      <flowable:string><![CDATA[Subject]]></flowable:string>
    </flowable:field>
    <flowable:field name="text">
      <flowable:string><![CDATA[Text]]></flowable:string>
    </flowable:field>
  </extensionElements>
</serviceTask>

和类别:

@Log
@Service
public class STCustomMail implements JavaDelegate {

   private Expression subject;
   private Expression to;
   private Expression text;

   public void execute(DelegateExecution execution) {
      log.info("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
      String subjectText = "New subject";
      execution.setVariable(subject.getValue(execution).toString(), subjectText);
      execution.setVariable(to.getValue(execution).toString(), "newmail@newmail.com");
      execution.setVariable(text.getValue(execution).toString(), "newtext");
   }
}

不幸的是,我的 STCustomMail 类无法正常工作。我无法修改任何邮件数据。

出了什么问题?

也许还有另一种解决方案如何动态配置/创建(?)邮件数据位置?

最佳答案

flowable:delegateExpressionflowable:type 不能混合在一起。

默认情况下,当flowable:typemail时,Flowable将使用MailActivityBehavior来执行电子邮件的发送。这意味着您的 JavaDelegate 将永远不会被调用。

如果您想更改邮件 Activity 行为,您需要为其提供自己的实现。为此,您需要提供自己的 ActivityBehaviorFactory(您可以扩展 DefaultActivityBehaviorFactory)并重写以下方法:

  • MailActivityBehavior createMailActivityBehavior(ServiceTask serviceTask)
  • MailActivityBehavior createMailActivityBehavior(SendTask sendTask)

关于java - 如何使用 Spring Boot 和 Flowable 修改邮件任务数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55450485/

相关文章:

spring - Activiti JSF Spring

java - 创建线程时出现 NullPointerException

java - ICEFaces 3.1 : NullPointerException raised while re-rendering a view

Java - 对对象进行事务处理的方法

spring-boot - Spring 正在重置我的日志记录配置——我该如何解决这个问题?

spring - 微服务 : security and architectural issue for internal services

bpmn - BPMN 2.0 图灵完备了吗?

java - lambda 表达式中的 Math.toIntExact?

java - 无法使用 Maven 运行 JUnit5 测试

java - 如何查询流程定义的完成实例?