1

我想在我的顶点类中动态创建触发器。这里的任何人都可以帮助我.. 请为此指导我。我对视觉力量页面更新鲜

4

1 回答 1

4

您不能在 Apex 中动态创建触发器。由于 Apex 代码无法访问 Trigger 对象,因此,您无法以编程方式创建触发器。无论如何,我们永远不需要动态创建触发器。看这里:http ://boards.developerforce.com/t5/Apex-Code-Development/Create-Trigger-dynamically/td-p/667868

使用 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 触发器,在这里我只是更改了 body 和端点以使其适用于触发器。如果它不起作用,则意味着仍然不支持从 Tooling API 创建触发器。

阅读本指南http://www.salesforce.com/us/developer/docs/api_toolingpre/api_tooling.pdf它包含有关工具 API 的所有内容,并且不需要任何复杂的配置来执行此操作。您只需要在端点 url 上调用 REST即可创建触发器。端点网址在指南中提供,我已经给出了其中的链接。

于 2013-08-22T07:06:36.133 回答