1WWW::Salesforce(3) User Contributed Perl Documentation WWW::Salesforce(3)
2
3
4
6 WWW::Salesforce - this class provides a simple abstraction layer
7 between SOAP::Lite and Salesforce.com.
8
10 use WWW::Salesforce;
11 my $sforce = eval { WWW::Salesforce->login( username => 'foo',
12 password => 'bar' ); };
13 die "Could not login to SFDC: $@" if $@;
14
15 # eval, eval, eval. WWW::Salesforce uses a SOAP connection to
16 # salesforce.com, so things can go wrong unexpectedly. Be prepared
17 # by eval'ing and handling any exceptions that occur.
18
20 This class provides a simple abstraction layer between SOAP::Lite and
21 Salesforce.com. Because SOAP::Lite does not support complexTypes, and
22 document/literal encoding is limited, this module works around those
23 limitations and provides a more intuitive interface a developer can
24 interact with.
25
27 new( HASH )
28 Synonym for "login"
29
30 login( HASH )
31 The "login" method returns an object of type WWW::Salesforce if the
32 login attempt was successful, and 0 otherwise. Upon a successful login,
33 the "sessionId" is saved and the serverUrl set properly so that
34 developers need not worry about setting these values manually. Upon
35 failure, the method dies with an error string.
36
37 The following are the accepted input parameters:
38
39 username
40 A Salesforce.com username.
41
42 password
43 The password for the user indicated by "username".
44
46 convertLead( HASH )
47 The "convertLead" method returns an object of type SOAP::SOM if the
48 login attempt was successful, and 0 otherwise.
49
50 Converts a Lead into an Account, Contact, or (optionally) an
51 Opportunity
52
53 The following are the accepted input parameters:
54
55 %hash_of_array_references
56 leadId => [ 2345, 5678, ],
57 contactId => [ 9876, ],
58
59 create( HASH )
60 Adds one new individual objects to your organization's data. This takes
61 as input a HASH containing the fields (the keys of the hash) and the
62 values of the record you wish to add to your organization. The hash
63 must contain the 'type' key in order to identify the type of the record
64 to add.
65
66 Returns a SOAP::Lite object. Success of this operation can be gleaned
67 from the envelope result.
68
69 $r->envelope->{Body}->{createResponse}->{result}->{success};
70
71 delete( ARRAY )
72 Deletes one or more individual objects from your organization's data.
73 This subroutine takes as input an array of SCALAR values, where each
74 SCALAR is an "sObjectId".
75
76 describeGlobal()
77 Retrieves a list of available objects for your organization's data.
78 You can then iterate through this list and use "describeSObject()" to
79 obtain metadata about individual objects. This method calls the
80 Salesforce describeGlobal method
81 <https://developer.salesforce.com/docs/atlas.en-
82 us.api.meta/api/sforce_api_calls_describeglobal.htm>.
83
84 describeLayout( HASH )
85 Describes metadata about a given page layout, including layouts for
86 edit and display-only views and record type mappings.
87
88 type
89 The type of the object you wish to have described.
90
91 describeSObject( HASH )
92 Describes metadata (field list and object properties) for the specified
93 object.
94
95 type
96 The type of the object you wish to have described.
97
98 describeSObjects( type => ['Account','Contact','CustomObject__c'] )
99 An array based version of describeSObject; describes metadata (field
100 list and object properties) for the specified object or array of
101 objects.
102
103 describeTabs()
104 Use the "describeTabs" call to obtain information about the standard
105 and custom apps to which the logged-in user has access. The
106 "describeTabs" call returns the minimum required metadata that can be
107 used to render apps in another user interface. Typically this call is
108 used by partner applications to render Salesforce data in another user
109 interface.
110
111 get_session_id()
112 Gets the Salesforce SID
113
114 get_user_id()
115 Gets the Salesforce UID
116
117 get_username()
118 Gets the Salesforce Username
119
120 getDeleted( HASH )
121 Retrieves the list of individual objects that have been deleted within
122 the given time span for the specified object.
123
124 type
125 Identifies the type of the object you wish to find deletions for.
126
127 start
128 A string identifying the start date/time for the query
129
130 end A string identifying the end date/time for the query
131
132 getServerTimestamp()
133 Retrieves the current system timestamp (GMT) from the Salesforce web
134 service.
135
136 getUpdated( HASH )
137 Retrieves the list of individual objects that have been updated (added
138 or changed) within the given time span for the specified object.
139
140 type
141 Identifies the type of the object you wish to find updates for.
142
143 start
144 A string identifying the start date/time for the query
145
146 end A string identifying the end date/time for the query
147
148 getUserInfo( HASH )
149 Retrieves personal information for the user associated with the current
150 session.
151
152 user
153 A user ID
154
155 logout()
156 Ends the session for the logged-in user issuing the call. No arguments
157 are needed. Useful to avoid hitting the limit of ten open sessions per
158 login. Logout API Call
159 <http://www.salesforce.com/us/developer/docs/api/Content/sforce_api_calls_logout.htm>
160
161 query( HASH )
162 Executes a query against the specified object and returns data that
163 matches the specified criteria.
164
165 query
166 The query string to use for the query. The query string takes the
167 form of a basic SQL statement. For example, "SELECT Id,Name FROM
168 Account".
169
170 limit
171 This sets the batch size, or size of the result returned. This is
172 helpful in producing paginated results, or fetch small sets of data
173 at a time.
174
175 queryAll( HASH )
176 Executes a query against the specified object and returns data that
177 matches the specified criteria including archived and deleted objects.
178
179 query
180 The query string to use for the query. The query string takes the
181 form of a basic SQL statement. For example, "SELECT Id,Name FROM
182 Account".
183
184 limit
185 This sets the batch size, or size of the result returned. This is
186 helpful in producing paginated results, or fetch small sets of data
187 at a time.
188
189 queryMore( HASH )
190 Retrieves the next batch of objects from a "query" or "queryAll".
191
192 queryLocator
193 The handle or string returned by "query". This identifies the
194 result set and cursor for fetching the next set of rows from a
195 result set.
196
197 limit
198 This sets the batch size, or size of the result returned. This is
199 helpful in producing paginated results, or fetch small sets of data
200 at a time.
201
202 resetPassword( HASH )
203 Changes a user's password to a server-generated value.
204
205 userId
206 A user Id.
207
208 retrieve( HASH )
209 fields
210 A comma delimited list of field name you want retrieved.
211
212 type
213 The type of the object being queried.
214
215 ids The ids (LIST) of the object you want returned.
216
217 search( HASH )
218 searchString
219 The search string to be used in the query. For example, "find
220 {4159017000} in phone fields returning contact(id, phone,
221 firstname, lastname), lead(id, phone, firstname, lastname),
222 account(id, phone, name)"
223
224 setPassword( HASH )
225 Sets the specified user's password to the specified value.
226
227 userId
228 A user Id.
229
230 password
231 The new password to assign to the user identified by "userId".
232
233 sf_date
234 Converts a time in Epoch seconds to the date format that Salesforce
235 likes
236
237 update(type => $type, HASHREF [, HASHREF ...])
238 Updates one or more existing objects in your organization's data. This
239 subroutine takes as input a type value which names the type of object
240 to update (e.g. Account, User) and one or more perl HASH references
241 containing the fields (the keys of the hash) and the values of the
242 record that will be updated.
243
244 The hash must contain the 'Id' key in order to identify the record to
245 update.
246
247 upsert(type => $type, key => $key, HASHREF [, HASHREF ...])
248 Updates or inserts one or more objects in your organization's data. If
249 the data doesn't exist on Salesforce, it will be inserted. If it
250 already exists it will be updated.
251
252 This subroutine takes as input a type value which names the type of
253 object to update (e.g. Account, User). It also takes a key value which
254 specifies the unique key Salesforce should use to determine if it needs
255 to update or insert. If key is not given it will default to 'Id' which
256 is Salesforce's own internal unique ID. This key can be any of
257 Salesforce's default fields or an custom field marked as an external
258 key.
259
260 Finally, this method takes one or more perl HASH references containing
261 the fields (the keys of the hash) and the values of the record that
262 will be updated.
263
264 describeMetadata()
265 Get some metadata info about your instance.
266
267 retrieveMetadata()
268 checkAsyncStatus( $pid )
269 checkRetrieveStatus( $pid )
270 getErrorDetails( RESULT )
271 Returns a hash with information about errors from API calls - only
272 useful if ($res->valueof('//success') ne 'true')
273
274 {
275 'statusCode' => 'INVALID_FIELD_FOR_INSERT_UPDATE',
276 'message' => 'Account: bad field names on insert/update call: type'
277 ...
278 }
279
280 bye()
281 Synonym for "logout".
282
283 Ends the session for the logged-in user issuing the call. No arguments
284 are needed. Returns a reference to an array of hash refs
285
286 do_query( $query, [$limit] )
287 Returns a reference to an array of hash refs
288
289 do_queryAll( $query, [$limit] )
290 Returns a reference to an array of hash refs
291
292 get_field_list( $table_name )
293 Returns a ref to an array of hash refs for each field name Field name
294 keyed as 'name'
295
296 get_tables()
297 Returns a reference to an array of hash references Each hash gives the
298 properties for each Salesforce object
299
301 login()
302 use WWW::Salesforce;
303 my $sf = WWW::Salesforce->login( 'username' => $user,'password' => $pass )
304 or die $@;
305
306 search()
307 my $query = 'find {4159017000} in phone fields returning contact(id, phone, ';
308 $query .= 'firstname, lastname), lead(id, phone, firstname, lastname), ';
309 $query .= 'account(id, phone, name)';
310 my $result = $sforce->search( 'searchString' => $query );
311
313 Please visit Salesforce.com's user/developer forums online for
314 assistance with this module. You are free to contact the author
315 directly if you are unable to resolve your issue online.
316
318 The "describeSObjects" and "describeTabs" API calls are not yet
319 complete. These will be completed in future releases.
320
321 Not enough test cases built into the install yet. More to be added.
322
324 L<DBD::Salesforce> by Jun Shimizu
325 L<SOAP::Lite> by Byrne Reese
326
327 Examples on Salesforce website:
328 L<http://www.sforce.com/us/docs/sforce70/wwhelp/wwhimpl/js/html/wwhelp.htm>
329
331 This Perl module was originally provided and presented as part of the
332 first Salesforce.com dreamForce conference on Nov. 11, 2003 in San
333 Francisco.
334
336 Byrne Reese - <byrne at majordojo dot com>
337
338 Chase Whitener <capoeirab@cpan.org>
339
340 Fred Moyer <fred at redhotpenguin dot com>
341
343 Michael Blanco
344
345 Garth Webb
346
347 Jun Shimizu
348
349 Ron Hess
350
351 Tony Stubblebine
352
354 Copyright 2003-2004 Byrne Reese, Chase Whitener, Fred Moyer. All rights
355 reserved.
356
357 This program is free software; you can redistribute it and/or modify it
358 under the same terms as Perl itself.
359
360
361
362perl v5.34.0 2022-01-21 WWW::Salesforce(3)