使用Activiti API的方法查看公开的属性信息。然后,任意UI技术都能够在这些属性上面构建一个表单。该属性专门(并且更多局限性)为流程变量提供了一个视图。 表单所需要显示的属性可以从下面例子中的返回值FormData中获取。

StartFormData FormService.getStartFormData(String processDefinitionId)

or

TaskFormdata FormService.getTaskFormData(String taskId)
---------------------------------------------------------------------------

我们支持以下的几种表单属性类型:
  • string (org.activiti.engine.impl.form.StringFormType)

  • long (org.activiti.engine.impl.form.LongFormType)

  • enum (org.activiti.engine.impl.form.EnumFormType)

  • date (org.activiti.engine.impl.form.DateFormType)

  • boolean (org.activiti.engine.impl.form.BooleanFormType)

对于申明每一个表单属性,以下的FormProperty信息可以通过List<FormProperty> formService.getStartFormData(String processDefinitionId).getFormProperties() 和 List<FormProperty> formService.getTaskFormData(String taskId).getFormProperties()获取。

public interface FormProperty {

  String getId();  
 String getName();  
 FormType getType();  
 String getValue();  
 boolean isReadable();  
 boolean isWritable();  
 boolean isRequired();
}
所有的表单属性的信息都是可以通过API进行访问的。可以通过 formProperty.getType().getName()获取类型的名称。 
甚至可以通过 formProperty.getType().getInformation("datePattern")获取日期的匹配方式。
通过 formProperty.getType().getInformation("values")可以获取到枚举值。
---------------------------------------------------------------------------

表单属性可以通过 ProcessInstance FormService.submitStartFormData(String processDefinitionId, Map<String,String> properties) and void FormService.submitStartFormData(String taskId, Map<String,String> properties)2种方式进行提交。