如何在 KIE 工作台中完成下拉列表?

How to accomplish drop-down lists in KIE workbench?

我是 JBPM 的新手,正试图全神贯注于一个新项目,最近注意到在尝试定义一些用户任务表单时,我找不到下拉列表的表单选项

在这一点上,我对这项技术的了解还很少,乍一看这似乎是一个奇怪的限制,应该有一个简单的解决方法,但我很难找到一个快速而肮脏的解决方案。

这是我必须在 Eclipse 中编写的代码,还是其他东西?

要创建 select 元素(下拉列表),请在文档的这一部分查找 "Setting a Range Formula":http://docs.jboss.org/jbpm/v6.1/userguide/chap-formmodeler.html#sect-formmodeler-FormulasExpression

@cego 提供的答案对于 "hard-coded" 值是正确的,如果您想加载动态值(例如从数据库中),您可以使用 Select 框字段类型并对其进行配置使用计算组合值的 SelectValuesProvider。

要创建一个 SelectValuesProvider,您应该创建一个具有 mvn 依赖关系的 java 项目:

<dependency>
  <groupId>org.jbpm</groupId>
  <artifactId>jbpm-form-modeler-api</artifactId>
</dependency>

完成后,您可以创建实现 org.jbpm.formModeler.core.config.SelectValuesProvider 的 class。该接口提供两种方法:

  • String getIdentifier():应该return 一个唯一的字符串来标识这个提供者。此字符串将显示在 Select 框配置弹出窗口中。
  • Map getSelectOptions(Field field, String value, FormRenderContext renderContext, Locale locale):此方法必须 return 包含要加载的键和文本的 Map Select 框。接收到的参数是:
    • Field字段:要评估的字段的配置。
    • String Value: 字段的当前值
    • FormRenderContext renderContext:一个 class 包含有关当时呈现的表单的所有信息。
    • Locale 语言环境:呈现表单的语言环境。

创建此提供程序后,您必须编译项目并将 jar 放在服务器 classpath 上并重新启动它。这样做之后,您将能够创建一个表单(或编辑现有表单),添加一个 Select 框字段并在 "Data provider" 组合框中选择您的提供商。

希望对您有所帮助,如果您有任何疑问,请提问,我会尝试创建一个示例。

此致,

神父

好的,对于旧版本,您可以使用 RangeProvider 将文本框转换为组合框。这是与前一个解决方案非常相似的解决方案。

首先,您应该创建 java 具有 mvn 依赖项的项目:

<dependency>
  <groupId>org.jbpm</groupId>
  <artifactId>jbpm-form-modeler-api</artifactId>
</dependency>

之后,您必须创建实现 org.jbpm.formModeler.api.model.RangeProvider 的 RangeProvider class 并实现它的方法。与前面示例中的 SelectValuesProvider 一样,该接口提供了两个方法: - String getType():用于标识提供者的唯一字符串 - Map getRangesMap(String namespace):此方法必须 return 包含将要加载到组合框上的键和文本的 Map。它只接收一个字符串参数,它是一个标识符,允许您获取有关正在呈现的表单的所有信息。

您还必须创建一个 META-INF/beans.xml 文件以允许通过 CDI 查找您的提供商(我在上一个示例中错过了这一步,抱歉)。

与前面的示例一样,创建提供程序后,您必须编译项目并将 jar 放在服务器 classpath 上并重新启动它。

当服务器启动时,您必须创建一个新表单(或打开一个现有表单),添加一个 TextBox 字段,编辑它的属性并在"Range value"属性。 保存字段属性,如果一切正常,该字段将呈现为一个组合框,显示由您的提供商 return 编辑的值。