salesforcebulk 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +4 -0
- data/.rbenv-version +1 -0
- data/Gemfile +2 -0
- data/README.md +143 -0
- data/Rakefile +22 -0
- data/lib/salesforce_bulk.rb +15 -0
- data/lib/salesforce_bulk/batch.rb +50 -0
- data/lib/salesforce_bulk/batch_result.rb +39 -0
- data/lib/salesforce_bulk/batch_result_collection.rb +29 -0
- data/lib/salesforce_bulk/client.rb +254 -0
- data/lib/salesforce_bulk/core_extensions/string.rb +14 -0
- data/lib/salesforce_bulk/job.rb +70 -0
- data/lib/salesforce_bulk/query_result_collection.rb +48 -0
- data/lib/salesforce_bulk/salesforce_error.rb +30 -0
- data/lib/salesforce_bulk/version.rb +3 -0
- data/salesforcebulk.gemspec +28 -0
- data/test/fixtures/batch_create_request.csv +3 -0
- data/test/fixtures/batch_create_response.xml +13 -0
- data/test/fixtures/batch_info_list_response.xml +27 -0
- data/test/fixtures/batch_info_response.xml +13 -0
- data/test/fixtures/batch_result_list_response.csv +3 -0
- data/test/fixtures/config.yml +7 -0
- data/test/fixtures/invalid_batch_error.xml +5 -0
- data/test/fixtures/invalid_error.xml +5 -0
- data/test/fixtures/invalid_job_error.xml +5 -0
- data/test/fixtures/invalid_session_error.xml +5 -0
- data/test/fixtures/job_abort_request.xml +1 -0
- data/test/fixtures/job_abort_response.xml +25 -0
- data/test/fixtures/job_close_request.xml +1 -0
- data/test/fixtures/job_close_response.xml +25 -0
- data/test/fixtures/job_create_request.xml +1 -0
- data/test/fixtures/job_create_response.xml +25 -0
- data/test/fixtures/job_info_response.xml +25 -0
- data/test/fixtures/login_error.xml +1 -0
- data/test/fixtures/login_request.xml +1 -0
- data/test/fixtures/login_response.xml +39 -0
- data/test/fixtures/query_result_list_response.xml +1 -0
- data/test/fixtures/query_result_response.csv +5 -0
- data/test/lib/test_batch.rb +258 -0
- data/test/lib/test_batch_result.rb +40 -0
- data/test/lib/test_core_extensions.rb +15 -0
- data/test/lib/test_initialization.rb +86 -0
- data/test/lib/test_job.rb +256 -0
- data/test/lib/test_query_result_collection.rb +87 -0
- data/test/test_helper.rb +32 -0
- metadata +222 -0
@@ -0,0 +1,14 @@
|
|
1
|
+
class String
|
2
|
+
# For converting "true" and "false" string values returned
|
3
|
+
# by Salesforce Bulk API in batch results to real booleans.
|
4
|
+
def to_b
|
5
|
+
if present?
|
6
|
+
if lstrip.rstrip.casecmp("true") == 0
|
7
|
+
return true
|
8
|
+
elsif lstrip.rstrip.casecmp("false") == 0
|
9
|
+
return false
|
10
|
+
end
|
11
|
+
end
|
12
|
+
self
|
13
|
+
end
|
14
|
+
end
|
@@ -0,0 +1,70 @@
|
|
1
|
+
module SalesforceBulk
|
2
|
+
class Job
|
3
|
+
|
4
|
+
attr_accessor :concurrency_mode
|
5
|
+
attr_accessor :external_id_field_name
|
6
|
+
attr_accessor :id
|
7
|
+
attr_accessor :operation
|
8
|
+
attr_accessor :sobject
|
9
|
+
attr_accessor :state
|
10
|
+
attr_accessor :created_by
|
11
|
+
attr_accessor :created_at
|
12
|
+
attr_accessor :completed_at
|
13
|
+
attr_accessor :content_type
|
14
|
+
attr_accessor :queued_batches
|
15
|
+
attr_accessor :in_progress_batches
|
16
|
+
attr_accessor :completed_batches
|
17
|
+
attr_accessor :failed_batches
|
18
|
+
attr_accessor :total_batches
|
19
|
+
attr_accessor :retries
|
20
|
+
attr_accessor :failed_records
|
21
|
+
attr_accessor :processed_records
|
22
|
+
attr_accessor :apex_processing_time
|
23
|
+
attr_accessor :api_active_processing_time
|
24
|
+
attr_accessor :total_processing_time
|
25
|
+
attr_accessor :api_version
|
26
|
+
|
27
|
+
def self.new_from_xml(data)
|
28
|
+
job = self.new
|
29
|
+
job.id = data['id']
|
30
|
+
job.operation = data['operation']
|
31
|
+
job.sobject = data['object']
|
32
|
+
job.created_by = data['createdById']
|
33
|
+
job.state = data['state']
|
34
|
+
job.created_at = DateTime.parse(data['createdDate'])
|
35
|
+
job.completed_at = DateTime.parse(data['systemModstamp'])
|
36
|
+
job.external_id_field_name = data['externalIdFieldName']
|
37
|
+
job.concurrency_mode = data['concurrencyMode']
|
38
|
+
job.content_type = data['contentType']
|
39
|
+
job.queued_batches = data['numberBatchesQueued'].to_i
|
40
|
+
job.in_progress_batches = data['numberBatchesInProgress'].to_i
|
41
|
+
job.completed_batches = data['numberBatchesCompleted'].to_i
|
42
|
+
job.failed_batches = data['numberBatchesFailed'].to_i
|
43
|
+
job.total_batches = data['totalBatches'].to_i
|
44
|
+
job.retries = data['retries'].to_i
|
45
|
+
job.processed_records = data['numberRecordsProcessed'].to_i
|
46
|
+
job.failed_records = data['numberRecordsFailed'].to_i
|
47
|
+
job.total_processing_time = data['totalProcessingTime'].to_i
|
48
|
+
job.api_active_processing_time = data['apiActiveProcessingTime'].to_i
|
49
|
+
job.apex_processing_time = data['apexProcessingTime'].to_i
|
50
|
+
job.api_version = data['apiVersion'].to_i
|
51
|
+
job
|
52
|
+
end
|
53
|
+
|
54
|
+
def aborted?
|
55
|
+
state? 'Aborted'
|
56
|
+
end
|
57
|
+
|
58
|
+
def closed?
|
59
|
+
state? 'Closed'
|
60
|
+
end
|
61
|
+
|
62
|
+
def open?
|
63
|
+
state? 'Open'
|
64
|
+
end
|
65
|
+
|
66
|
+
def state?(value)
|
67
|
+
self.state.present? && self.state.casecmp(value) == 0
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end
|
@@ -0,0 +1,48 @@
|
|
1
|
+
module SalesforceBulk
|
2
|
+
class QueryResultCollection < Array
|
3
|
+
|
4
|
+
attr_reader :client
|
5
|
+
attr_reader :batch_id
|
6
|
+
attr_reader :job_id
|
7
|
+
attr_reader :result_id
|
8
|
+
attr_reader :result_ids
|
9
|
+
|
10
|
+
def initialize(client, job_id, batch_id, result_id=nil, result_ids=[])
|
11
|
+
@client = client
|
12
|
+
@job_id = job_id
|
13
|
+
@batch_id = batch_id
|
14
|
+
@result_id = result_id
|
15
|
+
@result_ids = result_ids
|
16
|
+
@current_index = result_ids.index(result_id) || 0
|
17
|
+
end
|
18
|
+
|
19
|
+
def next?
|
20
|
+
@result_ids.present? && @current_index < @result_ids.length - 1
|
21
|
+
end
|
22
|
+
|
23
|
+
def next
|
24
|
+
if next?
|
25
|
+
replace(@client.query_result(job_id, batch_id, result_ids[@current_index + 1]))
|
26
|
+
@current_index += 1
|
27
|
+
@result_id = @result_ids[@current_index]
|
28
|
+
end
|
29
|
+
|
30
|
+
self
|
31
|
+
end
|
32
|
+
|
33
|
+
def previous?
|
34
|
+
@result_ids.present? && @current_index > 0
|
35
|
+
end
|
36
|
+
|
37
|
+
def previous
|
38
|
+
if previous?
|
39
|
+
replace(@client.query_result(job_id, batch_id, result_ids[@current_index - 1]))
|
40
|
+
@current_index -= 1
|
41
|
+
@result_id = @result_ids[@current_index]
|
42
|
+
end
|
43
|
+
|
44
|
+
self
|
45
|
+
end
|
46
|
+
|
47
|
+
end
|
48
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module SalesforceBulk
|
2
|
+
# An exception raised when any non successful request is made through the Salesforce Bulk API.
|
3
|
+
class SalesforceError < StandardError
|
4
|
+
# The Net::HTTPResponse instance from the API call.
|
5
|
+
attr_accessor :response
|
6
|
+
# The status code from the server response body.
|
7
|
+
attr_accessor :error_code
|
8
|
+
|
9
|
+
def initialize(response)
|
10
|
+
self.response = response
|
11
|
+
|
12
|
+
data = XmlSimple.xml_in(response.body, 'ForceArray' => false)
|
13
|
+
|
14
|
+
if data
|
15
|
+
# seems responses for CSV requests use a different XML return format
|
16
|
+
# (use invalid_error.xml for reference)
|
17
|
+
if !data['exceptionMessage'].nil?
|
18
|
+
message = data['exceptionMessage']
|
19
|
+
else
|
20
|
+
# SOAP error response
|
21
|
+
message = data['Body']['Fault']['faultstring']
|
22
|
+
end
|
23
|
+
|
24
|
+
self.error_code = response.code
|
25
|
+
end
|
26
|
+
|
27
|
+
super(message)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,28 @@
|
|
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 = "salesforcebulk"
|
7
|
+
s.version = SalesforceBulk::VERSION
|
8
|
+
s.platform = Gem::Platform::RUBY
|
9
|
+
s.authors = ["Javier Julio"]
|
10
|
+
s.email = ["jjfutbol@gmail.com"]
|
11
|
+
s.homepage = "https://github.com/javierjulio/salesforce_bulk"
|
12
|
+
s.summary = %q{Ruby support for the Salesforce Bulk API}
|
13
|
+
s.description = %q{This gem is a simple interface to the Salesforce Bulk API providing support for insert, update, upsert, delete, and query.}
|
14
|
+
|
15
|
+
s.files = `git ls-files`.split("\n")
|
16
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
17
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
18
|
+
s.require_paths = ["lib"]
|
19
|
+
|
20
|
+
s.add_dependency "active_support"
|
21
|
+
s.add_dependency "xml-simple"
|
22
|
+
|
23
|
+
s.add_development_dependency "mocha"
|
24
|
+
s.add_development_dependency "rake"
|
25
|
+
s.add_development_dependency "shoulda"
|
26
|
+
s.add_development_dependency "webmock"
|
27
|
+
|
28
|
+
end
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><batchInfo
|
2
|
+
xmlns="http://www.force.com/2009/06/asyncapi/dataload">
|
3
|
+
<id>751E00000004ZmUIAU</id>
|
4
|
+
<jobId>750E00000004NRfIAM</jobId>
|
5
|
+
<state>Queued</state>
|
6
|
+
<createdDate>2012-06-02T21:03:56.000Z</createdDate>
|
7
|
+
<systemModstamp>2012-06-02T21:03:56.000Z</systemModstamp>
|
8
|
+
<numberRecordsProcessed>0</numberRecordsProcessed>
|
9
|
+
<numberRecordsFailed>0</numberRecordsFailed>
|
10
|
+
<totalProcessingTime>0</totalProcessingTime>
|
11
|
+
<apiActiveProcessingTime>0</apiActiveProcessingTime>
|
12
|
+
<apexProcessingTime>0</apexProcessingTime>
|
13
|
+
</batchInfo>
|
@@ -0,0 +1,27 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><batchInfoList
|
2
|
+
xmlns="http://www.force.com/2009/06/asyncapi/dataload">
|
3
|
+
<batchInfo>
|
4
|
+
<id>751E00000004ZRbIAM</id>
|
5
|
+
<jobId>750E00000004N97IAE</jobId>
|
6
|
+
<state>Completed</state>
|
7
|
+
<createdDate>2012-05-31T01:22:47.000Z</createdDate>
|
8
|
+
<systemModstamp>2012-05-31T01:22:47.000Z</systemModstamp>
|
9
|
+
<numberRecordsProcessed>2</numberRecordsProcessed>
|
10
|
+
<numberRecordsFailed>0</numberRecordsFailed>
|
11
|
+
<totalProcessingTime>72</totalProcessingTime>
|
12
|
+
<apiActiveProcessingTime>28</apiActiveProcessingTime>
|
13
|
+
<apexProcessingTime>0</apexProcessingTime>
|
14
|
+
</batchInfo>
|
15
|
+
<batchInfo>
|
16
|
+
<id>751E00000004ZQsIAM</id>
|
17
|
+
<jobId>750E00000004N97IAE</jobId>
|
18
|
+
<state>Completed</state>
|
19
|
+
<createdDate>2012-05-31T01:23:20.000Z</createdDate>
|
20
|
+
<systemModstamp>2012-05-31T01:23:20.000Z</systemModstamp>
|
21
|
+
<numberRecordsProcessed>2</numberRecordsProcessed>
|
22
|
+
<numberRecordsFailed>0</numberRecordsFailed>
|
23
|
+
<totalProcessingTime>72</totalProcessingTime>
|
24
|
+
<apiActiveProcessingTime>28</apiActiveProcessingTime>
|
25
|
+
<apexProcessingTime>0</apexProcessingTime>
|
26
|
+
</batchInfo>
|
27
|
+
</batchInfoList>
|
@@ -0,0 +1,13 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><batchInfo
|
2
|
+
xmlns="http://www.force.com/2009/06/asyncapi/dataload">
|
3
|
+
<id>751E00000004ZRbIAM</id>
|
4
|
+
<jobId>750E00000004N97IAE</jobId>
|
5
|
+
<state>Completed</state>
|
6
|
+
<createdDate>2012-05-31T01:22:47.000Z</createdDate>
|
7
|
+
<systemModstamp>2012-05-31T01:22:47.000Z</systemModstamp>
|
8
|
+
<numberRecordsProcessed>2</numberRecordsProcessed>
|
9
|
+
<numberRecordsFailed>0</numberRecordsFailed>
|
10
|
+
<totalProcessingTime>72</totalProcessingTime>
|
11
|
+
<apiActiveProcessingTime>28</apiActiveProcessingTime>
|
12
|
+
<apexProcessingTime>0</apexProcessingTime>
|
13
|
+
</batchInfo>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload"><state>Aborted</state></jobInfo>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><jobInfo
|
2
|
+
xmlns="http://www.force.com/2009/06/asyncapi/dataload">
|
3
|
+
<id>750E00000004N1NIAU</id>
|
4
|
+
<operation>upsert</operation>
|
5
|
+
<object>VideoEvent__c</object>
|
6
|
+
<createdById>005E00000017spfIAA</createdById>
|
7
|
+
<createdDate>2012-05-30T00:16:04.000Z</createdDate>
|
8
|
+
<systemModstamp>2012-05-30T00:16:04.000Z</systemModstamp>
|
9
|
+
<state>Aborted</state>
|
10
|
+
<externalIdFieldName>Id__c</externalIdFieldName>
|
11
|
+
<concurrencyMode>Parallel</concurrencyMode>
|
12
|
+
<contentType>CSV</contentType>
|
13
|
+
<numberBatchesQueued>0</numberBatchesQueued>
|
14
|
+
<numberBatchesInProgress>0</numberBatchesInProgress>
|
15
|
+
<numberBatchesCompleted>0</numberBatchesCompleted>
|
16
|
+
<numberBatchesFailed>0</numberBatchesFailed>
|
17
|
+
<numberBatchesTotal>0</numberBatchesTotal>
|
18
|
+
<numberRecordsProcessed>0</numberRecordsProcessed>
|
19
|
+
<numberRetries>0</numberRetries>
|
20
|
+
<apiVersion>24.0</apiVersion>
|
21
|
+
<numberRecordsFailed>0</numberRecordsFailed>
|
22
|
+
<totalProcessingTime>0</totalProcessingTime>
|
23
|
+
<apiActiveProcessingTime>0</apiActiveProcessingTime>
|
24
|
+
<apexProcessingTime>0</apexProcessingTime>
|
25
|
+
</jobInfo>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload"><state>Closed</state></jobInfo>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><jobInfo
|
2
|
+
xmlns="http://www.force.com/2009/06/asyncapi/dataload">
|
3
|
+
<id>750E00000004MzbIAE</id>
|
4
|
+
<operation>upsert</operation>
|
5
|
+
<object>VideoEvent__c</object>
|
6
|
+
<createdById>005E00000017spfIAA</createdById>
|
7
|
+
<createdDate>2012-05-29T23:51:53.000Z</createdDate>
|
8
|
+
<systemModstamp>2012-05-29T23:51:53.000Z</systemModstamp>
|
9
|
+
<state>Closed</state>
|
10
|
+
<externalIdFieldName>Id__c</externalIdFieldName>
|
11
|
+
<concurrencyMode>Parallel</concurrencyMode>
|
12
|
+
<contentType>CSV</contentType>
|
13
|
+
<numberBatchesQueued>0</numberBatchesQueued>
|
14
|
+
<numberBatchesInProgress>0</numberBatchesInProgress>
|
15
|
+
<numberBatchesCompleted>0</numberBatchesCompleted>
|
16
|
+
<numberBatchesFailed>0</numberBatchesFailed>
|
17
|
+
<numberBatchesTotal>0</numberBatchesTotal>
|
18
|
+
<numberRecordsProcessed>0</numberRecordsProcessed>
|
19
|
+
<numberRetries>0</numberRetries>
|
20
|
+
<apiVersion>24.0</apiVersion>
|
21
|
+
<numberRecordsFailed>0</numberRecordsFailed>
|
22
|
+
<totalProcessingTime>0</totalProcessingTime>
|
23
|
+
<apiActiveProcessingTime>0</apiActiveProcessingTime>
|
24
|
+
<apexProcessingTime>0</apexProcessingTime>
|
25
|
+
</jobInfo>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload"><operation>upsert</operation><object>VideoEvent__c</object><externalIdFieldName>Id__c</externalIdFieldName><contentType>CSV</contentType></jobInfo>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?>
|
2
|
+
<jobInfo xmlns="http://www.force.com/2009/06/asyncapi/dataload">
|
3
|
+
<id>750E00000004MzbIAE</id>
|
4
|
+
<operation>upsert</operation>
|
5
|
+
<object>VideoEvent__c</object>
|
6
|
+
<createdById>005E00000017spfIAA</createdById>
|
7
|
+
<createdDate>2012-05-29T21:50:47.000Z</createdDate>
|
8
|
+
<systemModstamp>2012-05-29T21:50:47.000Z</systemModstamp>
|
9
|
+
<state>Open</state>
|
10
|
+
<externalIdFieldName>Id__c</externalIdFieldName>
|
11
|
+
<concurrencyMode>Parallel</concurrencyMode>
|
12
|
+
<contentType>CSV</contentType>
|
13
|
+
<numberBatchesQueued>0</numberBatchesQueued>
|
14
|
+
<numberBatchesInProgress>0</numberBatchesInProgress>
|
15
|
+
<numberBatchesCompleted>0</numberBatchesCompleted>
|
16
|
+
<numberBatchesFailed>0</numberBatchesFailed>
|
17
|
+
<numberBatchesTotal>0</numberBatchesTotal>
|
18
|
+
<numberRecordsProcessed>0</numberRecordsProcessed>
|
19
|
+
<numberRetries>0</numberRetries>
|
20
|
+
<apiVersion>24.0</apiVersion>
|
21
|
+
<numberRecordsFailed>0</numberRecordsFailed>
|
22
|
+
<totalProcessingTime>0</totalProcessingTime>
|
23
|
+
<apiActiveProcessingTime>0</apiActiveProcessingTime>
|
24
|
+
<apexProcessingTime>0</apexProcessingTime>
|
25
|
+
</jobInfo>
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><jobInfo
|
2
|
+
xmlns="http://www.force.com/2009/06/asyncapi/dataload">
|
3
|
+
<id>750E00000004N1mIAE</id>
|
4
|
+
<operation>upsert</operation>
|
5
|
+
<object>VideoEvent__c</object>
|
6
|
+
<createdById>005E00000017spfIAA</createdById>
|
7
|
+
<createdDate>2012-05-30T04:08:30.000Z</createdDate>
|
8
|
+
<systemModstamp>2012-05-30T04:08:30.000Z</systemModstamp>
|
9
|
+
<state>Open</state>
|
10
|
+
<externalIdFieldName>Id__c</externalIdFieldName>
|
11
|
+
<concurrencyMode>Parallel</concurrencyMode>
|
12
|
+
<contentType>CSV</contentType>
|
13
|
+
<numberBatchesQueued>0</numberBatchesQueued>
|
14
|
+
<numberBatchesInProgress>0</numberBatchesInProgress>
|
15
|
+
<numberBatchesCompleted>0</numberBatchesCompleted>
|
16
|
+
<numberBatchesFailed>0</numberBatchesFailed>
|
17
|
+
<numberBatchesTotal>0</numberBatchesTotal>
|
18
|
+
<numberRecordsProcessed>0</numberRecordsProcessed>
|
19
|
+
<numberRetries>0</numberRetries>
|
20
|
+
<apiVersion>24.0</apiVersion>
|
21
|
+
<numberRecordsFailed>0</numberRecordsFailed>
|
22
|
+
<totalProcessingTime>0</totalProcessingTime>
|
23
|
+
<apiActiveProcessingTime>0</apiActiveProcessingTime>
|
24
|
+
<apexProcessingTime>0</apexProcessingTime>
|
25
|
+
</jobInfo>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:sf="urn:fault.partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"><soapenv:Body><soapenv:Fault><faultcode>sf:INVALID_LOGIN</faultcode><faultstring>INVALID_LOGIN: Invalid username, password, security token; or user locked out.</faultstring><detail><sf:LoginFault xsi:type="sf:LoginFault"><sf:exceptionCode>INVALID_LOGIN</sf:exceptionCode><sf:exceptionMessage>Invalid username, password, security token; or user locked out.</sf:exceptionMessage></sf:LoginFault></detail></soapenv:Fault></soapenv:Body></soapenv:Envelope>
|
@@ -0,0 +1 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?><env:Envelope xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:env="http://schemas.xmlsoap.org/soap/envelope/"><env:Body><n1:login xmlns:n1="urn:partner.soap.sforce.com"><n1:username>MyUsername</n1:username><n1:password>MyPasswordMySecurityToken</n1:password></n1:login></env:Body></env:Envelope>
|
@@ -0,0 +1,39 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns="urn:partner.soap.sforce.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
|
3
|
+
<soapenv:Body>
|
4
|
+
<loginResponse>
|
5
|
+
<result>
|
6
|
+
<metadataServerUrl>https://na9-api.salesforce.com/services/Soap/m/24.0/00DE0000000YSKp</metadataServerUrl>
|
7
|
+
<passwordExpired>false</passwordExpired>
|
8
|
+
<sandbox>false</sandbox>
|
9
|
+
<serverUrl>https://na9-api.salesforce.com/services/Soap/u/24.0/00DE0000000YSKp</serverUrl>
|
10
|
+
<sessionId>00DE0000000YSKp!AQ4AQNQhDKLMORZx2NwZppuKfure.ChCmdI3S35PPxpNA5MHb3ZVxhYd5STM3euVJTI5.39s.jOBT.3mKdZ3BWFDdIrddS8O</sessionId>
|
11
|
+
<userId>005E00000017spfIAA</userId>
|
12
|
+
<userInfo>
|
13
|
+
<accessibilityMode>false</accessibilityMode>
|
14
|
+
<currencySymbol>$</currencySymbol>
|
15
|
+
<orgAttachmentFileSizeLimit>5242880</orgAttachmentFileSizeLimit>
|
16
|
+
<orgDefaultCurrencyIsoCode>USD</orgDefaultCurrencyIsoCode>
|
17
|
+
<orgDisallowHtmlAttachments>false</orgDisallowHtmlAttachments>
|
18
|
+
<orgHasPersonAccounts>false</orgHasPersonAccounts>
|
19
|
+
<organizationId>00DE0000000YSKpMAO</organizationId>
|
20
|
+
<organizationMultiCurrency>false</organizationMultiCurrency>
|
21
|
+
<organizationName>Gmail</organizationName>
|
22
|
+
<profileId>00eE0000000oANhIAM</profileId>
|
23
|
+
<roleId xsi:nil="true" />
|
24
|
+
<sessionSecondsValid>7200</sessionSecondsValid>
|
25
|
+
<userDefaultCurrencyIsoCode xsi:nil="true" />
|
26
|
+
<userEmail>jjfutbol@gmail.com</userEmail>
|
27
|
+
<userFullName>Javier Julio</userFullName>
|
28
|
+
<userId>005E00000017spfIAA</userId>
|
29
|
+
<userLanguage>en_US</userLanguage>
|
30
|
+
<userLocale>en_US</userLocale>
|
31
|
+
<userName>jjfutbol@gmail.com</userName>
|
32
|
+
<userTimeZone>America/Panama</userTimeZone>
|
33
|
+
<userType>Standard</userType>
|
34
|
+
<userUiSkin>Theme3</userUiSkin>
|
35
|
+
</userInfo>
|
36
|
+
</result>
|
37
|
+
</loginResponse>
|
38
|
+
</soapenv:Body>
|
39
|
+
</soapenv:Envelope>
|