将派生字段动态添加到常见数据类型的 Appian 方法?

问题描述

假设我有一个名为 myTaskAppian common data type (CDT),它包含多个字段 taskNametaskQuartertaskYeartaskId 保存在一个局部变量中(Interface),例如如下所示

+ data (List of dictionary)
  + (Dictionary)
    - taskName:    "Plant trees." (Text)
    - taskQuarter: 1              (Number (Integer))
    - taskYear:    2020           (Number (Integer))
    - taskId:      0              (Number (Integer))
  + (Dictionary)
    - taskName:    "Cut leaves." (Text)
    - taskQuarter: 2              (Number (Integer))
    - taskYear:    2020           (Number (Integer))
    - taskId:      1              (Number (Integer))

在(接口的)本地范围内,我想为所有名为 taskLongName 的记录添加一个字段,它是以下串联(伪代码):

taskLongName = taskName + " " + taskYear + " Q" + taskQuarter

请问我该怎么做?

解决方法

结果很简单:假设您定义了表达式规则 myGetAllTasks(),您可以将字典的初始列表放入 local!allTasks。接下来,我们使用 Appian's a!forEach() 函数:

a!localVariables(
local!allTasks: rule!myGetAllTasks().data,local!taskLongNames: 
  a!foreach(
    items: local!allTasks,expression: concat(
      fv!item.taskName," for ",fv!item.processYear," Q",fv!item.processQuarter
    )
  ),... <-- Here comes the configuration (code) defining the actual interface
)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...