I trying to move notes from one object to another and reparenting them is not allowed as parentid is not a writable field. So I'm copying them. there are only 202 of them so I do not understand why this is failing. It retrieves them fine and the map is good but when the 'insert newNotes' is executed it fails with too many DML statements? This is the only DML statement
public void copyNotes() {
mev_PO_Requisition__c[] lpo = [select id,name,ao_po_id__c,copiedfromaopo__c from mev_PO_Requisition__c where copiedfromaopo__c = true];
map<id, id> poidmap = new map<id,id>();
set<id> lpoids = new set<id>();
note[] newNotes = new list<note>();
if(lpo.size()>0) {
for(mev_PO_Requisition__c po: lpo) {
poidmap.put(po.ao_po_id__c,po.id);
lpoids.add(po.ao_po_id__c);
}
notes = [select id, parentid, title, isprivate, body, ownerid from note where parentid in :lpoids];
if (notes.size()>0) {
for(note n: notes) {
id tmpid = poidmap.get(n.parentid);
note nn = new note(parentid=tmpid,title=n.title,isprivate=n.isprivate,body=n.body,ownerid=n.ownerid);
newNotes.add(nn);
}
insert newNotes;
}
}
}
This is the debug log and the only log generated
38.0
APEX_CODE,INFO;APEX_PROFILING,INFO;CALLOUT,INFO;DB,INFO;SYSTEM,INFO;VALIDATION,INFO;VISUALFORCE,INFO;WAVE,INFO;WORKFLOW,INFO
09:10:40.0 (262361)|USER_INFO|[EXTERNAL]|005d0000004XFDj|[email protected]|Eastern Standard Time|GMT-05:00
09:10:40.0 (292848)|EXECUTION_STARTED
09:10:40.0 (296165)|CODE_UNIT_STARTED|[EXTERNAL]|0661h0000008TIe|VF: /apex/rdTest4
09:10:40.0 (789553)|VF_DESERIALIZE_VIEWSTATE_BEGIN|0661h0000008TIe
09:10:40.0 (40486796)|VF_DESERIALIZE_VIEWSTATE_END
09:10:40.0 (41990929)|SYSTEM_MODE_ENTER|true
09:10:40.0 (42133288)|SYSTEM_MODE_ENTER|false
09:10:40.0 (42143400)|SYSTEM_MODE_EXIT|false
09:10:40.0 (65525331)|SYSTEM_MODE_ENTER|true
09:10:40.0 (112082521)|SYSTEM_MODE_ENTER|false
09:10:40.0 (114161295)|SOQL_EXECUTE_BEGIN|[147]|Aggregations:0|SELECT id, name, ao_po_id__c, copiedfromaopo__c FROM mev_PO_Requisition__c WHERE copiedfromaopo__c = TRUE
09:10:40.0 (150955955)|SOQL_EXECUTE_END|[147]|Rows:1940
09:10:40.0 (184442969)|SOQL_EXECUTE_BEGIN|[157]|Aggregations:0|SELECT id, parentid, title, isprivate, body, ownerid FROM note WHERE parentid = :tmpVar1 LIMIT 100
09:10:40.0 (211262211)|SOQL_EXECUTE_END|[157]|Rows:100
09:10:40.0 (215766074)|DML_BEGIN|[163]|Op:Insert|Type:Note|Rows:100
09:10:40.0 (215849728)|EXCEPTION_THROWN|[163]|System.LimitException: Too many DML statements: 1
09:10:40.0 (216062054)|SYSTEM_MODE_EXIT|false
09:10:40.0 (216155777)|FATAL_ERROR|System.LimitException: Too many DML statements: 1