activesalesforce 0.3.3 → 0.3.4

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/lib/asf_adapter.rb CHANGED
@@ -17,14 +17,15 @@
17
17
 
18
18
  require 'rubygems'
19
19
  require_gem 'rails', ">= 1.0.0"
20
-
21
- require 'thread'
20
+
21
+ require 'thread'
22
22
  require 'benchmark'
23
23
 
24
24
  require File.dirname(__FILE__) + '/rforce'
25
25
  require File.dirname(__FILE__) + '/column_definition'
26
26
  require File.dirname(__FILE__) + '/relationship_definition'
27
27
  require File.dirname(__FILE__) + '/boxcar_command'
28
+ require File.dirname(__FILE__) + '/entity_definition'
28
29
 
29
30
  class ResultArray < Array
30
31
  attr_reader :actual_size
@@ -42,8 +43,11 @@ module ActiveRecord
42
43
  def self.activesalesforce_connection(config) # :nodoc:
43
44
  logger.debug("\nUsing ActiveSalesforce connection\n")
44
45
 
46
+ # Default to production system using 7.0 API
45
47
  url = config[:url]
46
- sid = config[:sid]
48
+ url = "https://www.salesforce.com/services/Soap/u/7.0" unless url
49
+
50
+ sid = config[:sid]
47
51
  binding = config[:binding] if config[:binding]
48
52
 
49
53
  if binding
@@ -64,9 +68,6 @@ module ActiveRecord
64
68
 
65
69
  ConnectionAdapters::SalesforceAdapter.new(binding, logger, [url, sid], config)
66
70
  else
67
- # Default to production system using 7.0 API
68
- url = "https://www.salesforce.com/services/Soap/u/7.0" unless url
69
-
70
71
  # Check to insure that the second to last path component is a 'u' for Partner API
71
72
  raise ConnectionAdapters::SalesforceError.new(logger, "Invalid salesforce server url '#{url}', must be a valid Parter API URL") unless url.match(/\/u\//i)
72
73
 
@@ -109,34 +110,9 @@ module ActiveRecord
109
110
 
110
111
 
111
112
  class SalesforceAdapter < AbstractAdapter
112
- MAX_BOXCAR_SIZE = 200
113
-
114
- class EntityDefinition
115
- attr_reader :name, :columns, :column_name_to_column, :api_name_to_column, :relationships
116
-
117
- def custom?
118
- @custom
119
- end
120
-
121
- def api_name
122
- @custom ? name + "__c" : name
123
- end
124
-
125
- def initialize(name, columns, relationships, custom)
126
- @name = name
127
- @columns = columns
128
- @relationships = relationships
129
- @custom = custom
130
-
131
- @column_name_to_column = {}
132
- @columns.each { |column| @column_name_to_column[column.name] = column }
133
-
134
- @api_name_to_column = {}
135
- @columns.each { |column| @api_name_to_column[column.api_name] = column }
136
- end
137
- end
138
-
139
113
  include StringHelper
114
+
115
+ MAX_BOXCAR_SIZE = 200
140
116
 
141
117
  attr_accessor :batch_size
142
118
  attr_reader :entity_def_map
@@ -524,7 +500,7 @@ module ActiveRecord
524
500
  end
525
501
  end
526
502
 
527
- entity_def = EntityDefinition.new(entity_name, cached_columns, cached_relationships, custom)
503
+ entity_def = ActiveSalesforce::EntityDefinition.new(self, entity_name, cached_columns, cached_relationships, custom)
528
504
  @entity_def_map[entity_name] = entity_def
529
505
 
530
506
  configure_active_record entity_def
@@ -0,0 +1,60 @@
1
+ =begin
2
+ ActiveSalesforce
3
+ Copyright 2006 Doug Chasman
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ =end
17
+
18
+ require 'rubygems'
19
+ require_gem 'rails', ">= 1.0.0"
20
+
21
+ require 'pp'
22
+
23
+
24
+ module ActiveSalesforce
25
+ class EntityDefinition
26
+ attr_reader :name, :columns, :column_name_to_column, :api_name_to_column, :relationships
27
+
28
+ def initialize(connection, name, columns, relationships, custom)
29
+ @connection = connection
30
+ @name = name
31
+ @columns = columns
32
+ @relationships = relationships
33
+ @custom = custom
34
+
35
+ @column_name_to_column = {}
36
+ @columns.each { |column| @column_name_to_column[column.name] = column }
37
+
38
+ @api_name_to_column = {}
39
+ @columns.each { |column| @api_name_to_column[column.api_name] = column }
40
+ end
41
+
42
+ def custom?
43
+ @custom
44
+ end
45
+
46
+ def api_name
47
+ @custom ? name + "__c" : name
48
+ end
49
+
50
+ def layouts
51
+ return @layouts if @layouts
52
+
53
+ # Lazy load Layout information
54
+ response = @connection.binding.describeLayout(:sObjectType => api_name)
55
+ @layouts = @connection.get_result(response, :describeLayout)
56
+ end
57
+
58
+ end
59
+
60
+ end
@@ -0,0 +1,108 @@
1
+ =begin
2
+ ActiveSalesforce
3
+ Copyright 2006 Doug Chasman
4
+
5
+ Licensed under the Apache License, Version 2.0 (the "License");
6
+ you may not use this file except in compliance with the License.
7
+ You may obtain a copy of the License at
8
+
9
+ http://www.apache.org/licenses/LICENSE-2.0
10
+
11
+ Unless required by applicable law or agreed to in writing, software
12
+ distributed under the License is distributed on an "AS IS" BASIS,
13
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ See the License for the specific language governing permissions and
15
+ limitations under the License.
16
+ =end
17
+
18
+ require 'rubygems'
19
+
20
+ #require_gem 'activesalesforce', '>= 0.2.6'
21
+ require 'activesalesforce'
22
+
23
+ require 'recorded_test_case'
24
+ require 'pp'
25
+
26
+
27
+ class Contact < ActiveRecord::Base
28
+ end
29
+
30
+ class Department < ActiveRecord::Base
31
+ end
32
+
33
+
34
+ module Asf
35
+ module UnitTests
36
+
37
+ class AsfScaffoldGeneratorTest < Test::Unit::TestCase
38
+ include RecordedTestCase
39
+
40
+ attr_reader :contact
41
+
42
+ def initialize(test_method_name)
43
+ super(test_method_name)
44
+
45
+ #force_recording :test_describe_layout
46
+ end
47
+
48
+ def setup
49
+ puts "\nStarting test '#{self.class.name.gsub('::', '')}.#{method_name}'"
50
+
51
+ super
52
+ end
53
+
54
+ def teardown
55
+ super
56
+ end
57
+
58
+
59
+ def test_describe_layout
60
+ entity_def = Contact.connection.get_entity_def("Contact")
61
+
62
+ layouts = entity_def.layouts
63
+
64
+ puts "<table>"
65
+ layouts[:layouts][:detailLayoutSections].each do |section|
66
+ rows = section[:layoutRows]
67
+ rows = [ rows ] unless rows.is_a? Array
68
+
69
+ rows.each do | row |
70
+ puts " <tr>"
71
+
72
+ items = row[:layoutItems]
73
+ items = [ items ] unless items.is_a? Array
74
+
75
+ items.each do | item |
76
+ puts " <td>#{item[:label]}</td>"
77
+
78
+ components = item[:layoutComponents]
79
+
80
+ components = [ components ] unless components.is_a? Array
81
+
82
+ puts " <td>"
83
+ components.each do |component|
84
+ next if component.nil?
85
+
86
+ if component[:type] == "Field"
87
+ field = component[:value]
88
+ column = entity_def.api_name_to_column[field]
89
+
90
+ puts "@contact.#{column.name} "
91
+ end
92
+ end
93
+ puts " </td>"
94
+
95
+ end
96
+
97
+ puts " </tr>"
98
+ end
99
+
100
+ end
101
+
102
+ puts "</table>"
103
+ end
104
+
105
+ end
106
+
107
+ end
108
+ end
@@ -0,0 +1,1789 @@
1
+ ---
2
+ describeLayout(sObjectType:Contact): !ruby/object:RForce::SoapResponse
3
+ parsed:
4
+ :describeLayoutResponse:
5
+ :result:
6
+ :layouts:
7
+ :detailLayoutSections:
8
+ - :rows: "11"
9
+ :useCollapsibleSection: "false"
10
+ :useHeading: "false"
11
+ :heading: Contact Information
12
+ :columns: "2"
13
+ :layoutRows:
14
+ - :layoutItems:
15
+ - :required: "false"
16
+ :label: Contact Owner
17
+ :editable: "false"
18
+ :layoutComponents:
19
+ :type: Field
20
+ :value: OwnerId
21
+ :tabOrder: "1"
22
+ :placeholder: "false"
23
+ - :required: "false"
24
+ :label: Phone
25
+ :editable: "false"
26
+ :layoutComponents:
27
+ :type: Field
28
+ :value: Phone
29
+ :tabOrder: "16"
30
+ :placeholder: "false"
31
+ :numItems: "2"
32
+ - :layoutItems:
33
+ - :required: "false"
34
+ :label: Name
35
+ :editable: "false"
36
+ :layoutComponents:
37
+ - :type: Field
38
+ :value: Salutation
39
+ :tabOrder: "2"
40
+ - :type: Separator
41
+ :value: " "
42
+ :tabOrder: "3"
43
+ - :type: Field
44
+ :value: FirstName
45
+ :tabOrder: "4"
46
+ - :type: Separator
47
+ :value: " "
48
+ :tabOrder: "5"
49
+ - :type: Field
50
+ :value: LastName
51
+ :tabOrder: "6"
52
+ :placeholder: "false"
53
+ - :required: "false"
54
+ :label: Home Phone
55
+ :editable: "false"
56
+ :layoutComponents:
57
+ :type: Field
58
+ :value: HomePhone
59
+ :tabOrder: "17"
60
+ :placeholder: "false"
61
+ :numItems: "2"
62
+ - :layoutItems:
63
+ - :required: "false"
64
+ :label: Account
65
+ :editable: "false"
66
+ :layoutComponents:
67
+ :type: Field
68
+ :value: AccountId
69
+ :tabOrder: "7"
70
+ :placeholder: "false"
71
+ - :required: "false"
72
+ :label: Mobile
73
+ :editable: "false"
74
+ :layoutComponents:
75
+ :type: Field
76
+ :value: MobilePhone
77
+ :tabOrder: "18"
78
+ :placeholder: "false"
79
+ :numItems: "2"
80
+ - :layoutItems:
81
+ - :required: "false"
82
+ :label: Title
83
+ :editable: "false"
84
+ :layoutComponents:
85
+ :type: Field
86
+ :value: Title
87
+ :tabOrder: "8"
88
+ :placeholder: "false"
89
+ - :required: "false"
90
+ :label: Other Phone
91
+ :editable: "false"
92
+ :layoutComponents:
93
+ :type: Field
94
+ :value: OtherPhone
95
+ :tabOrder: "19"
96
+ :placeholder: "false"
97
+ :numItems: "2"
98
+ - :layoutItems:
99
+ - :required: "false"
100
+ :label: Department
101
+ :editable: "false"
102
+ :layoutComponents:
103
+ :type: Field
104
+ :value: Department
105
+ :tabOrder: "9"
106
+ :placeholder: "false"
107
+ - :required: "false"
108
+ :label: Fax
109
+ :editable: "false"
110
+ :layoutComponents:
111
+ :type: Field
112
+ :value: Fax
113
+ :tabOrder: "20"
114
+ :placeholder: "false"
115
+ :numItems: "2"
116
+ - :layoutItems:
117
+ - :required: "false"
118
+ :label: Birthdate
119
+ :editable: "false"
120
+ :layoutComponents:
121
+ :type: Field
122
+ :value: Birthdate
123
+ :tabOrder: "10"
124
+ :placeholder: "false"
125
+ - :required: "false"
126
+ :label: Email
127
+ :editable: "false"
128
+ :layoutComponents:
129
+ :type: Field
130
+ :value: Email
131
+ :tabOrder: "21"
132
+ :placeholder: "false"
133
+ :numItems: "2"
134
+ - :layoutItems:
135
+ - :required: "false"
136
+ :label: Reports To
137
+ :editable: "false"
138
+ :layoutComponents:
139
+ :type: Field
140
+ :value: ReportsToId
141
+ :tabOrder: "11"
142
+ :placeholder: "false"
143
+ - :required: "false"
144
+ :label: Assistant
145
+ :editable: "false"
146
+ :layoutComponents:
147
+ :type: Field
148
+ :value: AssistantName
149
+ :tabOrder: "22"
150
+ :placeholder: "false"
151
+ :numItems: "2"
152
+ - :layoutItems:
153
+ - :required: "false"
154
+ :label: Lead Source
155
+ :editable: "false"
156
+ :layoutComponents:
157
+ :type: Field
158
+ :value: LeadSource
159
+ :tabOrder: "12"
160
+ :placeholder: "false"
161
+ - :required: "false"
162
+ :label: Asst. Phone
163
+ :editable: "false"
164
+ :layoutComponents:
165
+ :type: Field
166
+ :value: AssistantPhone
167
+ :tabOrder: "23"
168
+ :placeholder: "false"
169
+ :numItems: "2"
170
+ - :layoutItems:
171
+ - :required: "false"
172
+ :label: f1
173
+ :editable: "false"
174
+ :layoutComponents:
175
+ :type: Field
176
+ :value: f1__c
177
+ :tabOrder: "13"
178
+ :placeholder: "false"
179
+ - :required: "false"
180
+ :label:
181
+ :editable: "false"
182
+ :placeholder: "true"
183
+ :numItems: "2"
184
+ - :layoutItems:
185
+ - :required: "false"
186
+ :label: f2
187
+ :editable: "false"
188
+ :layoutComponents:
189
+ :type: Field
190
+ :value: f2__c
191
+ :tabOrder: "14"
192
+ :placeholder: "false"
193
+ - :required: "false"
194
+ :label:
195
+ :editable: "false"
196
+ :placeholder: "true"
197
+ :numItems: "2"
198
+ - :layoutItems:
199
+ - :required: "false"
200
+ :label: CustomUserRel
201
+ :editable: "false"
202
+ :layoutComponents:
203
+ :type: Field
204
+ :value: CustomUserRel__c
205
+ :tabOrder: "15"
206
+ :placeholder: "false"
207
+ - :required: "false"
208
+ :label:
209
+ :editable: "false"
210
+ :placeholder: "true"
211
+ :numItems: "2"
212
+ - :rows: "1"
213
+ :useCollapsibleSection: "false"
214
+ :useHeading: "false"
215
+ :heading: Address Information
216
+ :columns: "2"
217
+ :layoutRows:
218
+ :layoutItems:
219
+ - :required: "false"
220
+ :label: Mailing Address
221
+ :editable: "false"
222
+ :layoutComponents:
223
+ - :type: Field
224
+ :value: MailingStreet
225
+ :tabOrder: "43"
226
+ - :type: Separator
227
+ :value: |
228
+
229
+
230
+ :tabOrder: "44"
231
+ - :type: Field
232
+ :value: MailingCity
233
+ :tabOrder: "45"
234
+ - :type: Separator
235
+ :value: ","
236
+ :tabOrder: "46"
237
+ - :type: Separator
238
+ :value: " "
239
+ :tabOrder: "47"
240
+ - :type: Field
241
+ :value: MailingState
242
+ :tabOrder: "48"
243
+ - :type: Separator
244
+ :value: " "
245
+ :tabOrder: "49"
246
+ - :type: Field
247
+ :value: MailingPostalCode
248
+ :tabOrder: "50"
249
+ - :type: Separator
250
+ :value: |
251
+
252
+
253
+ :tabOrder: "51"
254
+ - :type: Field
255
+ :value: MailingCountry
256
+ :tabOrder: "52"
257
+ :placeholder: "false"
258
+ - :required: "false"
259
+ :label: Other Address
260
+ :editable: "false"
261
+ :layoutComponents:
262
+ - :type: Field
263
+ :value: OtherStreet
264
+ :tabOrder: "53"
265
+ - :type: Separator
266
+ :value: |
267
+
268
+
269
+ :tabOrder: "54"
270
+ - :type: Field
271
+ :value: OtherCity
272
+ :tabOrder: "55"
273
+ - :type: Separator
274
+ :value: ","
275
+ :tabOrder: "56"
276
+ - :type: Separator
277
+ :value: " "
278
+ :tabOrder: "57"
279
+ - :type: Field
280
+ :value: OtherState
281
+ :tabOrder: "58"
282
+ - :type: Separator
283
+ :value: " "
284
+ :tabOrder: "59"
285
+ - :type: Field
286
+ :value: OtherPostalCode
287
+ :tabOrder: "60"
288
+ - :type: Separator
289
+ :value: |
290
+
291
+
292
+ :tabOrder: "61"
293
+ - :type: Field
294
+ :value: OtherCountry
295
+ :tabOrder: "62"
296
+ :placeholder: "false"
297
+ :numItems: "2"
298
+ - :rows: "1"
299
+ :useCollapsibleSection: "false"
300
+ :useHeading: "false"
301
+ :heading: Additional Information
302
+ :columns: "2"
303
+ :layoutRows:
304
+ :layoutItems:
305
+ - :required: "false"
306
+ :label: Languages
307
+ :editable: "false"
308
+ :layoutComponents:
309
+ :type: Field
310
+ :value: Languages__c
311
+ :tabOrder: "73"
312
+ :placeholder: "false"
313
+ - :required: "false"
314
+ :label: Level
315
+ :editable: "false"
316
+ :layoutComponents:
317
+ :type: Field
318
+ :value: Level__c
319
+ :tabOrder: "74"
320
+ :placeholder: "false"
321
+ :numItems: "2"
322
+ - :rows: "1"
323
+ :useCollapsibleSection: "false"
324
+ :useHeading: "false"
325
+ :heading: System Information
326
+ :columns: "2"
327
+ :layoutRows:
328
+ :layoutItems:
329
+ - :required: "false"
330
+ :label: Created By
331
+ :editable: "false"
332
+ :layoutComponents:
333
+ - :type: Field
334
+ :value: CreatedById
335
+ :tabOrder: "77"
336
+ - :type: Separator
337
+ :value: ","
338
+ :tabOrder: "78"
339
+ - :type: Field
340
+ :value: CreatedDate
341
+ :tabOrder: "79"
342
+ :placeholder: "false"
343
+ - :required: "false"
344
+ :label: Last Modified By
345
+ :editable: "false"
346
+ :layoutComponents:
347
+ - :type: Field
348
+ :value: LastModifiedById
349
+ :tabOrder: "80"
350
+ - :type: Separator
351
+ :value: ","
352
+ :tabOrder: "81"
353
+ - :type: Field
354
+ :value: LastModifiedDate
355
+ :tabOrder: "82"
356
+ :placeholder: "false"
357
+ :numItems: "2"
358
+ - :rows: "1"
359
+ :useCollapsibleSection: "false"
360
+ :useHeading: "false"
361
+ :heading: Description Information
362
+ :columns: "1"
363
+ :layoutRows:
364
+ :layoutItems:
365
+ :required: "false"
366
+ :label: Description
367
+ :editable: "false"
368
+ :layoutComponents:
369
+ :type: Field
370
+ :value: Description
371
+ :tabOrder: "83"
372
+ :placeholder: "false"
373
+ :numItems: "1"
374
+ :editLayoutSections:
375
+ - :rows: "10"
376
+ :useCollapsibleSection: "false"
377
+ :useHeading: "true"
378
+ :heading: Contact Information
379
+ :columns: "2"
380
+ :layoutRows:
381
+ - :layoutItems:
382
+ - :required: "false"
383
+ :label: Contact Owner
384
+ :editable: "false"
385
+ :layoutComponents:
386
+ :type: Field
387
+ :value: OwnerId
388
+ :tabOrder: "24"
389
+ :placeholder: "false"
390
+ - :required: "false"
391
+ :label: Phone
392
+ :editable: "true"
393
+ :layoutComponents:
394
+ :type: Field
395
+ :value: Phone
396
+ :tabOrder: "35"
397
+ :placeholder: "false"
398
+ :numItems: "2"
399
+ - :layoutItems:
400
+ - :required: "false"
401
+ :label: First Name
402
+ :editable: "true"
403
+ :layoutComponents:
404
+ - :type: Field
405
+ :value: Salutation
406
+ :tabOrder: "25"
407
+ - :type: Field
408
+ :value: FirstName
409
+ :tabOrder: "26"
410
+ :placeholder: "false"
411
+ - :required: "false"
412
+ :label: Home Phone
413
+ :editable: "true"
414
+ :layoutComponents:
415
+ :type: Field
416
+ :value: HomePhone
417
+ :tabOrder: "36"
418
+ :placeholder: "false"
419
+ :numItems: "2"
420
+ - :layoutItems:
421
+ - :required: "true"
422
+ :label: Last Name
423
+ :editable: "true"
424
+ :layoutComponents:
425
+ :type: Field
426
+ :value: LastName
427
+ :tabOrder: "27"
428
+ :placeholder: "false"
429
+ - :required: "false"
430
+ :label: Mobile
431
+ :editable: "true"
432
+ :layoutComponents:
433
+ :type: Field
434
+ :value: MobilePhone
435
+ :tabOrder: "37"
436
+ :placeholder: "false"
437
+ :numItems: "2"
438
+ - :layoutItems:
439
+ - :required: "false"
440
+ :label: Account
441
+ :editable: "true"
442
+ :layoutComponents:
443
+ :type: Field
444
+ :value: AccountId
445
+ :tabOrder: "28"
446
+ :placeholder: "false"
447
+ - :required: "false"
448
+ :label: Other Phone
449
+ :editable: "true"
450
+ :layoutComponents:
451
+ :type: Field
452
+ :value: OtherPhone
453
+ :tabOrder: "38"
454
+ :placeholder: "false"
455
+ :numItems: "2"
456
+ - :layoutItems:
457
+ - :required: "false"
458
+ :label: Title
459
+ :editable: "true"
460
+ :layoutComponents:
461
+ :type: Field
462
+ :value: Title
463
+ :tabOrder: "29"
464
+ :placeholder: "false"
465
+ - :required: "false"
466
+ :label: Fax
467
+ :editable: "true"
468
+ :layoutComponents:
469
+ :type: Field
470
+ :value: Fax
471
+ :tabOrder: "39"
472
+ :placeholder: "false"
473
+ :numItems: "2"
474
+ - :layoutItems:
475
+ - :required: "false"
476
+ :label: Department
477
+ :editable: "true"
478
+ :layoutComponents:
479
+ :type: Field
480
+ :value: Department
481
+ :tabOrder: "30"
482
+ :placeholder: "false"
483
+ - :required: "false"
484
+ :label: Email
485
+ :editable: "true"
486
+ :layoutComponents:
487
+ :type: Field
488
+ :value: Email
489
+ :tabOrder: "40"
490
+ :placeholder: "false"
491
+ :numItems: "2"
492
+ - :layoutItems:
493
+ - :required: "false"
494
+ :label: Birthdate
495
+ :editable: "true"
496
+ :layoutComponents:
497
+ :type: Field
498
+ :value: Birthdate
499
+ :tabOrder: "31"
500
+ :placeholder: "false"
501
+ - :required: "false"
502
+ :label: Assistant
503
+ :editable: "true"
504
+ :layoutComponents:
505
+ :type: Field
506
+ :value: AssistantName
507
+ :tabOrder: "41"
508
+ :placeholder: "false"
509
+ :numItems: "2"
510
+ - :layoutItems:
511
+ - :required: "false"
512
+ :label: Reports To
513
+ :editable: "true"
514
+ :layoutComponents:
515
+ :type: Field
516
+ :value: ReportsToId
517
+ :tabOrder: "32"
518
+ :placeholder: "false"
519
+ - :required: "false"
520
+ :label: Asst. Phone
521
+ :editable: "true"
522
+ :layoutComponents:
523
+ :type: Field
524
+ :value: AssistantPhone
525
+ :tabOrder: "42"
526
+ :placeholder: "false"
527
+ :numItems: "2"
528
+ - :layoutItems:
529
+ - :required: "false"
530
+ :label: Lead Source
531
+ :editable: "true"
532
+ :layoutComponents:
533
+ :type: Field
534
+ :value: LeadSource
535
+ :tabOrder: "33"
536
+ :placeholder: "false"
537
+ - :required: "false"
538
+ :label:
539
+ :editable: "false"
540
+ :placeholder: "true"
541
+ :numItems: "2"
542
+ - :layoutItems:
543
+ - :required: "false"
544
+ :label: CustomUserRel
545
+ :editable: "true"
546
+ :layoutComponents:
547
+ :type: Field
548
+ :value: CustomUserRel__c
549
+ :tabOrder: "34"
550
+ :placeholder: "false"
551
+ - :required: "false"
552
+ :label:
553
+ :editable: "false"
554
+ :placeholder: "true"
555
+ :numItems: "2"
556
+ - :rows: "5"
557
+ :useCollapsibleSection: "false"
558
+ :useHeading: "true"
559
+ :heading: Address Information
560
+ :columns: "2"
561
+ :layoutRows:
562
+ - :layoutItems:
563
+ - :required: "false"
564
+ :label: Mailing Street
565
+ :editable: "true"
566
+ :layoutComponents:
567
+ :type: Field
568
+ :value: MailingStreet
569
+ :tabOrder: "63"
570
+ :placeholder: "false"
571
+ - :required: "false"
572
+ :label: Other Street
573
+ :editable: "true"
574
+ :layoutComponents:
575
+ :type: Field
576
+ :value: OtherStreet
577
+ :tabOrder: "68"
578
+ :placeholder: "false"
579
+ :numItems: "2"
580
+ - :layoutItems:
581
+ - :required: "false"
582
+ :label: Mailing City
583
+ :editable: "true"
584
+ :layoutComponents:
585
+ :type: Field
586
+ :value: MailingCity
587
+ :tabOrder: "64"
588
+ :placeholder: "false"
589
+ - :required: "false"
590
+ :label: Other City
591
+ :editable: "true"
592
+ :layoutComponents:
593
+ :type: Field
594
+ :value: OtherCity
595
+ :tabOrder: "69"
596
+ :placeholder: "false"
597
+ :numItems: "2"
598
+ - :layoutItems:
599
+ - :required: "false"
600
+ :label: Mailing State/Province
601
+ :editable: "true"
602
+ :layoutComponents:
603
+ :type: Field
604
+ :value: MailingState
605
+ :tabOrder: "65"
606
+ :placeholder: "false"
607
+ - :required: "false"
608
+ :label: Other State/Province
609
+ :editable: "true"
610
+ :layoutComponents:
611
+ :type: Field
612
+ :value: OtherState
613
+ :tabOrder: "70"
614
+ :placeholder: "false"
615
+ :numItems: "2"
616
+ - :layoutItems:
617
+ - :required: "false"
618
+ :label: Mailing Zip/Postal Code
619
+ :editable: "true"
620
+ :layoutComponents:
621
+ :type: Field
622
+ :value: MailingPostalCode
623
+ :tabOrder: "66"
624
+ :placeholder: "false"
625
+ - :required: "false"
626
+ :label: Other Zip/Postal Code
627
+ :editable: "true"
628
+ :layoutComponents:
629
+ :type: Field
630
+ :value: OtherPostalCode
631
+ :tabOrder: "71"
632
+ :placeholder: "false"
633
+ :numItems: "2"
634
+ - :layoutItems:
635
+ - :required: "false"
636
+ :label: Mailing Country
637
+ :editable: "true"
638
+ :layoutComponents:
639
+ :type: Field
640
+ :value: MailingCountry
641
+ :tabOrder: "67"
642
+ :placeholder: "false"
643
+ - :required: "false"
644
+ :label: Other Country
645
+ :editable: "true"
646
+ :layoutComponents:
647
+ :type: Field
648
+ :value: OtherCountry
649
+ :tabOrder: "72"
650
+ :placeholder: "false"
651
+ :numItems: "2"
652
+ - :rows: "1"
653
+ :useCollapsibleSection: "false"
654
+ :useHeading: "true"
655
+ :heading: Additional Information
656
+ :columns: "2"
657
+ :layoutRows:
658
+ :layoutItems:
659
+ - :required: "false"
660
+ :label: Languages
661
+ :editable: "true"
662
+ :layoutComponents:
663
+ :type: Field
664
+ :value: Languages__c
665
+ :tabOrder: "75"
666
+ :placeholder: "false"
667
+ - :required: "false"
668
+ :label: Level
669
+ :editable: "true"
670
+ :layoutComponents:
671
+ :type: Field
672
+ :value: Level__c
673
+ :tabOrder: "76"
674
+ :placeholder: "false"
675
+ :numItems: "2"
676
+ - :rows: "1"
677
+ :useCollapsibleSection: "false"
678
+ :useHeading: "true"
679
+ :heading: Description Information
680
+ :columns: "1"
681
+ :layoutRows:
682
+ :layoutItems:
683
+ :required: "false"
684
+ :label: Description
685
+ :editable: "true"
686
+ :layoutComponents:
687
+ :type: Field
688
+ :value: Description
689
+ :tabOrder: "84"
690
+ :placeholder: "false"
691
+ :numItems: "1"
692
+ :id: 00h30000000p1W0AAI
693
+ :recordTypeMappings:
694
+ - :recordTypeId: 012300000004pYzAAI
695
+ :available: "true"
696
+ :defaultRecordTypeMapping: "true"
697
+ :layoutId: 00h30000000p1W0AAI
698
+ :name: DUTCHRT
699
+ :picklistsForRecordType:
700
+ - :picklistValues:
701
+ - :label: Mr.
702
+ :value: Mr.
703
+ :defaultValue: "false"
704
+ :active: "true"
705
+ - :label: Ms.
706
+ :value: Ms.
707
+ :defaultValue: "false"
708
+ :active: "true"
709
+ - :label: Mrs.
710
+ :value: Mrs.
711
+ :defaultValue: "false"
712
+ :active: "true"
713
+ - :label: Dr.
714
+ :value: Dr.
715
+ :defaultValue: "false"
716
+ :active: "true"
717
+ - :label: Prof.
718
+ :value: Prof.
719
+ :defaultValue: "false"
720
+ :active: "true"
721
+ :picklistName: Salutation
722
+ - :picklistValues:
723
+ - :label: Web
724
+ :value: Web
725
+ :defaultValue: "false"
726
+ :active: "true"
727
+ - :label: Phone Inquiry
728
+ :value: Phone Inquiry
729
+ :defaultValue: "false"
730
+ :active: "true"
731
+ - :label: Partner Referral
732
+ :value: Partner Referral
733
+ :defaultValue: "false"
734
+ :active: "true"
735
+ - :label: Purchased List
736
+ :value: Purchased List
737
+ :defaultValue: "false"
738
+ :active: "true"
739
+ - :label: Other
740
+ :value: Other
741
+ :defaultValue: "false"
742
+ :active: "true"
743
+ :picklistName: LeadSource
744
+ - :picklistValues:
745
+ - :label: Primary
746
+ :value: Primary
747
+ :defaultValue: "false"
748
+ :active: "true"
749
+ - :label: Tertiary
750
+ :value: Tertiary
751
+ :defaultValue: "false"
752
+ :active: "true"
753
+ :picklistName: Level__c
754
+ - :recordTypeId:
755
+ :available: "true"
756
+ :defaultRecordTypeMapping: "false"
757
+ :layoutId: 00h30000000p1W0AAI
758
+ :name: Master
759
+ :picklistsForRecordType:
760
+ - :picklistValues:
761
+ - :label: Mr.
762
+ :value: Mr.
763
+ :defaultValue: "false"
764
+ :active: "true"
765
+ - :label: Ms.
766
+ :value: Ms.
767
+ :defaultValue: "false"
768
+ :active: "true"
769
+ - :label: Mrs.
770
+ :value: Mrs.
771
+ :defaultValue: "false"
772
+ :active: "true"
773
+ - :label: Dr.
774
+ :value: Dr.
775
+ :defaultValue: "false"
776
+ :active: "true"
777
+ - :label: Prof.
778
+ :value: Prof.
779
+ :defaultValue: "false"
780
+ :active: "true"
781
+ :picklistName: Salutation
782
+ - :picklistValues:
783
+ - :label: Web
784
+ :value: Web
785
+ :defaultValue: "false"
786
+ :active: "true"
787
+ - :label: Phone Inquiry
788
+ :value: Phone Inquiry
789
+ :defaultValue: "false"
790
+ :active: "true"
791
+ - :label: Partner Referral
792
+ :value: Partner Referral
793
+ :defaultValue: "false"
794
+ :active: "true"
795
+ - :label: Purchased List
796
+ :value: Purchased List
797
+ :defaultValue: "false"
798
+ :active: "true"
799
+ - :label: Other
800
+ :value: Other
801
+ :defaultValue: "false"
802
+ :active: "true"
803
+ :picklistName: LeadSource
804
+ - :picklistValues:
805
+ - :label: Primary
806
+ :value: Primary
807
+ :defaultValue: "false"
808
+ :active: "true"
809
+ - :label: Tertiary
810
+ :value: Tertiary
811
+ :defaultValue: "false"
812
+ :active: "true"
813
+ :picklistName: Level__c
814
+ describeSObject(sObjectType:Contact): !ruby/object:RForce::SoapResponse
815
+ parsed:
816
+ :describeSObjectResponse:
817
+ :result:
818
+ :searchable: "true"
819
+ :childRelationships:
820
+ - :relationshipName: AccountContactRoles
821
+ :cascadeDelete: "true"
822
+ :field: ContactId
823
+ :childSObject: AccountContactRole
824
+ - :relationshipName: Assets
825
+ :cascadeDelete: "false"
826
+ :field: ContactId
827
+ :childSObject: Asset
828
+ - :relationshipName: Attachments
829
+ :cascadeDelete: "false"
830
+ :field: ParentId
831
+ :childSObject: Attachment
832
+ - :relationshipName: CampaignMembers
833
+ :cascadeDelete: "true"
834
+ :field: ContactId
835
+ :childSObject: CampaignMember
836
+ - :relationshipName: Cases
837
+ :cascadeDelete: "false"
838
+ :field: ContactId
839
+ :childSObject: Case
840
+ - :cascadeDelete: "false"
841
+ :field: ReportsToId
842
+ :childSObject: Contact
843
+ - :cascadeDelete: "false"
844
+ :field: CustomerSignedId
845
+ :childSObject: Contract
846
+ - :relationshipName: ContractContactRoles
847
+ :cascadeDelete: "true"
848
+ :field: ContactId
849
+ :childSObject: ContractContactRole
850
+ - :relationshipName: Events
851
+ :cascadeDelete: "true"
852
+ :field: WhoId
853
+ :childSObject: Event
854
+ - :cascadeDelete: "true"
855
+ :field: AttendeeId
856
+ :childSObject: EventAttendee
857
+ - :cascadeDelete: "false"
858
+ :field: ConvertedContactId
859
+ :childSObject: Lead
860
+ - :relationshipName: Notes
861
+ :cascadeDelete: "true"
862
+ :field: ParentId
863
+ :childSObject: Note
864
+ - :relationshipName: OpportunityContactRoles
865
+ :cascadeDelete: "true"
866
+ :field: ContactId
867
+ :childSObject: OpportunityContactRole
868
+ - :cascadeDelete: "false"
869
+ :field: ContactId
870
+ :childSObject: SelfServiceUser
871
+ - :relationshipName: Tasks
872
+ :cascadeDelete: "true"
873
+ :field: WhoId
874
+ :childSObject: Task
875
+ :labelPlural: Contacts
876
+ :label: Contact
877
+ :undeletable: "false"
878
+ :fields:
879
+ - :nameField: "false"
880
+ :label: Contact ID
881
+ :byteLength: "18"
882
+ :restrictedPicklist: "false"
883
+ :precision: "0"
884
+ :length: "18"
885
+ :calculated: "false"
886
+ :type: id
887
+ :soapType: tns:ID
888
+ :scale: "0"
889
+ :nillable: "false"
890
+ :defaultedOnCreate: "true"
891
+ :name: Id
892
+ :custom: "false"
893
+ :createable: "false"
894
+ :updateable: "false"
895
+ :digits: "0"
896
+ :filterable: "true"
897
+ :autoNumber: "false"
898
+ - :nameField: "false"
899
+ :label: Account ID
900
+ :byteLength: "18"
901
+ :restrictedPicklist: "false"
902
+ :precision: "0"
903
+ :length: "18"
904
+ :calculated: "false"
905
+ :type: reference
906
+ :soapType: tns:ID
907
+ :scale: "0"
908
+ :nillable: "true"
909
+ :defaultedOnCreate: "false"
910
+ :name: AccountId
911
+ :custom: "false"
912
+ :createable: "true"
913
+ :updateable: "true"
914
+ :digits: "0"
915
+ :filterable: "true"
916
+ :referenceTo: Account
917
+ :autoNumber: "false"
918
+ - :nameField: "true"
919
+ :label: Last Name
920
+ :byteLength: "240"
921
+ :restrictedPicklist: "false"
922
+ :precision: "0"
923
+ :length: "80"
924
+ :calculated: "false"
925
+ :type: string
926
+ :soapType: xsd:string
927
+ :scale: "0"
928
+ :nillable: "false"
929
+ :defaultedOnCreate: "false"
930
+ :name: LastName
931
+ :custom: "false"
932
+ :createable: "true"
933
+ :updateable: "true"
934
+ :digits: "0"
935
+ :filterable: "true"
936
+ :autoNumber: "false"
937
+ - :nameField: "true"
938
+ :label: First Name
939
+ :byteLength: "120"
940
+ :restrictedPicklist: "false"
941
+ :precision: "0"
942
+ :length: "40"
943
+ :calculated: "false"
944
+ :type: string
945
+ :soapType: xsd:string
946
+ :scale: "0"
947
+ :nillable: "true"
948
+ :defaultedOnCreate: "false"
949
+ :name: FirstName
950
+ :custom: "false"
951
+ :createable: "true"
952
+ :updateable: "true"
953
+ :digits: "0"
954
+ :filterable: "true"
955
+ :autoNumber: "false"
956
+ - :nameField: "false"
957
+ :label: Salutation
958
+ :byteLength: "120"
959
+ :restrictedPicklist: "false"
960
+ :precision: "0"
961
+ :length: "40"
962
+ :calculated: "false"
963
+ :type: picklist
964
+ :soapType: xsd:string
965
+ :scale: "0"
966
+ :nillable: "true"
967
+ :defaultedOnCreate: "false"
968
+ :picklistValues:
969
+ - :label: Mr.
970
+ :value: Mr.
971
+ :defaultValue: "false"
972
+ :active: "true"
973
+ - :label: Ms.
974
+ :value: Ms.
975
+ :defaultValue: "false"
976
+ :active: "true"
977
+ - :label: Mrs.
978
+ :value: Mrs.
979
+ :defaultValue: "false"
980
+ :active: "true"
981
+ - :label: Dr.
982
+ :value: Dr.
983
+ :defaultValue: "false"
984
+ :active: "true"
985
+ - :label: Prof.
986
+ :value: Prof.
987
+ :defaultValue: "false"
988
+ :active: "true"
989
+ :name: Salutation
990
+ :custom: "false"
991
+ :createable: "true"
992
+ :updateable: "true"
993
+ :digits: "0"
994
+ :filterable: "true"
995
+ :autoNumber: "false"
996
+ - :nameField: "false"
997
+ :label: Record Type ID
998
+ :byteLength: "18"
999
+ :restrictedPicklist: "false"
1000
+ :precision: "0"
1001
+ :length: "18"
1002
+ :calculated: "false"
1003
+ :type: reference
1004
+ :soapType: tns:ID
1005
+ :scale: "0"
1006
+ :nillable: "true"
1007
+ :defaultedOnCreate: "false"
1008
+ :name: RecordTypeId
1009
+ :custom: "false"
1010
+ :createable: "true"
1011
+ :updateable: "true"
1012
+ :digits: "0"
1013
+ :filterable: "true"
1014
+ :referenceTo: RecordType
1015
+ :autoNumber: "false"
1016
+ - :nameField: "false"
1017
+ :label: Other Street
1018
+ :byteLength: "765"
1019
+ :restrictedPicklist: "false"
1020
+ :precision: "0"
1021
+ :length: "255"
1022
+ :calculated: "false"
1023
+ :type: textarea
1024
+ :soapType: xsd:string
1025
+ :scale: "0"
1026
+ :nillable: "true"
1027
+ :defaultedOnCreate: "false"
1028
+ :name: OtherStreet
1029
+ :custom: "false"
1030
+ :createable: "true"
1031
+ :updateable: "true"
1032
+ :digits: "0"
1033
+ :filterable: "true"
1034
+ :autoNumber: "false"
1035
+ - :nameField: "false"
1036
+ :label: Other City
1037
+ :byteLength: "120"
1038
+ :restrictedPicklist: "false"
1039
+ :precision: "0"
1040
+ :length: "40"
1041
+ :calculated: "false"
1042
+ :type: string
1043
+ :soapType: xsd:string
1044
+ :scale: "0"
1045
+ :nillable: "true"
1046
+ :defaultedOnCreate: "false"
1047
+ :name: OtherCity
1048
+ :custom: "false"
1049
+ :createable: "true"
1050
+ :updateable: "true"
1051
+ :digits: "0"
1052
+ :filterable: "true"
1053
+ :autoNumber: "false"
1054
+ - :nameField: "false"
1055
+ :label: Other State/Province
1056
+ :byteLength: "60"
1057
+ :restrictedPicklist: "false"
1058
+ :precision: "0"
1059
+ :length: "20"
1060
+ :calculated: "false"
1061
+ :type: string
1062
+ :soapType: xsd:string
1063
+ :scale: "0"
1064
+ :nillable: "true"
1065
+ :defaultedOnCreate: "false"
1066
+ :name: OtherState
1067
+ :custom: "false"
1068
+ :createable: "true"
1069
+ :updateable: "true"
1070
+ :digits: "0"
1071
+ :filterable: "true"
1072
+ :autoNumber: "false"
1073
+ - :nameField: "false"
1074
+ :label: Other Zip/Postal Code
1075
+ :byteLength: "60"
1076
+ :restrictedPicklist: "false"
1077
+ :precision: "0"
1078
+ :length: "20"
1079
+ :calculated: "false"
1080
+ :type: string
1081
+ :soapType: xsd:string
1082
+ :scale: "0"
1083
+ :nillable: "true"
1084
+ :defaultedOnCreate: "false"
1085
+ :name: OtherPostalCode
1086
+ :custom: "false"
1087
+ :createable: "true"
1088
+ :updateable: "true"
1089
+ :digits: "0"
1090
+ :filterable: "true"
1091
+ :autoNumber: "false"
1092
+ - :nameField: "false"
1093
+ :label: Other Country
1094
+ :byteLength: "120"
1095
+ :restrictedPicklist: "false"
1096
+ :precision: "0"
1097
+ :length: "40"
1098
+ :calculated: "false"
1099
+ :type: string
1100
+ :soapType: xsd:string
1101
+ :scale: "0"
1102
+ :nillable: "true"
1103
+ :defaultedOnCreate: "false"
1104
+ :name: OtherCountry
1105
+ :custom: "false"
1106
+ :createable: "true"
1107
+ :updateable: "true"
1108
+ :digits: "0"
1109
+ :filterable: "true"
1110
+ :autoNumber: "false"
1111
+ - :nameField: "false"
1112
+ :label: Mailing Street
1113
+ :byteLength: "765"
1114
+ :restrictedPicklist: "false"
1115
+ :precision: "0"
1116
+ :length: "255"
1117
+ :calculated: "false"
1118
+ :type: textarea
1119
+ :soapType: xsd:string
1120
+ :scale: "0"
1121
+ :nillable: "true"
1122
+ :defaultedOnCreate: "false"
1123
+ :name: MailingStreet
1124
+ :custom: "false"
1125
+ :createable: "true"
1126
+ :updateable: "true"
1127
+ :digits: "0"
1128
+ :filterable: "true"
1129
+ :autoNumber: "false"
1130
+ - :nameField: "false"
1131
+ :label: Mailing City
1132
+ :byteLength: "120"
1133
+ :restrictedPicklist: "false"
1134
+ :precision: "0"
1135
+ :length: "40"
1136
+ :calculated: "false"
1137
+ :type: string
1138
+ :soapType: xsd:string
1139
+ :scale: "0"
1140
+ :nillable: "true"
1141
+ :defaultedOnCreate: "false"
1142
+ :name: MailingCity
1143
+ :custom: "false"
1144
+ :createable: "true"
1145
+ :updateable: "true"
1146
+ :digits: "0"
1147
+ :filterable: "true"
1148
+ :autoNumber: "false"
1149
+ - :nameField: "false"
1150
+ :label: Mailing State/Province
1151
+ :byteLength: "60"
1152
+ :restrictedPicklist: "false"
1153
+ :precision: "0"
1154
+ :length: "20"
1155
+ :calculated: "false"
1156
+ :type: string
1157
+ :soapType: xsd:string
1158
+ :scale: "0"
1159
+ :nillable: "true"
1160
+ :defaultedOnCreate: "false"
1161
+ :name: MailingState
1162
+ :custom: "false"
1163
+ :createable: "true"
1164
+ :updateable: "true"
1165
+ :digits: "0"
1166
+ :filterable: "true"
1167
+ :autoNumber: "false"
1168
+ - :nameField: "false"
1169
+ :label: Mailing Zip/Postal Code
1170
+ :byteLength: "60"
1171
+ :restrictedPicklist: "false"
1172
+ :precision: "0"
1173
+ :length: "20"
1174
+ :calculated: "false"
1175
+ :type: string
1176
+ :soapType: xsd:string
1177
+ :scale: "0"
1178
+ :nillable: "true"
1179
+ :defaultedOnCreate: "false"
1180
+ :name: MailingPostalCode
1181
+ :custom: "false"
1182
+ :createable: "true"
1183
+ :updateable: "true"
1184
+ :digits: "0"
1185
+ :filterable: "true"
1186
+ :autoNumber: "false"
1187
+ - :nameField: "false"
1188
+ :label: Mailing Country
1189
+ :byteLength: "120"
1190
+ :restrictedPicklist: "false"
1191
+ :precision: "0"
1192
+ :length: "40"
1193
+ :calculated: "false"
1194
+ :type: string
1195
+ :soapType: xsd:string
1196
+ :scale: "0"
1197
+ :nillable: "true"
1198
+ :defaultedOnCreate: "false"
1199
+ :name: MailingCountry
1200
+ :custom: "false"
1201
+ :createable: "true"
1202
+ :updateable: "true"
1203
+ :digits: "0"
1204
+ :filterable: "true"
1205
+ :autoNumber: "false"
1206
+ - :nameField: "false"
1207
+ :label: Business Phone
1208
+ :byteLength: "120"
1209
+ :restrictedPicklist: "false"
1210
+ :precision: "0"
1211
+ :length: "40"
1212
+ :calculated: "false"
1213
+ :type: phone
1214
+ :soapType: xsd:string
1215
+ :scale: "0"
1216
+ :nillable: "true"
1217
+ :defaultedOnCreate: "false"
1218
+ :name: Phone
1219
+ :custom: "false"
1220
+ :createable: "true"
1221
+ :updateable: "true"
1222
+ :digits: "0"
1223
+ :filterable: "true"
1224
+ :autoNumber: "false"
1225
+ - :nameField: "false"
1226
+ :label: Business Fax
1227
+ :byteLength: "120"
1228
+ :restrictedPicklist: "false"
1229
+ :precision: "0"
1230
+ :length: "40"
1231
+ :calculated: "false"
1232
+ :type: phone
1233
+ :soapType: xsd:string
1234
+ :scale: "0"
1235
+ :nillable: "true"
1236
+ :defaultedOnCreate: "false"
1237
+ :name: Fax
1238
+ :custom: "false"
1239
+ :createable: "true"
1240
+ :updateable: "true"
1241
+ :digits: "0"
1242
+ :filterable: "true"
1243
+ :autoNumber: "false"
1244
+ - :nameField: "false"
1245
+ :label: Mobile Phone
1246
+ :byteLength: "120"
1247
+ :restrictedPicklist: "false"
1248
+ :precision: "0"
1249
+ :length: "40"
1250
+ :calculated: "false"
1251
+ :type: phone
1252
+ :soapType: xsd:string
1253
+ :scale: "0"
1254
+ :nillable: "true"
1255
+ :defaultedOnCreate: "false"
1256
+ :name: MobilePhone
1257
+ :custom: "false"
1258
+ :createable: "true"
1259
+ :updateable: "true"
1260
+ :digits: "0"
1261
+ :filterable: "true"
1262
+ :autoNumber: "false"
1263
+ - :nameField: "false"
1264
+ :label: Home Phone
1265
+ :byteLength: "120"
1266
+ :restrictedPicklist: "false"
1267
+ :precision: "0"
1268
+ :length: "40"
1269
+ :calculated: "false"
1270
+ :type: phone
1271
+ :soapType: xsd:string
1272
+ :scale: "0"
1273
+ :nillable: "true"
1274
+ :defaultedOnCreate: "false"
1275
+ :name: HomePhone
1276
+ :custom: "false"
1277
+ :createable: "true"
1278
+ :updateable: "true"
1279
+ :digits: "0"
1280
+ :filterable: "true"
1281
+ :autoNumber: "false"
1282
+ - :nameField: "false"
1283
+ :label: Other Phone
1284
+ :byteLength: "120"
1285
+ :restrictedPicklist: "false"
1286
+ :precision: "0"
1287
+ :length: "40"
1288
+ :calculated: "false"
1289
+ :type: phone
1290
+ :soapType: xsd:string
1291
+ :scale: "0"
1292
+ :nillable: "true"
1293
+ :defaultedOnCreate: "false"
1294
+ :name: OtherPhone
1295
+ :custom: "false"
1296
+ :createable: "true"
1297
+ :updateable: "true"
1298
+ :digits: "0"
1299
+ :filterable: "true"
1300
+ :autoNumber: "false"
1301
+ - :nameField: "false"
1302
+ :label: Asst. Phone
1303
+ :byteLength: "120"
1304
+ :restrictedPicklist: "false"
1305
+ :precision: "0"
1306
+ :length: "40"
1307
+ :calculated: "false"
1308
+ :type: phone
1309
+ :soapType: xsd:string
1310
+ :scale: "0"
1311
+ :nillable: "true"
1312
+ :defaultedOnCreate: "false"
1313
+ :name: AssistantPhone
1314
+ :custom: "false"
1315
+ :createable: "true"
1316
+ :updateable: "true"
1317
+ :digits: "0"
1318
+ :filterable: "true"
1319
+ :autoNumber: "false"
1320
+ - :nameField: "false"
1321
+ :label: Reports To ID
1322
+ :byteLength: "18"
1323
+ :restrictedPicklist: "false"
1324
+ :precision: "0"
1325
+ :length: "18"
1326
+ :calculated: "false"
1327
+ :type: reference
1328
+ :soapType: tns:ID
1329
+ :scale: "0"
1330
+ :nillable: "true"
1331
+ :defaultedOnCreate: "false"
1332
+ :name: ReportsToId
1333
+ :custom: "false"
1334
+ :createable: "true"
1335
+ :updateable: "true"
1336
+ :digits: "0"
1337
+ :filterable: "true"
1338
+ :referenceTo: Contact
1339
+ :autoNumber: "false"
1340
+ - :nameField: "false"
1341
+ :label: Email Address
1342
+ :byteLength: "240"
1343
+ :restrictedPicklist: "false"
1344
+ :precision: "0"
1345
+ :length: "80"
1346
+ :calculated: "false"
1347
+ :type: email
1348
+ :soapType: xsd:string
1349
+ :scale: "0"
1350
+ :nillable: "true"
1351
+ :defaultedOnCreate: "false"
1352
+ :name: Email
1353
+ :custom: "false"
1354
+ :createable: "true"
1355
+ :updateable: "true"
1356
+ :digits: "0"
1357
+ :filterable: "true"
1358
+ :autoNumber: "false"
1359
+ - :nameField: "false"
1360
+ :label: Title
1361
+ :byteLength: "240"
1362
+ :restrictedPicklist: "false"
1363
+ :precision: "0"
1364
+ :length: "80"
1365
+ :calculated: "false"
1366
+ :type: string
1367
+ :soapType: xsd:string
1368
+ :scale: "0"
1369
+ :nillable: "true"
1370
+ :defaultedOnCreate: "false"
1371
+ :name: Title
1372
+ :custom: "false"
1373
+ :createable: "true"
1374
+ :updateable: "true"
1375
+ :digits: "0"
1376
+ :filterable: "true"
1377
+ :autoNumber: "false"
1378
+ - :nameField: "false"
1379
+ :label: Department
1380
+ :byteLength: "240"
1381
+ :restrictedPicklist: "false"
1382
+ :precision: "0"
1383
+ :length: "80"
1384
+ :calculated: "false"
1385
+ :type: string
1386
+ :soapType: xsd:string
1387
+ :scale: "0"
1388
+ :nillable: "true"
1389
+ :defaultedOnCreate: "false"
1390
+ :name: Department
1391
+ :custom: "false"
1392
+ :createable: "true"
1393
+ :updateable: "true"
1394
+ :digits: "0"
1395
+ :filterable: "true"
1396
+ :autoNumber: "false"
1397
+ - :nameField: "false"
1398
+ :label: Assistant's Name
1399
+ :byteLength: "120"
1400
+ :restrictedPicklist: "false"
1401
+ :precision: "0"
1402
+ :length: "40"
1403
+ :calculated: "false"
1404
+ :type: string
1405
+ :soapType: xsd:string
1406
+ :scale: "0"
1407
+ :nillable: "true"
1408
+ :defaultedOnCreate: "false"
1409
+ :name: AssistantName
1410
+ :custom: "false"
1411
+ :createable: "true"
1412
+ :updateable: "true"
1413
+ :digits: "0"
1414
+ :filterable: "true"
1415
+ :autoNumber: "false"
1416
+ - :nameField: "false"
1417
+ :label: Lead Source
1418
+ :byteLength: "120"
1419
+ :restrictedPicklist: "false"
1420
+ :precision: "0"
1421
+ :length: "40"
1422
+ :calculated: "false"
1423
+ :type: picklist
1424
+ :soapType: xsd:string
1425
+ :scale: "0"
1426
+ :nillable: "true"
1427
+ :defaultedOnCreate: "false"
1428
+ :picklistValues:
1429
+ - :label: Web
1430
+ :value: Web
1431
+ :defaultValue: "false"
1432
+ :active: "true"
1433
+ - :label: Phone Inquiry
1434
+ :value: Phone Inquiry
1435
+ :defaultValue: "false"
1436
+ :active: "true"
1437
+ - :label: Partner Referral
1438
+ :value: Partner Referral
1439
+ :defaultValue: "false"
1440
+ :active: "true"
1441
+ - :label: Purchased List
1442
+ :value: Purchased List
1443
+ :defaultValue: "false"
1444
+ :active: "true"
1445
+ - :label: Other
1446
+ :value: Other
1447
+ :defaultValue: "false"
1448
+ :active: "true"
1449
+ :name: LeadSource
1450
+ :custom: "false"
1451
+ :createable: "true"
1452
+ :updateable: "true"
1453
+ :digits: "0"
1454
+ :filterable: "true"
1455
+ :autoNumber: "false"
1456
+ - :nameField: "false"
1457
+ :label: Birthdate
1458
+ :byteLength: "0"
1459
+ :restrictedPicklist: "false"
1460
+ :precision: "0"
1461
+ :length: "0"
1462
+ :calculated: "false"
1463
+ :type: date
1464
+ :soapType: xsd:dateTime
1465
+ :scale: "0"
1466
+ :nillable: "true"
1467
+ :defaultedOnCreate: "false"
1468
+ :name: Birthdate
1469
+ :custom: "false"
1470
+ :createable: "true"
1471
+ :updateable: "true"
1472
+ :digits: "0"
1473
+ :filterable: "true"
1474
+ :autoNumber: "false"
1475
+ - :nameField: "false"
1476
+ :label: Contact Description
1477
+ :byteLength: "32000"
1478
+ :restrictedPicklist: "false"
1479
+ :precision: "0"
1480
+ :length: "32000"
1481
+ :calculated: "false"
1482
+ :type: textarea
1483
+ :soapType: xsd:string
1484
+ :scale: "0"
1485
+ :nillable: "true"
1486
+ :defaultedOnCreate: "false"
1487
+ :name: Description
1488
+ :custom: "false"
1489
+ :createable: "true"
1490
+ :updateable: "true"
1491
+ :digits: "0"
1492
+ :filterable: "false"
1493
+ :autoNumber: "false"
1494
+ - :nameField: "false"
1495
+ :label: Owner ID
1496
+ :byteLength: "18"
1497
+ :restrictedPicklist: "false"
1498
+ :precision: "0"
1499
+ :length: "18"
1500
+ :calculated: "false"
1501
+ :type: reference
1502
+ :soapType: tns:ID
1503
+ :scale: "0"
1504
+ :nillable: "false"
1505
+ :defaultedOnCreate: "true"
1506
+ :name: OwnerId
1507
+ :custom: "false"
1508
+ :createable: "true"
1509
+ :updateable: "true"
1510
+ :digits: "0"
1511
+ :filterable: "true"
1512
+ :referenceTo: User
1513
+ :autoNumber: "false"
1514
+ - :nameField: "false"
1515
+ :label: Created Date
1516
+ :byteLength: "0"
1517
+ :restrictedPicklist: "false"
1518
+ :precision: "0"
1519
+ :length: "0"
1520
+ :calculated: "false"
1521
+ :type: datetime
1522
+ :soapType: xsd:dateTime
1523
+ :scale: "0"
1524
+ :nillable: "false"
1525
+ :defaultedOnCreate: "true"
1526
+ :name: CreatedDate
1527
+ :custom: "false"
1528
+ :createable: "false"
1529
+ :updateable: "false"
1530
+ :digits: "0"
1531
+ :filterable: "true"
1532
+ :autoNumber: "false"
1533
+ - :nameField: "false"
1534
+ :label: Created By ID
1535
+ :byteLength: "18"
1536
+ :restrictedPicklist: "false"
1537
+ :precision: "0"
1538
+ :length: "18"
1539
+ :calculated: "false"
1540
+ :type: reference
1541
+ :soapType: tns:ID
1542
+ :scale: "0"
1543
+ :nillable: "false"
1544
+ :defaultedOnCreate: "true"
1545
+ :name: CreatedById
1546
+ :custom: "false"
1547
+ :createable: "false"
1548
+ :updateable: "false"
1549
+ :digits: "0"
1550
+ :filterable: "true"
1551
+ :referenceTo: User
1552
+ :autoNumber: "false"
1553
+ - :nameField: "false"
1554
+ :label: Last Modified Date
1555
+ :byteLength: "0"
1556
+ :restrictedPicklist: "false"
1557
+ :precision: "0"
1558
+ :length: "0"
1559
+ :calculated: "false"
1560
+ :type: datetime
1561
+ :soapType: xsd:dateTime
1562
+ :scale: "0"
1563
+ :nillable: "false"
1564
+ :defaultedOnCreate: "true"
1565
+ :name: LastModifiedDate
1566
+ :custom: "false"
1567
+ :createable: "false"
1568
+ :updateable: "false"
1569
+ :digits: "0"
1570
+ :filterable: "true"
1571
+ :autoNumber: "false"
1572
+ - :nameField: "false"
1573
+ :label: Last Modified By ID
1574
+ :byteLength: "18"
1575
+ :restrictedPicklist: "false"
1576
+ :precision: "0"
1577
+ :length: "18"
1578
+ :calculated: "false"
1579
+ :type: reference
1580
+ :soapType: tns:ID
1581
+ :scale: "0"
1582
+ :nillable: "false"
1583
+ :defaultedOnCreate: "true"
1584
+ :name: LastModifiedById
1585
+ :custom: "false"
1586
+ :createable: "false"
1587
+ :updateable: "false"
1588
+ :digits: "0"
1589
+ :filterable: "true"
1590
+ :referenceTo: User
1591
+ :autoNumber: "false"
1592
+ - :nameField: "false"
1593
+ :label: System Modstamp
1594
+ :byteLength: "0"
1595
+ :restrictedPicklist: "false"
1596
+ :precision: "0"
1597
+ :length: "0"
1598
+ :calculated: "false"
1599
+ :type: datetime
1600
+ :soapType: xsd:dateTime
1601
+ :scale: "0"
1602
+ :nillable: "false"
1603
+ :defaultedOnCreate: "true"
1604
+ :name: SystemModstamp
1605
+ :custom: "false"
1606
+ :createable: "false"
1607
+ :updateable: "false"
1608
+ :digits: "0"
1609
+ :filterable: "true"
1610
+ :autoNumber: "false"
1611
+ - :nameField: "false"
1612
+ :label: Last Stay-in-Touch Request Date
1613
+ :byteLength: "0"
1614
+ :restrictedPicklist: "false"
1615
+ :precision: "0"
1616
+ :length: "0"
1617
+ :calculated: "false"
1618
+ :type: datetime
1619
+ :soapType: xsd:dateTime
1620
+ :scale: "0"
1621
+ :nillable: "true"
1622
+ :defaultedOnCreate: "false"
1623
+ :name: LastCURequestDate
1624
+ :custom: "false"
1625
+ :createable: "false"
1626
+ :updateable: "false"
1627
+ :digits: "0"
1628
+ :filterable: "true"
1629
+ :autoNumber: "false"
1630
+ - :nameField: "false"
1631
+ :label: Last Stay-in-Touch Save Date
1632
+ :byteLength: "0"
1633
+ :restrictedPicklist: "false"
1634
+ :precision: "0"
1635
+ :length: "0"
1636
+ :calculated: "false"
1637
+ :type: datetime
1638
+ :soapType: xsd:dateTime
1639
+ :scale: "0"
1640
+ :nillable: "true"
1641
+ :defaultedOnCreate: "false"
1642
+ :name: LastCUUpdateDate
1643
+ :custom: "false"
1644
+ :createable: "false"
1645
+ :updateable: "false"
1646
+ :digits: "0"
1647
+ :filterable: "true"
1648
+ :autoNumber: "false"
1649
+ - :nameField: "false"
1650
+ :label: Level
1651
+ :byteLength: "765"
1652
+ :restrictedPicklist: "false"
1653
+ :precision: "0"
1654
+ :length: "255"
1655
+ :calculated: "false"
1656
+ :type: picklist
1657
+ :soapType: xsd:string
1658
+ :scale: "0"
1659
+ :nillable: "true"
1660
+ :defaultedOnCreate: "false"
1661
+ :picklistValues:
1662
+ - :label: Primary
1663
+ :value: Primary
1664
+ :defaultValue: "false"
1665
+ :active: "true"
1666
+ - :label: Tertiary
1667
+ :value: Tertiary
1668
+ :defaultValue: "false"
1669
+ :active: "true"
1670
+ :name: Level__c
1671
+ :custom: "true"
1672
+ :createable: "true"
1673
+ :updateable: "true"
1674
+ :digits: "0"
1675
+ :filterable: "true"
1676
+ :autoNumber: "false"
1677
+ - :nameField: "false"
1678
+ :label: Languages
1679
+ :byteLength: "300"
1680
+ :restrictedPicklist: "false"
1681
+ :precision: "0"
1682
+ :length: "100"
1683
+ :calculated: "false"
1684
+ :type: string
1685
+ :soapType: xsd:string
1686
+ :scale: "0"
1687
+ :nillable: "true"
1688
+ :defaultedOnCreate: "false"
1689
+ :name: Languages__c
1690
+ :custom: "true"
1691
+ :createable: "true"
1692
+ :updateable: "true"
1693
+ :digits: "0"
1694
+ :filterable: "true"
1695
+ :autoNumber: "false"
1696
+ - :nameField: "false"
1697
+ :label: CustomUserRel
1698
+ :byteLength: "18"
1699
+ :restrictedPicklist: "false"
1700
+ :precision: "0"
1701
+ :length: "18"
1702
+ :calculated: "false"
1703
+ :type: reference
1704
+ :soapType: tns:ID
1705
+ :scale: "0"
1706
+ :nillable: "true"
1707
+ :defaultedOnCreate: "false"
1708
+ :name: CustomUserRel__c
1709
+ :custom: "true"
1710
+ :createable: "true"
1711
+ :updateable: "true"
1712
+ :digits: "0"
1713
+ :filterable: "true"
1714
+ :referenceTo: User
1715
+ :autoNumber: "false"
1716
+ - :nameField: "false"
1717
+ :label: f2
1718
+ :byteLength: "0"
1719
+ :restrictedPicklist: "false"
1720
+ :precision: "18"
1721
+ :length: "0"
1722
+ :calculated: "true"
1723
+ :type: double
1724
+ :soapType: xsd:double
1725
+ :scale: "2"
1726
+ :nillable: "true"
1727
+ :defaultedOnCreate: "false"
1728
+ :name: f2__c
1729
+ :custom: "true"
1730
+ :createable: "false"
1731
+ :updateable: "false"
1732
+ :digits: "0"
1733
+ :filterable: "true"
1734
+ :autoNumber: "false"
1735
+ - :nameField: "false"
1736
+ :label: f1
1737
+ :byteLength: "0"
1738
+ :restrictedPicklist: "false"
1739
+ :precision: "18"
1740
+ :length: "0"
1741
+ :calculated: "true"
1742
+ :type: double
1743
+ :soapType: xsd:double
1744
+ :scale: "2"
1745
+ :nillable: "true"
1746
+ :defaultedOnCreate: "false"
1747
+ :name: f1__c
1748
+ :custom: "true"
1749
+ :createable: "false"
1750
+ :updateable: "false"
1751
+ :digits: "0"
1752
+ :filterable: "true"
1753
+ :autoNumber: "false"
1754
+ :layoutable: "true"
1755
+ :urlDetail: https://na1.salesforce.com/{ID}
1756
+ :queryable: "true"
1757
+ :urlEdit: https://na1.salesforce.com/{ID}/e
1758
+ :name: Contact
1759
+ :custom: "false"
1760
+ :createable: "true"
1761
+ :activateable: "false"
1762
+ :updateable: "true"
1763
+ :replicateable: "true"
1764
+ :urlNew: https://na1.salesforce.com/003/e
1765
+ :deletable: "true"
1766
+ :retrieveable: "true"
1767
+ :keyPrefix: "003"
1768
+ login(username::password:): !ruby/object:RForce::SoapResponse
1769
+ parsed:
1770
+ :loginResponse:
1771
+ :result:
1772
+ :userInfo:
1773
+ :userTimeZone: America/Los_Angeles
1774
+ :userDefaultCurrencyIsoCode:
1775
+ :userUiSkin: Theme2
1776
+ :accessibilityMode: "false"
1777
+ :userEmail: dchasman@salesforce.com
1778
+ :currencySymbol: $
1779
+ :userFullName: Doug Chasmanii
1780
+ :organizationId: 00D3000000010YJEAY
1781
+ :userLanguage: en_US
1782
+ :organizationMultiCurrency: "false"
1783
+ :userLocale: en_US
1784
+ :userId: 00530000000hYFzAAM
1785
+ :organizationName: dutchforce.com
1786
+ :sessionId: syBnvr6KItfWijWqEtGMq0iNdbJgM67FlCX5KuutxiMHayEK5Rg6kqEOSfpxMQD0E0fV0AcyJ8xpvFAIkp7ZkWpYnKO9AsNCSeX5jsUoLXQ=
1787
+ :serverUrl: https://na1-api.salesforce.com/services/Soap/u/7.0
1788
+ :passwordExpired: "false"
1789
+ :userId: 00530000000hYFzAAM