在 运行 时间执行存储的函数

Execute stored functions at run-time

我正在尝试从 table 中检索存储的函数并让它们在 运行 时执行。 Ex MyTableFieldValue 包含:

$PARAMETER(MyClass,MyParameterName) 

其中 MyTableFieldValue 是 table 中名为 MyTable 的字段值。 class MyClass 中的 MyParameterName 值实际上是 "ThisParameter"

我想这样做:

Set parameterName = MyTableFieldValue 

其中 parameterName 应包含 "ThisParameter".

而是包含

$PARAMETER(MyClass,MyParameterName).

如何强制缓存实际评估 MyTableFieldValue 中的内容?

如果您的 table 中的数据不是 user-editable,您可以按照文档

中的描述使用间接计算您的值

http://docs.intersystems.com/latest/csp/docbook/DocBook.UI.Page.cls?KEY=GCOS_operators#GCOS_operators_indirection_arg

在您的示例中,它看起来像

Set @("parameterName = "_MyTableFieldValue)

但是,如果用户可以更改您 table 中的数据,这是不安全的,因为他们可以通过这种方式执行几乎所有代码。在这种情况下,您应该解析字符串,找到您的 class 名称和参数名称,并显式调用 运行 $parameter 函数。