SalesForce4.0
This component simplifies the process of connecting salesforce.com's Web service (SOAP) API.
The component takes the salesforce credentials as part of its configuration. This is used to get the session ID which is required to perform operations on SalesForce API. If the session expires, the component fetches a new session ID.
Most of the properties used by the component like the ones for Basic authentication, SOAP compression are similar to WebServiceConsumer component. For a detailed description of those properties, please refer the WebServiceConsumer4.0 section.
Configuration
Connection configuration
Figure 1: Connection configuration section
WSDL Configuration
Enterprise WSDL must be configured when standard salesforce operations like query, insert, update, upsert etc. have to be invoked.
To invoke Apex operations, the property "Is Apex" should be set to "yes" and the WSDL corresponding to the Apex operations must be specified here.
Figure 2: WSDL Configuration
Component Configuration
Load WSDL From
Source for WSDL can be configured here. It can be a File or a valid WSDL URL. When File is selected, the WSDL file location can be configured using the property SalesForce WSDL File. When URL is selected, the WSDL URL can be configured using the property SalesForce WSDL URL.
SalesForce WSDL File
This property is used to specify the SalesForce WSDL File location. This property gets enabled when the Load WSDL From is selected as File.
Figure 3: WSDL Operation Configuration for Apex Operations
Is Apex ?
Select 'yes' if the component needs to invoke Apex webservice. When set to 'yes', the following properties must be configured.
Login URL
The endpoint address of the Enterprise WSDL must be specified here which will be used for authentication and creation of session required to invoke Apex Operations. This would be present in the WSDL file as the value of location attribute of elementdefinitions/service/port/soap:address. The credentials required should be configured using property Login Configurations.
WSDL Configuration
Instead of the enterprise WSDL used to invoke common operations like insert, update etc, to invoke Apex operations the WSDL corresponding to Apex class must be used. This is present in Salesforce dashboard as a link WSDL adjacent to the Apex class at App Setup > Develop > Apex Classes
Store Imported Schemas
If selected yes, saves imported schemas to Schema repository.
Connection Expert Properties
Enable Show Expert Properties option to configure expert properties.
Figure 4: Expert Connection properties
Additional Login named configurations to bind
List of all additional Login Configurations saved using named configurations separated by ; that has to be bound so that it can be used from 'LoginNamedConfig' message header.
Example
LoginNC1;LoginNC2
Additional WSDL named configurations to bind
List of all additional WSDL Service Configurations saved using named configurations separated by ; that has to be bound so that it can be used from 'WSDLServiceNamedConfig' message header.
Example
WsdlNC1;WsdlNC2
Call and Addressing Properties
Figure 4: Call and Addressing Properties panel
Operations
Operations which need to be invoked on Salesforce API can be configured here. The operations supported by Salesforce will be shown when the add button is clicked in the panel. In the panel beside, Operation can be selected. Once the operation gets selected, the properties WSDL Service, WSDL Port, Endpoint Address, Input parameter and Output parameter will be populated.
Figure 5: WSDL Operation Configuration panel
Port name Prefix
Displays param name of the operation to be invoked which is used as a prefix to generate port names based on given param name. Input port name will be generated with "_Request" as a suffix and Output port name will be generated with "_Response" as the suffix. For param with the name as "Operation1", input and output port names will be Operation1_Request and Operation1_Response.
Login Configurations
This property specifies the parameters which need to be passed to salesforce.com while logging. Parameters like username, password etc. can be specified here. While entering password details, the security token should be concatenated with it to make authentication successful.
Figure 6: Login Parameters panel
Login URL
This property is used only when the property "Is Apex" is set to true. The endpoint address of the Enterprise WSDL must be specified here which will be used for authentication and creation of session required to invoke Apex Operations. This would be present in the WSDL file as the value of location attribute of element definitions/service/port/soap:address. The credentials required should be configured using property Login Configurations.
Call and Addressing Expert Properties
Enable Show Expert Properties option to configure expert properties.
WSDL Service Configuration
WSDL Service
This property specifies the WSDL Service name. This property will be automatically populated when one or more operations are selected while configuring the property Operations.
Endpoint Address
This property specifies the Endpoint Address for the Web service operation. This Property will be automatically populated when one or more operations are selected while configuring the Property Operations.
Figure 7: WSDL Service Configuration panel
WSDLPort
This property specifies the WSDL Port. This property will be automatically populated when one or more operations are selected while configuring the property Operations.
Login Operation
This property specifies the web service operation which is used to login to salesforce.com.
Logout Operation
This property specifies the web service operation which is used to logout from salesforce.com.
Input Parameter: This property specifies the input message name for the selected WSDL Operation. Once the WSDL Operation is selected, this property will be automatically populated.
Output Parameter: This property specifies the output message name for the selected WSDL Operation. Once the WSDL Operation is selected, this property will be automatically populated.
Request Allocation Among Users
- Usage-based: User with the least number of requests to be processed gets allocated.
- Round Robin: Requests will be allocated in a round robin fashion.
Call Properties
Advanced properties which can be used to optimize and change the behavior SOAP Invocation Call.
The description for the axis call properties can be found at http://ws.apache.org/axis/java/apiDocs/org/apache/axis/client/Call.html
SOAPBody Namespace
This property specifies the SOAP Body namespace. Once the WSDL Operation is selected, this property will be automatically populated.
Enable WS-Addressing
Enables support for WS-Addressing headers.
Advanced
HTTP Basic Authentication
Use HTTP Authentication
This property specifies whether HTTP authentication is required or not to connect to a web server.
Username
User Name to connect to the web server.
Password
Password to connect to the web server.
Proxy Settings
Use Proxy Server
Select this option if the connection has to be established using a proxy server.
Proxy Address
The IP address or the host name of the machine where the proxy server is running.
Port Number
Port number on which the proxy server is running.
Username
The user name to log into the proxy server.
Password
Password for the user name provided.
SOCKS Proxy
Enable this property to use SOCKS protocol to connect to the proxy server.
SSL Security
Refer to the SSL Security section in the Common Configurations page for details.
Other Expert Properties
Enable Show Expert Properties option to configure expert properties.
Reliable Messaging
Web Services Reliable Messaging (WS-ReliableMessaging) is a protocol which helps to deliver messages reliably between distributed applications in the event of a failure of the component, system, or network.
Client port of WS-ReliableMessaging
The port on which the client listener of WS-RM listens.
Enable WS-ReliableMessaging
Selecting "yes" enables the support of WS-Reliable messaging headers.
Soap Compression
Compresses large SOAP messages transmitted between the server and the client to reduce the load on the network upto a great extent and thereby increase performance.
Compress SOAP Request
Enables compression while sending requests.
Compress SOAP Response
Expects response in compressed format.
Encrypt/Decrypt Configuration
Please refer to the Encrypt Decrypt Configuration section to know about Encrypt/Decrypt configuration.
Figure 8: Encrypt/Decrypt Configuration panel
Useful Points
- If the salesforce web service is secured using basic authentication, then the details of the basic authentication should also be provided in the Call Properties property during execution time.
- While entering password details, the security token should be concatenated with it to make authentication successful.
- To pass HTTP headers to the salesforce web service, the input message should contain properties with the header name prefixed with http_. Example http_Content-Type.
- Please refer the WebServiceConsumer4.0 help to know more about the properties which are not mentioned in this section and are common to both these components.
- In case of 'In Memory' launch, enable SSL settings in CPS and set 'Trust Store Location' to jre/lib/security/cacerts.
- To save a configuration as Named Configuration, refer Save Named Configuration section.
- To manage SSL Security, instead of overwriting SSL socket creation in the CPS, it can be configured in the system property (JVM) as well. For example, to use TLS 1.1 protocol, change the default value (TLSv1.0) of the '-Dsecurity.protocol' system property to "TLSv1.1".
To understand the service better, refer the SalesForce Integration example which demonstrates SalesForce service features.