Implementation of new IBulkForceClient
Derives from ForceClient (IForceClient) and implements new IBulkForceClient interface for supporting creation of bulk upsert jobs with externalIdFieldName.
Thanks for the contribution! Before we can merge this, we need @rdev5 to sign the Salesforce Contributor License Agreement.
FYI, CLA has just been signed.
Just wanted to update this PR with some test results.
A recent test (4/17/2017) showed 4k records successfully imported* into Salesforce using the new batch upsert functionality introduced in this PR.
*Original batch size was 10k, of which 6k failed due to STORAGE_LIMIT_EXCEEDED on the account (free)
Thanks for the great work! I am really looking forward to this PR!
Any idea when this will get merged? We need to use the bulk client to upsert records.
Is there a plan for this code to be merged in the near future?
Attempted to reach out to Wade Wegner just now to also call attention to a commit that appears to be affecting Travis CI builds. We'll see if he responds.
Stupid question, but are you doing this with the 1.3.2 version of the nuget package or the current master of the github ?
@FrontLineMedia Sorry for the delayed response.
This was done from a fork of the master branch of this repository which can be found here: https://github.com/rdev5/Force.com-Toolkit-for-NET/commits/master
At this time, it appears this repository has been left unmaintained. My recommendation would be to do as we did: fork the repo to obtain a snapshot, audit/review the code as you deem necessary, and import it as a project into your solution. This way you can trace, debug, and do whatever else you need to do for your application.
Just to update everyone, we're coming up to a year now from the time this pull request was first submitted and it is still used in production to this day.
I feel so bad for not making progress on this. I'll definitely work this into the priority queue for incorporating.
@wadewegner Completely understand; we all get busy :)
@rdev5 Do we still need this PR? I haven't dug into it too much, but we do have bulk methods in ForceClient now.
@wadewegner Do you have commit IDs I could look at? Still looking for where bulk methods were recently introduced into ForceClient...
For reference, see also #246 (BulkForceClient missing from NuGet) for history leading to the submission of this PR.
I'm not seeing the necessary Bulk operations on the ForceClient. This PR is still needed
@wharri220 There doesn't appear to be an explicit Bulk Client - the methods to support bulk operations are on the main Client - RunJob and RunJobAndPoll and the Async versions (Lines 241ff in ForceClient.cs).
However you can currently only submit a list of objects, it doesn't currently support CSV upload, etc.
await client.RunJobAndPollAsync("Contact", BulkConstants.OperationType.Insert,
new List<SObjectList<Contact>> {batch})
Also has an issue with the Upsert operation as you can't specify an ExternalIdField ( #331 ).
@wadewegner Sounds like this is still needed. Thoughts?
Also, let me know if you need me to resolve the current conflicts in this branch.
@mattborja I've got another pull request that supercedes this one and fixes the missing elements on the ForceClient to support bulk operations - #334