salesforce_bulk 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/.gitignore +4 -0
- data/Gemfile +4 -0
- data/Rakefile +1 -0
- data/lib/salesforce_bulk.rb +71 -0
- data/lib/salesforce_bulk/version.rb +3 -0
- data/salesforce_bulk.gemspec +29 -0
- metadata +52 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,71 @@
|
|
1
|
+
require 'net/http'
|
2
|
+
require 'xmlsimple'
|
3
|
+
require 'csv'
|
4
|
+
require "salesforce_bulk/version"
|
5
|
+
require 'salesforce_bulk/job'
|
6
|
+
require 'salesforce_bulk/connection'
|
7
|
+
|
8
|
+
module SalesforceBulk
|
9
|
+
# Your code goes here...
|
10
|
+
class Api
|
11
|
+
|
12
|
+
@@SALESFORCE_API_VERSION = '23.0'
|
13
|
+
|
14
|
+
def initialize(username, password)
|
15
|
+
@connection = SalesforceBulk::Connection.new(username, password, @@SALESFORCE_API_VERSION)
|
16
|
+
end
|
17
|
+
|
18
|
+
def upsert(sobject, records, external_field)
|
19
|
+
self.do_operation('upsert', sobject, records, external_field)
|
20
|
+
end
|
21
|
+
|
22
|
+
def update(sobject, records)
|
23
|
+
self.do_operation('update', sobject, records, nil)
|
24
|
+
end
|
25
|
+
|
26
|
+
def create(sobject, records)
|
27
|
+
self.do_operation('insert', sobject, records, nil)
|
28
|
+
end
|
29
|
+
|
30
|
+
def delete(sobject, records)
|
31
|
+
self.do_operation('delete', sobject, records, nil)
|
32
|
+
end
|
33
|
+
|
34
|
+
def query(sobject, query)
|
35
|
+
self.do_operation('query', sobject, query, nil)
|
36
|
+
end
|
37
|
+
|
38
|
+
#private
|
39
|
+
|
40
|
+
def do_operation(operation, sobject, records, external_field)
|
41
|
+
job = SalesforceBulk::Job.new(operation, sobject, records, external_field, @connection)
|
42
|
+
|
43
|
+
# TODO: put this in one function
|
44
|
+
job_id = job.create_job()
|
45
|
+
if(operation == "query")
|
46
|
+
batch_id = job.add_query()
|
47
|
+
else
|
48
|
+
batch_id = job.add_batch()
|
49
|
+
end
|
50
|
+
job.close_job()
|
51
|
+
|
52
|
+
state = job.check_batch_status()
|
53
|
+
while true
|
54
|
+
puts "\nstate is #{state}\n"
|
55
|
+
state = job.check_batch_status()
|
56
|
+
if state != "Queued"
|
57
|
+
break
|
58
|
+
end
|
59
|
+
sleep(2) # wait x seconds and check again
|
60
|
+
end
|
61
|
+
|
62
|
+
if state == 'Completed'
|
63
|
+
job.get_batch_result()
|
64
|
+
else
|
65
|
+
return "error"
|
66
|
+
end
|
67
|
+
|
68
|
+
end
|
69
|
+
|
70
|
+
end # End class
|
71
|
+
end
|
@@ -0,0 +1,29 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "salesforce_bulk/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "salesforce_bulk"
|
7
|
+
s.version = SalesforceBulk::VERSION
|
8
|
+
s.authors = ["Jorge Valdivia"]
|
9
|
+
s.email = ["jorge@valdivia.me"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = %q{Ruby support for the Salesforce Bulk API}
|
12
|
+
s.description = %q{This gem provides a super simple interface for the Salesforce Bulk API. It provides support for insert, update, upsert, delete, and query.}
|
13
|
+
|
14
|
+
s.rubyforge_project = "salesforce_bulk"
|
15
|
+
|
16
|
+
s.files = `git ls-files`.split("\n")
|
17
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
18
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
|
+
s.require_paths = ["lib"]
|
20
|
+
|
21
|
+
# specify any dependencies here; for example:
|
22
|
+
# s.add_development_dependency "rspec"
|
23
|
+
# s.add_runtime_dependency "rest-client"
|
24
|
+
|
25
|
+
#s.add_development_dependency "net-http"
|
26
|
+
#s.add_development_dependency "xmlsimple"
|
27
|
+
#s.add_development_dependency "csv"
|
28
|
+
|
29
|
+
end
|
metadata
ADDED
@@ -0,0 +1,52 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: salesforce_bulk
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
prerelease:
|
6
|
+
platform: ruby
|
7
|
+
authors:
|
8
|
+
- Jorge Valdivia
|
9
|
+
autorequire:
|
10
|
+
bindir: bin
|
11
|
+
cert_chain: []
|
12
|
+
date: 2011-10-19 00:00:00.000000000Z
|
13
|
+
dependencies: []
|
14
|
+
description: This gem provides a super simple interface for the Salesforce Bulk API.
|
15
|
+
It provides support for insert, update, upsert, delete, and query.
|
16
|
+
email:
|
17
|
+
- jorge@valdivia.me
|
18
|
+
executables: []
|
19
|
+
extensions: []
|
20
|
+
extra_rdoc_files: []
|
21
|
+
files:
|
22
|
+
- .gitignore
|
23
|
+
- Gemfile
|
24
|
+
- Rakefile
|
25
|
+
- lib/salesforce_bulk.rb
|
26
|
+
- lib/salesforce_bulk/version.rb
|
27
|
+
- salesforce_bulk.gemspec
|
28
|
+
homepage: ''
|
29
|
+
licenses: []
|
30
|
+
post_install_message:
|
31
|
+
rdoc_options: []
|
32
|
+
require_paths:
|
33
|
+
- lib
|
34
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
35
|
+
none: false
|
36
|
+
requirements:
|
37
|
+
- - ! '>='
|
38
|
+
- !ruby/object:Gem::Version
|
39
|
+
version: '0'
|
40
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
requirements: []
|
47
|
+
rubyforge_project: salesforce_bulk
|
48
|
+
rubygems_version: 1.8.10
|
49
|
+
signing_key:
|
50
|
+
specification_version: 3
|
51
|
+
summary: Ruby support for the Salesforce Bulk API
|
52
|
+
test_files: []
|