2017-08-20 13 views
0

私はSalesforceを初めて使用していて、1つの要件をコーディングしたいと思います。そのクラスのオブジェクトを作成するための変数stringにはAPI名があります。Salesforceでクラス名を使用してクラスオブジェクトを作成

たとえば、オブジェクト名は文字列変数に格納されるAccountです。 文字列var = 'アカウント'

今、私は 'アカウント'のオブジェクトを作成したいと思います。 javaではClass.forName( 'Account')でも可能ですが、同様のアプローチはSalesforce Apexでは機能しません。

誰でもこのことで私を助けてください。

答えて

0
クラスをご覧ください。 https://developer.salesforce.com/blogs/developer-relations/2012/05/dynamic-apex-class-instantiation-in-summer-12.html

これは、組織が持っている場合のみChatter投稿(フィード項目)を挿入する管理パッケージコードでこれを使用しています。びびりが有効:

sObject fItem = (sObject)System.Type.forName('FeedItem').newInstance(); 
fItem.put('ParentId', UserInfo.getUserId()); 
fItem.put('Body', 'Bla bla bla'); 
insert fItem; 

(私は「実行するためにびびりが必要です」と、それは私のパッケージをマークしたい直接挿入FeedItemクラス&をハードコーディングしたい場合)。

オブジェクトのJSON表現(型だけでなく、いくつかのフィールド値も含む)を作成することもできます。 - 何かをしてみてください、あなたのコードスニペットに基づいて

:あなたは今、あなたは:)


編集を検索するための&例をキーワード知っている非常に少なくとも、https://salesforce.stackexchange.com/questions/171926/how-to-deserialize-json-to-sobject

で顔をしている可能性がありこのように:

String typeName = 'List<Account>'; 
String content = '[{"attributes":{"type":"Account"},"Name":"Some account"},{"attributes":{"type":"Account"},"Name":"Another account"}]'; 

Type t = Type.forName(typeName); 
List<sObject> parsed = (List<sObject>) JSON.deserialize(content, t); 

System.debug(parsed); 
System.debug(parsed[1].get('Name')); 

// And if you need to write code "if it's accounts then do something special with them": 
if(t == List<Account>.class){ 
    List<Account> accs = (List<Account>) parsed; 
    accs[1].BillingCountry = 'USA'; 
} 
+0

'String objectName = i.Name; // i.NameはオブジェクトAPI名を与えます //以下は推奨コード行です sObject fItem =(sObject)System.Type.forName(objectName).newInstance(); //下の行が無効な型のエラーを出すfItem リスト s =(リスト)parser.readValueAs(リスト .class); //以下のコメント行は1つのオブジェクト用であり、複数のオブジェクトに対して同様の操作を実行しようとしています // acc =(リスト)parser.readValueAs(リスト .class); //最後にそのオブジェクトを挿入しています insert acc; ' –

+0

こんにちは、ありがとう、詳細情報。私は上記の情報を試して、コード化されているが、コンパイル時にオブジェクトの型が必要なので、無効な型を投げている可能性があります。上記は失敗している正確なコードスニペットです –

+0

更新された回答を確認しますか? – eyescream

関連する問題