【Salesforce】SObjectを動的に作成する
SalesforceのApexにて、URLのパラメータから動的にSObjectのレコードを作成することがありました。
そんなことが出来るのかと調べてみると、方法が見つかったのでメモです。
参考にしたURLです。
https://developer.salesforce.com/forums/?id=906F000000090F3IAI
SObjectTypeクラスのnewSObjectメソッドを使うようです。
https://developer.salesforce.com/docs/atlas.ja-jp.208.0.apexcode.meta/apexcode/apex_class_Schema_SObjectType.htm
こんな感じで使います。
String typeName; SObject record; Schema.SObjectType targetType; // 作成するSObject typeName = 'Account'; // SObjectTypeを取得する targetType = Schema.getGlobalDescribe().get(typeName); // レコードを作成する record = targetType.newSObject();
スキーマから取引先のSObjectTypeを取得し、そのSObjectTypeからレコードを作成しています。
引数でIdを使用することで既存のレコードを使用したり、レコードタイプを指定したりすることが出来るようです。
ちなみに、何も指定しなかった場合はすべての項目にnullが入っているそうです。
No comments.