【Salesforce】System.TypeException: Cannot have more than 10 types in a single save operation. Please reduce number of types in one save operation.
SalesforceのApexコードで、Listの型SObject型を設定することが出来ます。
そうすることによってListに異なる型のSObjectレコードを設定することが出来ます。
List<SObject> objectList; objectList = new List<SObject>(); objectList.add(new Account()); objectList.add(new Contact()); objectList.add(new Task()); objectList.add(new Document()); objectList.add(new Contract()); objectList.add(new Campaign()); objectList.add(new Campaignmember()); objectList.add(new Lead()); objectList.add(new Attachment()); objectList.add(new product2()); objectList.add(new Case());
このようなListに対してDMLを発行すると、エラーが発生しました。
System.TypeException: Cannot have more than 10 types in a single save operation. Please reduce number of types in one save operation.
1度の保存では10を超える型を保存できないから見直してねってことらしいです。
ちなみに、上のコードでinsertを発行すると発生します。
List<SObject> objectList; objectList = new List<SObject>(); objectList.add(new Account()); objectList.add(new Contact()); objectList.add(new Task()); objectList.add(new Document()); objectList.add(new Contract()); objectList.add(new Campaign()); objectList.add(new Campaignmember()); objectList.add(new Lead()); objectList.add(new Attachment()); objectList.add(new product2()); objectList.add(new Case()); insert objectList;
10を超えなければ良いということなので、10以下であれば大丈夫ということですね。
こちらのコードは正常に動作しました。
List<SObject> objectList; objectList = new List<SObject>(); objectList.add([select Id from Account limit 1]); objectList.add([select Id from Contact limit 1]); update objectList;
便利なのですが、複数の型を保存する場合にはトリガやワークフローの動きに注意する必要がありそうですね。
No comments.