我正處於Salesforce Apex的學習階段。我已經閱讀了Dynamic Apex的主題,並且無法理解這個概念。有人可以解釋它如何處理它,以及在哪種情況下最好使用? 在此先感謝。什麼是salesforce中的動態頂點?
2
A
回答
5
使用案例1:
你正在開發一個網頁,上面寫着Salesforce的對象元數據,以顯示對象記錄給用戶。你想要使用描述性的全局方法,但是你不知道如何將標準的SOQL和通用的SObject
類型結合起來。
標準SOQL如
Person__c [] persons = [SELECT Id, Name, Age__c, Height__c FROM Person__c];
但描述全局元數據的方法返回的sObject類型。
解決方案:
使用說明全球的方法來獲取對象的列表,然後再獲取對象的所有領域。用本地字符串變量在所有字段中構建一條SELECT語句,然後使用Database.query()
執行查詢。
string objectfullname = 'scenario__c';
Schema.SObjectType targetType = Schema.getGlobalDescribe().get('scenario__c');
if (targetType == null) {
system.debug('Type not found: '+objectFullname);
throw new TypeNotFoundException(objectFullName);
}
Schema.DescribeSObjectResult typedescription = targetType.getDescribe();
Map<String, schema.Sobjectfield> resultMap = typedescription.Fields.getMap();
string query = 'SELECT ' + string.join(new List<string>(resultMap.keySet()), ',') + ' FROM '+ objectfullname + ' LIMIT 100';
sobject [] records = Database.query(query);
使用案例2
你想鬆耦合你的代碼的自定義對象管理的封裝測試版,以便管理封裝可以卸載和升級。
解決方案
當您使用Database.query()
方法,因此它可以無需任何重新安裝註釋掉的代碼刪除依賴你的代碼不會被編譯針對自定義對象。
使用案例3
您有副本記錄到另一個自定義對象插入後,根據動態字段映射架構的觸發器。你不能用標準的方式編碼它[SELECT ...]
,因爲你只知道你在運行時插入什麼對象。
解決方案
此外,使用說明全局方法& Database.query得到記錄和類型信息,那麼你可以插入到像正常DML的目標對象。
sobject newRecord = ...
for (integer i = 0; i < fieldCount; i++) {
newRecord.put(fields[i],values[i]);
}
insert newRecord;
如果你是做批量插入,像往常一樣,請確保你不把DML(INSERT,UPDATE)的循環語句。
+0
不錯的徹底的答案! – Bryan
相關問題
- 1. 頂點 - Salesforce的 - 地圖
- 2. 頂點(Salesforce的)從響應
- 3. 什麼是頂點着色?
- 4. 什麼是頂點屬性?
- 5. 什麼是sforce。 Salesforce中的類?
- 6. 什麼是salesforce中的應用程序
- 7. 什麼是opengl當前頂點?
- 8. 什麼是頂點數組對象?
- 9. 什麼是頂點隨機活動的圖形稱爲?
- 10. Salesforce的頂點: - 獲取誤差爲靜態只能在一個頂級類型
- 11. Java - 動態創建頂點
- 12. Ruby中動態類型的優缺點是什麼?
- 13. Salesforce WebServiceCallout.invoke方法的參數是什麼?
- 14. 查詢DB使用頂點在Salesforce
- 15. salesforce:頂點jquery文件上傳:tabpanel
- 16. salesforce如何達到75%頂點測試
- 17. 什麼是TensorFlow中的動態RNN?
- 18. 是否有辦法動態定製Salesforce出站消息端點
- 19. 動態或靜態頂點緩衝區?
- 20. 爲什麼頂級類在Java中不是靜態的?
- 21. 什麼是靜態庫,什麼是動態庫,有什麼區別,什麼是更好的使用,爲什麼?
- 22. D3D11中語義和頂點佈局的意義是什麼?
- 23. GLMmodel頂點中的-431602080.000000值是什麼意思?
- 24. 什麼是活動狀態
- 25. 什麼是動態DAO?
- 26. 頂點:爲什麼沒有聚集的垂直頂點?
- 27. 靜態函數的優點是什麼?
- 28. 什麼是Python中的頂級模塊?
- 29. 什麼是java中的頂級類?
- 30. salesforce - 靜態資源中的壓縮CSS未呈現,爲什麼?
你能給你想要解釋的地方嗎?動態頂點有很多部分。 –