2017-02-08 95 views
2

我想從表中檢索存儲的函數並在運行時執行它們。 防爆MyTableFieldValue包含:在運行時執行存儲的函數

$PARAMETER(MyClass,MyParameterName) 

凡MyTableFieldValue是在一個名爲MyTable的表中的字段值。在MyClass類 MyParameterName值實際上是 「ThisParameter」

我想這樣做:

Set parameterName = MyTableFieldValue 

如果參數名稱應包含 「ThisParameter」。

相反,它包含

$PARAMETER(MyClass,MyParameterName). 

如何強制緩存實際評估哪些是MyTableFieldValue?

回答

2

如果您的表中的數據是不是用戶可編輯的,您可以使用間接計算出你的價值在文檔

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

在您的例子說明它看起來像

Set @("parameterName = "_MyTableFieldValue) 

然而如果用戶可以更改表中的數據,這是不安全的,因爲他們可以用這種方式執行幾乎任何代碼。在這種情況下,您應該解析字符串,找到您的類名稱和參數名稱,並顯式運行$ parameter函數調用。

相關問題