Module: SfCli::Sf::Data::DeleteBulk

Included in:
Core
Defined in:
lib/sf_cli/sf/data/delete_bulk.rb

Instance Method Summary collapse

Instance Method Details

#delete_bulk(file:, sobject:, timeout: nil, target_org: nil) ⇒ Object

delete records using Bulk API 2.0

file — a CSV file, which is written record IDs to delete

sobject — Object Type (ex. Account)

timeout — max minutes to wait for the job complete the task.

target_org — an alias of paticular org, or username can be used

# start a delete job
jobinfo = sf.data.delete_bulk sobject: :TestCustomObject__c, file: 'delete.csv' # this returns immediately
jobinfo.id  # => "750J4000003g1OaIAI" it's job ID

# you can check if the delete job completed
sf.data.delete_resume job_id: jobinfo.id

# Or, you can wait for the job completion with one try.
result = sf.data.delete_bulk sobject: :TestCustomObject__c, file: 'delete.csv', timeout: 5  # wait within 5 minutes

For more command details, see the command reference



28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# File 'lib/sf_cli/sf/data/delete_bulk.rb', line 28

def delete_bulk(file:, sobject:, timeout: nil, target_org: nil)
  flags = {
    :"file"    => file,
    :"sobject"    => sobject,
    :"wait"      => timeout,
    :"target-org" => target_org,
  }
  action = __method__.to_s.tr('_', ' ')
  json = exec(action, flags: flags, redirection: :null_stderr)

  job_info =  ::SfCli::Sf::Data::JobInfo.new(**json['result']['jobInfo'])
  return job_info unless json['result']['records']

  ::SfCli::Sf::Data::BulkResultV2.new(
    job_info: job_info,
    records:  ::SfCli::Sf::Data::BulkRecordsV2.new(**json['result']['records'])
  )
end