dynamic - 使用另一个变量的值在 Appian 中构建(过程)变量?
问题描述
据我了解,在 Appian 中不可能动态构造(处理)变量名称,就像您使用bash使用反引号(如MY_OBJECT=pv!MY_CONS_`extract(valueOfPulldown)`
. 那是对的吗?有解决方法吗?
我有一组Appian 常量,我们称它们为MY_CONS_FOO
, MY_CONS_BAR
, MY_CONS_LALA
,所有这些都引用了Appian 数据存储实体。我想编写一个Appian 表达式规则,它填充另一个MY_OBJECT
相同类型的变量(这里:数据存储实体),这取决于下拉菜单的选项,其中可能的选项存储在数组MY_CONS_OPTIONS
中,如下所示
FOO
BAR
LALA
我当然可以构建一个冗长的案例结构,除此之外我还必须维护它MY_CONS_OPTIONS
,所以我正在寻找一种更动态的方法,使用extract()
取决于valueOfPulldown
下拉菜单的所选值的函数。
编辑:这里是我想避免的表达式规则(伪代码):
if (valueOfPulldown = 'FOO') then MY_OBJECT=pv!MY_CONS_FOO
if (valueOfPulldown = 'BAR') then MY_OBJECT=pv!MY_CONS_BAR
if (valueOfPulldown = 'LALA') then MY_OBJECT=pv!MY_CONS_LALA
目标是能够通过下拉菜单更改数据存储实体。
解决方案
这可以帮助您找到常量背后的内容。
fn!typeName(fn!typeOf(cons!YOUR_CONSTANT))
.
考虑到其他细节,我将执行以下操作:
- 创建单独的表达式,将详细信息合并到 Dictionary 列表中,如下所示:
表达结果(呃):
{
{dd_label: "label1", dd_value: 1, cons: "cons!YOUR_CONSTANT1" }
,{dd_label: "label2", dd_value: 2, cons: "cons!YOUR_CONSTANT2" }
}
在下拉控件的 UI 上使用 er.dd_label 作为choiceLabels 和 er.dd_value 作为choiceValues
当用户在 Dropdown 上选择值时,将下拉值保存到某个局部变量,然后通过执行以下操作使用它来查找您的 const:
property( index(er, wherecontains(local!dropdownselectedvalue, tointeger(er.dd_value))), "cons")
- 第 3 步的返回值是你的常数
这可能并不完美,因为您仍然需要维护您的字典,但您可以避免使用长 if...else 语句。
作为替代方案,请查看 Appian 中的决策表https://docs.appian.com/suite/help/21.1/Appian_Decisions.html
推荐阅读
- c++ - 我们应该通过 lambda 中的 const 引用来捕获吗?
- linux - 相对于另一个用户的主目录执行脚本
- kubernetes - GCP Kubernetes 跨节点传播 Pod,而不是填充可用资源
- java - 如何迭代 ArrayList 以获取内容
- javascript - React - prop-types 被标记为必需
- html - webpack 将一些 html 文件加载到 index.html 中(如 web 组件)
- asp.net - 发布到控制器时,部分视图模型为空
- c# - 使用远程桌面服务 API 反向 SSH 隧道或 TCP 隧道
- asp.net - 如何将 Default.aspx 添加为默认文档
- sql - SQL - 返回每个报价 ID 的最高版本记录