Published by cathy under Salesforce.com on Tuesday, May 19th, 2009 at 12:04 am
I’m sharing this code because I know a lot of new salesforce developers are pulling their hair out looking for concrete samples on how to do API batch update. Yes it took me awhile to be able to solve this problem. APEX API documentation doesn’t give it all and it’s frustrating…
So much for that, here’s how I did it. My sample is updating a custom field in Opportunity Object using VB.Net.
Dim arrUpdateID AsNew ArrayList 'This ArrayList holds the Opportunity IDs I need to update, I didn't included the query - that will be your taskDim objOppx(199)As Opportunity
For d = d To arrUpdateID.Count-1Dim updateOppx AsNew Opportunity
updateOppx.Id= arrUpdateID(d)' You need an ID when you update
updateOppx.Downloaded__c=True' This is a checkbox in SFDC where I'm setting it to true
updateOppx.Downloaded__cSpecified=True' This is required when updating a boolean field
objOppx(d)= updateOppx ' Storing opportunity values to objOppx which is an array of OpptyNextDim sr()As SaveResult = sfdc.update(objOppx)' This is where the updating happens, this line of code should be outside the loopFor j AsInteger=0To sr.Length-1Dim msgerr AsStringIfNot sr(j).successThen
msgerr ="Error updating Opportunity ID: "+ sr(j).id+". The error was: " _
+ sr(j).errors(0).messageEndIfNext
Note: You can only update 200 records in an Object at a time due to Governor limits, so you need to make some work around with that issue. I have done that through chunking up my array of IDs to update. I’ll leave that up to you!
I hope this post helps! There will be more to come as I learn Salesforce.com and APEX programming.