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 detailed description of those properties, please refer 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 end point 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 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.
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 add button is clicked in the panel. In the panel beside, Operation can 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 prefix to generate port names based on given param name. Input port name will be generated with "_Request" as suffix and Output port name will be generated with "_Response" as suffix. For param with name as "Operation1", input and output port names will be Operation1_Request and Operation1_Response.
Login Configurations
This property specifies the parameters which needs 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 end point 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 value of location attribute of element definitions/service/port/soap:address. The credentials required should be configured using property Login Configurations.
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
- WSDL Port: 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.
- SOAPBody Namespace: This property specifies the SOAP Body namespace. Once the WSDL Operation is selected, this property will be automatically populated.
Call Properties: Advanced properties which can be used to optimize and change the behavior SOAP Invocation Call.
Encrypt/Decrypt Configuration
Please refer 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".