You need to sign in to do that
Don't have an account?
deepak balur 19
Incompatible element type List for collection of Sobject...
I have a Map
Map<String, List<sObject>> r2I = new Map<String, List<sObject>>();
----code to populate the Map... The sobject belong to different objects like Lead, Account etc so the Map basically is a medley of different objects.
Now want to extract the List for bulk insert so doing the following
list<sObject> sObjInsertLists = new list<sObject>();
for (String objType : r2I.keySet()) {
sObjInsertLists.add(r2I.get(objType);
}
insert sObjInsertLists;
I keep getting the error "Incompatible element type List for collection of Sobject...". Is there a way to solve this?
Map<String, List<sObject>> r2I = new Map<String, List<sObject>>();
----code to populate the Map... The sobject belong to different objects like Lead, Account etc so the Map basically is a medley of different objects.
Now want to extract the List for bulk insert so doing the following
list<sObject> sObjInsertLists = new list<sObject>();
for (String objType : r2I.keySet()) {
sObjInsertLists.add(r2I.get(objType);
}
insert sObjInsertLists;
I keep getting the error "Incompatible element type List for collection of Sobject...". Is there a way to solve this?
The value of your map "r2I" is List of Sobjects so when you are using this statement "sObjInsertLists.add(r2I.get(objType)" it will return you a list of Sobject not a single sobject.
You can update your code as follows in order to get rid of this issue : If you want to add a single sobject then you can use below code : Please let me know if you need more information on this.
Thanks,
Abhishek Bansal
All Answers
The value of your map "r2I" is List of Sobjects so when you are using this statement "sObjInsertLists.add(r2I.get(objType)" it will return you a list of Sobject not a single sobject.
You can update your code as follows in order to get rid of this issue : If you want to add a single sobject then you can use below code : Please let me know if you need more information on this.
Thanks,
Abhishek Bansal
My requirement is to attach the files in notes and attachments of Account object.When the files get attached,the check box field should be checked.
i have tried to achieve my requirement with the trigger below,but I keep getting the error "Incompatible element type Id for collection of Account" Is there any way to solve this?
trigger AttachmentTriggerDemo on Attachment (before insert) {
List<account>Li = new List<account>();
Set<account>Ids = new Set<account>();
for(Attachment att : trigger.New){
//Check if added attachment is related to Account or not
if(att.ParentId.getSobjectType() == Account.SobjectType){
Ids.add(att.ParentId);
}
}
Li = [select id,name,File_Attached__c from Account where id in : Ids];
if(Li!=null && Li.size()>0){
for(Account acc : Li){
acc.File_Attached__c = true;
}
update Li;
}
}
Thanks in Advanvce
public class AttachmentTriggerHandler
{
public void checkAttachments(Attachment[] attlist)
{
set<Id> conIds = new set<Id>();
for(Attachment a : attList){
if(a.ParentId.getSObjectType() == Contact.SObjectType)
{
conIds.add(a.ParentId);
}
}
List<Contact> conList = [SELECT Id,Files_Attached__c FROM Contact WHERE Id IN : conIds];
AggregateResult[] results= [SELECT ParentId conId,Count(id) tot FROM Attachment WHERE ParentId IN : conIds GROUP BY ParentId];
Map<Id,Double> ContactIdTotAttach = new Map<Id,Double>();
for(AggregateResult r : results)
{
ContactIdTotAttach.put((Id)r.get('conId'),(Double)r.get('tot'));
}
List<Contact > ContactsToUpdate = new List<Contact >();
for(Contact c : conList)
{
Double totContacts = 0;
if(ContactIdTotAttach .containsKey(c.Id))
{
totContacts = ContactIdTotAttach.get(c.Id);
if(totContacts==2)
{
c.Files_Attached__c= true;
}
else
{
c.Files_Attached__c= false;
}
ContactsToUpdate.add(c);
}
}
update ContactsToUpdate ;
}
}
how to write a test class for this apex class.can anyone help me out please?