class Salesforce::Bulk::Job
Attributes
batches[RW]
columns[RW]
concurrency_mode[RW]
content_type[RW]
id[RW]
number_batches_completed[RW]
number_batches_failed[RW]
number_batches_in_progress[RW]
number_batches_total[RW]
number_of_batches_queued[RW]
number_records_processed[RW]
number_retries[RW]
object[RW]
object_type[RW]
operation[RW]
state[RW]
Public Class Methods
new(object_type, operation, columns = :all)
click to toggle source
# File lib/salesforce/bulk/job.rb, line 18 def initialize(object_type, operation, columns = :all) self.object_type = object_type self.object = object_type.table_name self.operation = operation.to_s.downcase self.parallel! self.batches = [] self.columns = columns end
Public Instance Methods
batch(&block)
click to toggle source
# File lib/salesforce/bulk/job.rb, line 35 def batch(&block) Batch.new(self).tap do |batch| Blockenspiel.invoke(block, batch) self.batches << batch end end
completed?()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 48 def completed? self.batches.each(&:update_status) self.batches.all? { |batch| batch.completed? || batch.failed? } end
parallel!()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 27 def parallel! self.concurrency_mode = "Parallel" end
process!()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 42 def process! create_job! create_batches! close_job! end
results()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 53 def results self.batches.map(&:results).flatten end
serial!()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 31 def serial! self.concurrency_mode = "Serial" end
Private Instance Methods
close_job!()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 68 def close_job! response = ::Salesforce.connection.async_post("job/#{id}", close_job_xml, :format => :xml) assign_attributes!(response) end
close_job_xml()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 81 def close_job_xml job_xml do |job_info| job_info.state "Closed" end end
create_batches!()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 64 def create_batches! batches.each(&:create!) end
create_job!()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 59 def create_job! response = ::Salesforce.connection.async_post("job", create_job_xml, :format => :xml) assign_attributes!(response) end
create_job_xml()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 73 def create_job_xml job_xml do |job_info| job_info.operation self.operation job_info.object self.object job_info.contentType "CSV" end end
csv_header()
click to toggle source
# File lib/salesforce/bulk/job.rb, line 96 def csv_header csv_columns.map(&:original_name) end
job_xml(&block)
click to toggle source
# File lib/salesforce/bulk/job.rb, line 87 def job_xml(&block) xml = Builder::XmlMarkup.new(:indent => 2) xml.instruct! xml.jobInfo :xmlns => "http://www.force.com/2009/06/asyncapi/dataload" do |job_info| block.call(job_info) end xml.target! end