动态创建Apex类

时间:2013-08-27 06:19:40

标签: class apex-code frombodyattribute

我通过传递这些参数和链接创建了Apex Trigger:

  { 
  "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 Trigger ......    我需要传递哪些参数以及我应该在Body部分写什么。    我也提到了这个文件:   http://www.salesforce.com/us/developer/docs/api/index.htm

2 个答案:

答案 0 :(得分:2)

我自己尝试过,得到了这个解决方案并且工作正常。 要动态创建Apex类,请执行以下操作:

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

这将自动生成类ID。 现在,如果要删除该类,则应该像这样传递该ID:

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

也许这会帮助那些像我一样陷入困境的人。谢谢。

答案 1 :(得分:0)

我想更进一步,通过自动化生成更大的Apex类。这样做我发现了一些特殊注意事项,因为使用JSON来传递我想要注意的代码,以便在他们想要的时候帮助其他人。

首先,我不得不使用反斜杠(将\替换为\\)。事实上,因为我在Apex中编码(在Salesforce中创建一个Salesforce类),我甚至不得不在我的源代码中转义它们,这些代码正在按摩类代码,所以我的顶级语句变成了...

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

然后我还需要转义代码中的换行符(用\n替换\\n的出现次数)。

我正在使用的其他源代码中包含制表符,这些导致了JSON反序列化的问题。因此添加了mycode.replace('\t',' ')以清除它们的代码。

通过对我的代码的这些调整,我能够通过自动化创建Apex类。