class Salesforce::Bulk::UpsertJob

Attributes

external_id_col[RW]

Public Class Methods

new(object_type, external_id_col, columns = :all) click to toggle source
Calls superclass method Salesforce::Bulk::Job::new
# File lib/salesforce/bulk/upsert_job.rb, line 7
def initialize(object_type, external_id_col, columns = :all)
  super(object_type, 'upsert', columns)
  self.external_id_col = object_type.columns.find { |scol| scol.name == external_id_col.to_s  }
  raise UnrecognizedColumn.new("#{external_id_col} is not a valid column.") unless self.external_id_col
end

Public Instance Methods

create_job_xml() click to toggle source
# File lib/salesforce/bulk/upsert_job.rb, line 26
def create_job_xml
  job_xml do |job_info|
    job_info.operation self.operation
    job_info.object self.object
    job_info.externalIdFieldName self.external_id_col.original_name
    job_info.contentType "CSV"
  end
end
csv_columns() click to toggle source
# File lib/salesforce/bulk/upsert_job.rb, line 13
def csv_columns
  if columns.blank? || columns == :all
    ([self.external_id_col] + object_type.columns.editable).uniq
  else
    cols = columns.map do |col|
      sf_col = object_type.columns.find { |scol| scol.name == col.to_s  }
      raise UnrecognizedColumn.new("#{col} is not a valid column.") unless sf_col
      sf_col
    end
    ([self.external_id_col] + cols).uniq
  end
end