【Salesforce】SObjectを動的に作成する

【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.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です