我是JBPM的新手,我正试图围绕一个新项目,最近注意到在尝试定义一些用户任务表单时,我找不到下拉列表的表单选项列表
此时我对这项技术的了解非常少,乍一看似乎是一个奇怪的限制,应该有一个简单的解决方法,但我很难找到快速而肮脏的解决方案。
这是我必须在Eclipse中编写代码还是其他什么东西?
答案 0 :(得分:10)
@cego提供的答案对于#34;硬编码"是正确的。值,如果要加载动态值(例如,从数据库中),可以使用“选择框”字段类型并将其配置为使用计算组合值的SelectValuesProvider。
要创建SelectValuesProvider,您应该创建一个具有mvn依赖关系的java项目:
<dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-form-modeler-api</artifactId>
</dependency>
完成后,您可以创建实现org.jbpm.formModeler.core.config.SelectValuesProvider的类。该接口提供了两种方法:
创建此提供程序后,必须编译项目并将jar放在服务器类路径上并重新启动它。完成此操作后,您将能够创建表单(或编辑现有表单),添加选择框字段并在&#34;数据提供商&#34;上选择您的提供商。组合框。
希望它有所帮助,如果您有任何疑问,请询问,我将尝试创建一个示例。
此致
佩尔
答案 1 :(得分:3)
好的,对于旧版本,您可以使用RangeProvider将文本框转换为组合框。这是与前一个非常相似的解决方案。
首先,你应该创建一个mvn依赖的java项目:
<dependency>
<groupId>org.jbpm</groupId>
<artifactId>jbpm-form-modeler-api</artifactId>
</dependency>
之后,您必须创建实现org.jbpm.formModeler.api.model.RangeProvider的RangeProvider类并实现它的方法。作为上一个示例中的SelectValuesProvider,此接口提供了两种方法: - String getType():用于标识提供程序的唯一String - Map getRangesMap(String namespace):此方法必须返回一个Map,其中包含要在组合框中加载的键,文本。它只接收一个String参数,它是一个标识符,允许您获取有关正在呈现的表单的所有信息。
此外,您还必须创建一个META-INF / beans.xml文件,以允许通过CDI查找您的提供程序(我在上一个示例中错过了此步骤,抱歉)。
如前面的示例所示,一旦您创建了提供程序,您必须编译项目并将jar放在服务器类路径上并重新启动它。
启动服务器时,您必须创建一个新表单(或打开一个现有表单),添加一个TextBox字段,编辑它的属性并写入RangeProvider的getType方法返回的字符串。 &#34;范围值&#34;属性。 保存字段属性,如果一切正常,该字段将呈现为组合框,显示提供商返回的值。
答案 2 :(得分:2)
要创建选择元素(下拉列表),请查找&#34;设置范围公式&#34;在这部分文档中:http://docs.jboss.org/jbpm/v6.1/userguide/chap-formmodeler.html#sect-formmodeler-FormulasExpression