SuperAPI AI 工具集

camunda-feel

智能体与模型

查看项目

更新于 10-16 05:02

技能介绍

用途:编写、调试、评估与校验 Camunda 8 中使用的 FEEL(Friendly Enough Expression Language)表达式,用于 BPMN 流程、DMN 决策与表单。

主要能力:支持网关条件、输入/输出映射、定时器定义、DMN 输入输出规则与表单校验。BPMN XML 中的 FEEL 表达式必须以 = 前缀,如 =amount > 1000。涵盖数据类型(数字、字符串、布尔、null、日期/时间/日期时间、时长、列表、上下文、区间)、运算符、if-then-else(每个 if 必须有 else)、for 循环、量词、列表与上下文操作。

使用方式:前置条件为安装并配置 c8ctl CLI(c8ctl add profile)以提供 c8ctl feel evaluate,以及 Camunda 8.9+ 集群用于默认集群引擎评估(POST /v2/expression/evaluation)。示例:c8ctl feel evaluate '1 + 2';c8ctl feel evaluate '=amount * 1.15' --var amount=100;c8ctl feel evaluate 'a + b' --var a=1 --var b=2;使用 --vars 传 JSON 对象,支持点路径嵌套。离线评估用 --engine local(基于 feelin JavaScript 引擎),但仅在明确要求或无集群且用户确认时使用,不得静默回退。

限制与注意:feelin 与生产 Scala FEEL 引擎行为不同,类型转换、函数支持与日期时间处理存在差异,例如 today() 在集群引擎返回日期,在本地引擎返回本地时区午夜日期时间,可能导致下游比较失败。本地结果须回到集群重新校验。FEEL 不做算术自动类型转换,如数字 userId 与字符串拼接会静默得到 null,须用 string() 包装。索引从 1 开始,不存在 first() 等函数。

常见问题:FEEL_RESOLUTION_ERROR 表示变量在评估时不存在;表达式意外返回 null 常见于类型不匹配、0 基索引、调用不存在的辅助函数或上下文条目缺逗号。可参考 references/function-reference.md 与 references/common-patterns.md。