Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Class 动态创建Apex类_Class_Apex Code_Frombodyattribute - Fatal编程技术网

Class 动态创建Apex类

Class 动态创建Apex类,class,apex-code,frombodyattribute,Class,Apex Code,Frombodyattribute,我通过传递此参数和链接创建了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

我通过传递此参数和链接创建了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触发器。。。 我需要传递哪些参数,我应该在正文部分写些什么。 我很高兴也参考了这份文件:

我自己也尝试过,得到了这个解决方案,效果很好。 要动态创建Apex类,请执行以下操作:

{ 
    "Name": "aaTest1",
    "Body": "public class aaTest1{}"
}
这将自动生成类ID。 现在,如果要删除该类,应按如下方式传递该ID:

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

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

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

首先,我必须避免使用反斜杠(将出现的
\
替换为
\
)。事实上,因为我在Apex中编码(从Salesforce中创建Salesforce类),所以我甚至不得不在我的源代码中避开它们,因为源代码对类代码进行了修改,所以我的Apex语句变成了

string bodystring = batchCode.replace('\\','\\\\');
然后我还需要转义代码中的换行符(将出现的
\n
替换为
\\n

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

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