AnsweredAssumed Answered

Problem with custom task in Designer

Question asked by blezek on Jan 13, 2012
Latest reply on Sep 26, 2012 by tiesebarrell
Hi,

  I worked through the money-tasks example and constructed some custom tasks for the designer, and all went well.

  However, when I create a task containing only a BOOLEAN_CHOICE, it does not get saved in the XML output.  I looked for an error, but didn't see anything.  However, when I add a TEXT property, the boolean shows up.  Just thought I'd let others know.  Example code is below:

Works:
package edu.mayo.mi3c.xb3.designer;

import org.activiti.designer.integration.servicetask.AbstractCustomServiceTask;
import org.activiti.designer.integration.servicetask.PropertyType;
import org.activiti.designer.integration.servicetask.annotation.Help;
import org.activiti.designer.integration.servicetask.annotation.Property;
import org.activiti.designer.integration.servicetask.annotation.Runtime;

@DeweyTask
@SuppressWarnings("unused")
@Runtime(delegationClass = "edu.mayo.mi3c.xb3.task.ClassifySeriesTask")
@Help(displayHelpShort = "Classify a series", displayHelpLong = "Assign tags to the BO associated with this series")
public class ClassifySeriesItem extends AbstractCustomServiceTask {

   @Property(type = PropertyType.TEXT, displayName = "Extra Tags", required = false, defaultValue = "")
   @Help(displayHelpShort = "Tags", displayHelpLong = "Comma-separated list of extra tags to add to the BO")
   private String tags;

   @Property(type = PropertyType.BOOLEAN_CHOICE, displayName = "Wait for completion", required = true, defaultValue = "true")
   @Help(displayHelpShort = "Wait for task completion", displayHelpLong = "If checked, the workflow item does not complete until DEWEY executes the required functionality.  If unchecked, execution immediately continues and the next step in the workflow is assumed to be a 'Receive' task")
   private Boolean synchronous;

   @Override
   public String getSmallIconPath() {
      return "icons/folder_fill_16x16.png";
   }

   @Override
   public String getName() {
      return "Classify Series";
   }

}

Doesn't write out the 'synchronous' tag in the XML:
package edu.mayo.mi3c.xb3.designer;

import org.activiti.designer.integration.servicetask.AbstractCustomServiceTask;
import org.activiti.designer.integration.servicetask.PropertyType;
import org.activiti.designer.integration.servicetask.annotation.Help;
import org.activiti.designer.integration.servicetask.annotation.Property;
import org.activiti.designer.integration.servicetask.annotation.Runtime;

@DeweyTask
@SuppressWarnings("unused")
@Runtime(delegationClass = "edu.mayo.mi3c.xb3.task.ClassifySeriesTask")
@Help(displayHelpShort = "Classify a series", displayHelpLong = "Assign tags to the BO associated with this series")
public class ClassifySeriesItem extends AbstractCustomServiceTask {

   @Property(type = PropertyType.BOOLEAN_CHOICE, displayName = "Wait for completion", required = true, defaultValue = "true")
   @Help(displayHelpShort = "Wait for task completion", displayHelpLong = "If checked, the workflow item does not complete until DEWEY executes the required functionality.  If unchecked, execution immediately continues and the next step in the workflow is assumed to be a 'Receive' task")
   private Boolean synchronous;

   @Override
   public String getSmallIconPath() {
      return "icons/folder_fill_16x16.png";
   }

   @Override
   public String getName() {
      return "Classify Series";
   }

}

Outcomes