As far as I can tell, the concept of the bulk API is a CSV file upload.
That is you have a set of columns and a set of rows with values set.
With this concept, if a value isn't set, then you have a choice of setting it to nil or ignoring it. The set nil boolean switches between these two choices.
We aren't using the system this way. We don't want fields that we don't set to be set to nil, and we do want fields that we set to be set to nil.
Of the two ways I had to address this, I chose the simpler path. For any single record, ignore the other records, and just simply send all of the values in that record.
The alternative would be to send nil for any value that is actually set for a record, and if the boolean is set, send nil for all unspecified values. This feels more in the spirit of the code as it exists now.
As far as I can tell, the concept of the bulk API is a CSV file upload.
That is you have a set of columns and a set of rows with values set.
With this concept, if a value isn't set, then you have a choice of setting it to nil or ignoring it. The set nil boolean switches between these two choices.
We aren't using the system this way. We don't want fields that we don't set to be set to nil, and we do want fields that we set to be set to nil.
Of the two ways I had to address this, I chose the simpler path. For any single record, ignore the other records, and just simply send all of the values in that record.
The alternative would be to send nil for any value that is actually set for a record, and if the boolean is set, send nil for all unspecified values. This feels more in the spirit of the code as it exists now.