当前位置: 首页 > 知识库问答 >
问题:

Camunda Modeler决策表:我们能否为从外部endpoint输入的字符串提供预定义值(InputValues)?

卫弘图
2023-03-14

我有一个apiendpoint,它返回一组值。我希望使用这些值作为决策表中输入字段的预定义值的源。

到目前为止,我只能看到在建模器中将这些值作为静态值添加的可能性。检查了camunda文件,找不到任何与此要求相关的东西。

共有1个答案

阳狐若
2023-03-14

您有几个不同的选项可以从外部源提取值,以便在决策表中使用。出于这个响应的目的,我假设您的外部源是REST APIendpoint。以下是这些选项:

  1. 您可以从流程定义调用决策表,并且可以在调用决策表之前在流程定义中获取外部值。例如,您可以使用配置为'HTTP-Connector'的服务任务来提取值。
  2. 您可以展开决策表,使其成为DRD(决策需求图),并利用决策文字表达式来提取数据。
  3. 最后,您可以将代码嵌入到当前上下文中流程引擎已知的Java bean中,以便从外部源提取数据,并从决策表中调用该bean。

我知道那里有很多;如果其中任何一个听起来很陌生,请在https://docs.Camunda.org查看Camunda文档。

让我把注意力集中在上面的第二个问题上,给你一个具体的例子...如果您选择了该路由,您的决策文字表达式中可以包含以下代码:

//Get access to the Connectors and Spin Objects.
var Connectors = Java.type('org.camunda.connect.Connectors');
var Spin = Java.type('org.camunda.spin.Spin');

//Create an instance of the HTTP Connector and make the request.
var httpConnector = Connectors.http();
var resp = httpConnector.createRequest()
    .post()
    .url('http://localhost:1027/creditscore')
    .contentType('application/json')
    .payload('{"ssn":\"' + ssn + '\"}')
    .execute()
    .getResponse();

//Retrieve the credit score from the response.
var creditScore = Spin.JSON(resp).prop('creditScore').numberValue();

//Return the credit score, setting it to the variable name specified here.
creditScore;

在该示例中,我将变量名设置为“creditscore”,变量类型设置为“long”,表达式语言设置为“JavaScript”。它需要一个变量作为输入,这个变量是“ssn”。您可以在依赖于DRD中的决策文字表达式的任何决策表中使用该变量“CreditScore”。

 类似资料:
  • 问题内容: 如何仅从输入字符串中提取数字值? 例如,输入字符串可能像这样: 我只想要数字值,即和。所有字母和特殊字符将被丢弃。 问题答案:

  • 我只想要数值,即和。所有的字母和特殊字符将被丢弃。

  • 当我用gcc编译它时(注意:与clang类似的错误),它失败了,出现了以下错误: 这有点让我困惑,所以我在预处理器中运行它: 尽管有警告,它仍生成完全有效的代码(粗体文本)!

  • 我正在使用apache骆驼。我试图使用简单的表达式语言从身体中检索值。我需要它作为一个字符串,但简单的返回SimpleBuilder对象。所以我尝试了这样的东西 但它正在把java还给我。朗,弦。请告诉我如何将这个表达式的结果转换为字符串?

  • 问题内容: 我有一个要写入csv文件的字符串列表。列表看起来像 所以,我会尝试这样的事情: 不幸的是,数据没有写入三列。我发现: 如何正确格式化此行为以获得 最好采用格式? 问题答案: 您正在使用与结尾。该方法需要一个 lists列表 ,但是您传入了一个字符串列表。该方法实质上是这样做的: 其中每一行必须是一列列。字符串是单个字符的序列,因此这就是您所写的:单个字符由您选择的定界符分隔。 您需要将

  • 情况是这样的。我正在根据从数据库获取的数据动态生成要在JPanel上显示的组件。系统会提示用户输入一个整数,并根据该整数进行一些计算。输出应以十进制值形式给出。因此,我将答案分配给了一个double,并使用decimalformat进行格式化。 当我将double值传递给DecimalFormat的format()方法时,即使我没有输入任何值为0,也会出现错误。 生成错误的代码段, 请考虑变量和是