2013-08-27 644 views
1

我已經通過通過這個參數,鏈路創建的Apex觸發器:創建的Apex類動態

{ 
    "Name" : "COTriggerEmp11", 
"TableEnumOrId" : "employee__c", 
    "Body" : "trigger COTriggerEmp11 on employee__c (before insert) {system.debug('Record Inserted');}" 
} 

URL :https://ap1.salesforce.com/services/data/v28.0/sobjects/ApexTrigger 

現在我想創建的Apex觸發同樣的方式... 其中參數我需要傳遞,我應該寫在身體部分。 我也參考這個文檔: http://www.salesforce.com/us/developer/docs/api/index.htm

回答

1

我試過了我自己,得到了這個解決方案,它工作正常。 要創建的Apex類動態執行以下操作:

{ 
    "Name": "aaTest1", 
    "Body": "public class aaTest1{}" 
} 

這將自動生成類ID。 現在,如果你想刪除這個類,你應該通過這個ID是這樣的:

https://ap1.salesforce.com/services/data/v28.0/sobjects/ApexClass/[Your Class ID] 

也許這將幫助你這樣的人我was..Thanks是誰卡住了。

+0

thanks @rishabh –

0

我想更進一步,通過自動化生成更大的Apex類。這樣做,我發現了一些特殊的考慮因素,因爲使用JSON來傳遞我想要注意的代碼來幫助其他人,如果他們想要做同樣的事情。

首先,我必須避免使用反斜槓(替換\\\)。事實上,因爲我是在頂點編碼(從Salesforce內創建Salesforce類),我不得不逃跑,即使他們這是按摩類的代碼,所以我的頂點聲明成了我的源代碼...

string bodystring = batchCode.replace('\\','\\\\'); 

然後我還需要跳過代碼中的換行符(將\n替換爲\\n)。

我正在使用的其他源代碼中有製表符,並且這些代碼導致了JSON反序列化問題。因此添加了mycode.replace('\t',' ')以清除它們的代碼。

通過對代碼的這些調整,我能夠通過自動化創建Apex類。