使用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种方式进行提交。