apex クラスでトリガーを動的に作成したいと考えています。ここで誰でも私を助けることができます..これについて私を案内してください. 私は視覚力のページのためのより新鮮です
1 に答える
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 はガイドに記載されており、そのうちのリンクを指定しました。