02-16-2020 07:02 AM
Hello,
Eventually, I want to send an email notification based on Freemarker template when the workflow is finished. I know I can do it using Javascript or Java but I saw this is also possible with Activiti itself (I will allow me to use Freemarker template easily).
Unfortunately, when when I create an Alfresco Mail Task in the process definition, I get an ActivitiIllegalArgumentException error.
myProject | 2020-02-16 11:42:34,727 ERROR [impl.interceptor.CommandContext] [http-nio-8080-exec-10] Error while closing command context myProject | org.activiti.engine.ActivitiIllegalArgumentException: Field definition uses unexisting field 'mail.parameters.subject' on class org.alfresco.repo.workflow.activiti.script.AlfrescoScriptDelegate
This is part of my process definition:
    <serviceTask id="alfrescoMailtask1" name="Alfresco Mail Task" activiti:class="org.alfresco.repo.workflow.activiti.script.AlfrescoScriptDelegate">
      <extensionElements>
        <activiti:field name="script">
          <activiti:string><![CDATA[var mail = actions.create("mail");
mail.execute(bpm_package);]]></activiti:string>
        </activiti:field>
        <activiti:field name="mail.parameters.subject">
          <activiti:string><![CDATA[Rejected]]></activiti:string>
        </activiti:field>
        <activiti:field name="mail.parameters.to">
          <activiti:expression><![CDATA[${initiator.properties.email}]]></activiti:expression>
        </activiti:field>
        <activiti:field name="mail.parameters.html">
          <activiti:expression><![CDATA[<html>
            <body>
              Hello ${male ? 'Mr.' : 'Mrs.' } ${recipientName},<br/><br/>
              As of ${now}, the process has been rejected <b>rejected</b>.<br/><br/>
              Greetings,<br/>
              The Company.
            </body>
          </html>]]></activiti:expression>
        </activiti:field>
      </extensionElements>
    </serviceTask>What's wrong with it?
PS. How can I populate Freemarker model with additional variable? Is execution.setVariable('foo', 'test'); enough?
Explore our Alfresco products with the links below. Use labels to filter content by product module.