Class: SalesforceBulkApi::Api
- Inherits:
-
Object
- Object
- SalesforceBulkApi::Api
- Defined in:
- lib/salesforce_bulk_api.rb
Constant Summary collapse
- @@SALESFORCE_API_VERSION =
'32.0'
Instance Method Summary collapse
- #create(sobject, records, get_response = false, send_nulls = false, batch_size = 10000, timeout = 1500) ⇒ Object
- #delete(sobject, records, get_response = false, batch_size = 10000, timeout = 1500) ⇒ Object
-
#do_operation(operation, sobject, records, external_field, get_response, timeout, batch_size, send_nulls = false, no_null_list = []) ⇒ Object
private.
-
#initialize(client) ⇒ Api
constructor
A new instance of Api.
- #job_from_id(job_id) ⇒ Object
-
#on_job_created(&block) ⇒ Object
Allows you to attach a listener that accepts the created job (which has a useful #job_id field).
- #query(sobject, query, batch_size = 10000, timeout = 1500) ⇒ Object
- #update(sobject, records, get_response = false, send_nulls = false, no_null_list = [], batch_size = 10000, timeout = 1500) ⇒ Object
- #upsert(sobject, records, external_field, get_response = false, send_nulls = false, no_null_list = [], batch_size = 10000, timeout = 1500) ⇒ Object
Constructor Details
#initialize(client) ⇒ Api
Returns a new instance of Api.
17 18 19 20 |
# File 'lib/salesforce_bulk_api.rb', line 17 def initialize(client) @connection = SalesforceBulkApi::Connection.new(@@SALESFORCE_API_VERSION,client) @listeners = { job_created: [] } end |
Instance Method Details
#create(sobject, records, get_response = false, send_nulls = false, batch_size = 10000, timeout = 1500) ⇒ Object
30 31 32 |
# File 'lib/salesforce_bulk_api.rb', line 30 def create(sobject, records, get_response = false, send_nulls = false, batch_size = 10000, timeout = 1500) self.do_operation('insert', sobject, records, nil, get_response, timeout, batch_size, send_nulls) end |
#delete(sobject, records, get_response = false, batch_size = 10000, timeout = 1500) ⇒ Object
34 35 36 |
# File 'lib/salesforce_bulk_api.rb', line 34 def delete(sobject, records, get_response = false, batch_size = 10000, timeout = 1500) self.do_operation('delete', sobject, records, nil, get_response, timeout, batch_size) end |
#do_operation(operation, sobject, records, external_field, get_response, timeout, batch_size, send_nulls = false, no_null_list = []) ⇒ Object
private
57 58 59 60 61 62 63 64 65 66 |
# File 'lib/salesforce_bulk_api.rb', line 57 def do_operation(operation, sobject, records, external_field, get_response, timeout, batch_size, send_nulls = false, no_null_list = []) job = SalesforceBulkApi::Job.new(operation: operation, sobject: sobject, records: records, external_field: external_field, connection: @connection) job.create_job(batch_size, send_nulls, no_null_list) @listeners[:job_created].each {|callback| callback.call(job)} operation == "query" ? job.add_query() : job.add_batches() response = job.close_job response.merge!({'batches' => job.get_job_result(get_response, timeout)}) if get_response == true response end |
#job_from_id(job_id) ⇒ Object
51 52 53 |
# File 'lib/salesforce_bulk_api.rb', line 51 def job_from_id(job_id) SalesforceBulkApi::Job.new(job_id: job_id, connection: @connection) end |
#on_job_created(&block) ⇒ Object
Allows you to attach a listener that accepts the created job (which has a useful #job_id field). This is useful for recording a job ID persistently before you begin batch work (i.e. start modifying the salesforce database), so if the load process you are writing needs to recover, it can be aware of previous jobs it started and wait for them to finish.
47 48 49 |
# File 'lib/salesforce_bulk_api.rb', line 47 def on_job_created(&block) @listeners[:job_created] << block end |
#query(sobject, query, batch_size = 10000, timeout = 1500) ⇒ Object
38 39 40 |
# File 'lib/salesforce_bulk_api.rb', line 38 def query(sobject, query, batch_size = 10000, timeout = 1500) self.do_operation('query', sobject, query, nil, true, timeout, batch_size) end |
#update(sobject, records, get_response = false, send_nulls = false, no_null_list = [], batch_size = 10000, timeout = 1500) ⇒ Object
26 27 28 |
# File 'lib/salesforce_bulk_api.rb', line 26 def update(sobject, records, get_response = false, send_nulls = false, no_null_list = [], batch_size = 10000, timeout = 1500) self.do_operation('update', sobject, records, nil, get_response, timeout, batch_size, send_nulls, no_null_list) end |
#upsert(sobject, records, external_field, get_response = false, send_nulls = false, no_null_list = [], batch_size = 10000, timeout = 1500) ⇒ Object
22 23 24 |
# File 'lib/salesforce_bulk_api.rb', line 22 def upsert(sobject, records, external_field, get_response = false, send_nulls = false, no_null_list = [], batch_size = 10000, timeout = 1500) self.do_operation('upsert', sobject, records, external_field, get_response, timeout, batch_size, send_nulls, no_null_list) end |