我想在我的apex类中动态创建触发器。 谁能在这帮助我.. 请指导我这个。 我对视觉力量页面更新鲜
答案 0 :(得分:4)
您无法在Apex中动态创建触发器。因为Apex代码无法访问Trigger对象所以,您无法以编程方式创建触发器。无论如何,我们永远不需要动态创建触发器。看这里:http://boards.developerforce.com/t5/Apex-Code-Development/Create-Trigger-dynamically/td-p/667868
示例apex代码,使用REST标注通过Tooling API端点创建触发器:
String json = '{ "Name" : "COTrigger", \'+
'"TableEnumOrId" : "Custom_Object__c",'+
'"Body" : "trigger COTrigger on Custom_Object__c (after insert) { // Do Something }" }'; // JSON format to create trigger
Httprequest req = new HttpRequest();
req.setEndpoint('https://[salesforce instance].salesforce.com/services/data/v27.0/sobjects/ApexTrigger');
req.setMethod('POST');
req.setHeader('Content-Type':'application/json');
req.setHeader('Authorization':'Bearer: '+sessionId);
req.setBody(json);
Http httpReq = new HttpReq();
HttpResponse res = httpReq.send(req);
System.debug(res.getBody());
纠正一些语法错误,Tooling API基本上是一组对象,可通过它访问组件。尝试这段代码,实际上我使用这段代码来创建Apex类而非Apex Trigger,在这里我只是改变了身体和放大器。端点使其适用于触发器。如果它不起作用,则意味着仍然不支持从Tooling API创建Trigger。
阅读本指南http://www.salesforce.com/us/developer/docs/api_toolingpre/api_tooling.pdf它包含所有关于工具API的内容,并且不需要任何复杂的配置来执行此操作。您只需要在端点URL上 REST callout 来创建触发器。端点网址在指南中提供,我已经给出了链接。