1

apex クラスでトリガーを動的に作成したいと考えています。ここで誰でも私を助けることができます..これについて私を案内してください. 私は視覚力のページのためのより新鮮です

4

1 に答える 1

4

Apex でトリガーを動的に作成することはできません。Apex コードは Trigger オブジェクトにアクセスできないため、プログラムでトリガを作成することはできません。とにかく、トリガーを動的に作成する必要はありません。こちらをご覧ください: http://boards.developerforce.com/t5/Apex-Code-Development/Create-Trigger-dynamically/td-p/667868

REST コールアウトを使用して、Tooling API エンドポイントによってトリガーを作成するサンプル apex コード:

        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 Trigger ではなく Apex クラスを作成しました。ここでは、ボディとエンドポイントを変更して、トリガーで機能するようにしました。機能しない場合は、Tooling API からのトリガーの作成がまだサポートされていないことを意味します。

このガイドを読んでください http://www.salesforce.com/us/developer/docs/api_toolingpre/api_tooling.pdfツール API に関するすべてが記載されており、これを行うために複雑な構成は必要ありません。トリガーを作成するには、エンドポイント URL でコールアウトを RESTするだけです。エンドポイントの URL はガイドに記載されており、そのうちのリンクを指定しました。

于 2013-08-22T07:06:36.133 に答える