我仔細研究了這一點,似乎沒有直接相關的函數可用,因爲Apex是如此強大的類型,但我想知道是否有人找到了解決方法。我正在設計一個信用風險對象,我的客戶希望能夠在更新字段時插入諸如「150 + 3」而不是「153」之類的表達式,以幫助加速她的工作。不幸的是,我對銷售人員很陌生,所以我很難提出想法。這是否可行?apex/Salesforce中是否存在eval()等價物?
1
A
回答
1
您可以允許手動輸入SOQL語句,然後使用動態SOQL來處理它們。但是這需要比「150 + 3」多一點。
否則,您可以在JavaScript中執行此操作,並將該值作爲已計算的數字傳回給Apex。
1
可以通過在工具或Apex API上調用executeAnonymous API方法來模擬Apex中的Javascript eval()。
訣竅是你需要在eval字符串主體中傳遞任何必需的輸入參數。如果需要響應,您需要一種機制來提取它。
有兩種常用的方法可以從executeAnonymous獲得響應。
- 在執行結束時拋出故意的異常幷包含響應。 Kevin在EVAL() in Apex. Secure Dynamic Code Evaluation on the Salesforce1 Platform中涵蓋了這種方法。
- 我使用了這種方法的變體,但是通過調試日誌返回響應,而不是有意的異常。見Adding Eval() support to Apex。
用我的例子中,頂點會是這樣的:
integer sum = soapSforceCom200608Apex.evalInteger(
'integer result = 150 + 3; System.debug(LoggingLevel.Error, result);');
您可能無法成員初始化過程中或在構造函數中進行標註。
順便提一下,Salesforce Stackexchange site是向Salesforce提出特定問題的好地方。
+0
你搖滾!從來不知道這是可能的Apex!你有我的投票! – Patlatus
相關問題
- 1. JavaScript中是否存在getColorBoundsRect()等價物?
- 2. 在jQuery中是否有等價的eval()?
- 3. WeakHashMap是否存在java.util.concurrent等價物?
- 4. Axiis是否存在非Adobe等價物?
- 5. 是否存在0x80的ascii等價物?
- 6. IBM Worklight - 是否存在Window.open()等價物?
- 7. 是否存在與SELECT ... COUNT(*)... GROUP BY ...等價的等價物?
- 8. Java中是否存在std :: bitset等價物(或類似物)?
- 9. 是否有eval(「function(arg1,arg2)」)的C/C++等價物?
- 10. 在Python中是否有sessionInfo()等價物?
- 11. 在Java中是否有TweenMax等價物
- 12. 在java中是否有array_intersect()等價物?
- 13. 在Doxygen中是否有@inheritDoc等價物?
- 14. 在Python中是否有Rake等價物?
- 15. 在Ramda中是否有R.notEquals等價物?
- 16. 在Windows中是否有XEmbed等價物?
- 17. C++中是否存在Python中的「in」函數的等價物?
- 18. 在PowerShell中是否存在「... || die」等價物?
- 19. 在C#中是否存在boost :: shared_ptr <T>等價物?
- 20. 在Ruby中是否存在addslashes等價物?
- 21. 在Swift中是否存在decltype等價物?
- 22. 在C++中是否存在C#SecureString等價物?
- 23. 在C#Windows窗體中是否存在QTimer :: singleShot等價物?
- 24. 在jquery中是否存在一個Angular Multiple選擇等價物?
- 25. 在C++/CLI中是否存在C#的不安全等價物?
- 26. 在Python 3中是否存在與tokenize import pseudoprog.match的等價物?
- 27. 在SQL Server Management Studio中是否存在SELECT ... INTO OUTFILE等價物?
- 28. 在Ruby 1.8.5中是否存在Array#each_slice()的等價物?
- 29. 在PowerShell中是否存在「this」的等價物?
- 30. 在AS3中是否存在MemberwiseClone()等價物?
好主意。謝謝,我會嘗試。 – grantb747