Additional steps are required when you choose to integrate CPQ on Salesforce with external applications, customer portals, or other critical business systems. Because CPQ Web Services are hosted on Salesforce, you should familiarize yourself with the Salesforce SOAP API and processes surrounding integration and best practices detailed here: https://developer.salesforce.com/docs/atlas.en-us.api.meta/api/sforce_api_quickstart_intro.htm
Apttus recommends that you work with Apttus Professional Services to design and implement your integration. Use this documentation for basic integration steps and to reference CPQ Web Service calls.
The following basic steps are required to get started using the Apttus CPQ Web Services API.
- Generate the Enterprise or Partner WSDL – Integration with data stored in Salesforce requires you to first point your browser to the Salesforce Enterprise or Partner WSDL. This WSDL is generally provided by Apttus Professional Services. Refer to Salesforce Documentation for complete instructions on generating the Web Service WSDL.
- Generate the Apttus Web Services WSDL – After you have connected to Apttus Web Service, go to your organization and download the WSDL for the appropriate Web Service (CPQ Web Service, Batch Update, Proposal Web Service, and so on).
- Import the WSDL Files Into Your Development Platform – After you have generated the WSDL files, you can import them into your development platform. Apttus does not provide instructions for the import process. Refer to Salesforce documentation or documentation related to your development platform.
- Connect to Apttus – Before you can begin using CPQ Web Services, you must first authenticate to Apttus using the login() API.
Generating the Apttus Web Services WSDL
Before you can import Apttus SOAP Web Service into your development or testing platform, you must generate and download the Apttus WSDL for the appropriate Web Service.
The example provided here uses SoapUI.
There a known bug in the WSDL Generator on Salesforce that does not include several field types, so it is recommended to update the WSDL file after you have generated it but before importing it into your development platform. You can find the details for any workaround tasks here:
When updating generated WSDL, make sure that the target namespace for any schema you add points to the correct Web Service (for example, schemas/class/Apttus_QPConfig/QPConfigWebService). If you are still having trouble, please ask Apttus Professional Services for a modified WSDL for the Web Services you are using.
To generate the Apttus Web Services WSDL
- Log in to the Salesforce organization that contains you Apttus records and data (sandbox or production).
- Go to Setup > Develop > Apex Classes (on Lightning, go to Setup > Custom Code > Apex Classes.
- Find the Web Service you want to generate the WSDL for (for example, CPQWebService).
- Click the WSDL link to generate the WSDL. The WSDL XML is generated and displayed in a new tab.
- Right-click on the page and select View Page Source. Copy the XML content to any text editor.
- Save the file with the extension .wsdl.
- Open SoapUI (or wherever is required on your development platform).
Create a new SOAP project and import the Apttus Web Services WSDL. All methods under that Web Service are now available to call.Refer to the Request/Response XML section for any API in this reference to get the structure of the request and any prerequisite calls required for any API.
Connecting to Apttus
After you have downloaded the Enterprise or Partner WSDL, call the login() method to obtain a session ID from your org that you can use when calling CPQ Web Services. After authenticating, you can use the same session ID until it either expires or your logout or login again.
The example provided here uses SoapUI, an API testing tool which can be downloaded for free here: https://www.soapui.org/.
Prerequisite: To authenticate with Apttus, please make sure to have your production or test org credentials on hand (username and password).
To connect to Apttus Web Service using SoapUI
- Open SoapUI. Go to File > New SOAP Project.
- Enter a name for the project.
- Click Browse. Navigate to the saved Enterprise or Partner WSDL file that you downloaded and click Open.
- Click OK to close the project window.
- From the Navigation panel to the left, highlight the project folder and click to expand. Click to expand the SoapBinding. The list of methods that comprise the Enterprise or Partner services are displayed.
Scroll down and right click on login. Double-click on an existing Request. The request window opens in the SoapUI interface.
If you are doing this for the first time, you need to right-click on the login method and select New Request.
- Select and delete all content following the <soapenv:Header> tag and the </soapenv:Header> tag.
- Enter the username for your org (must have appropriate privileges) between the <urn:username> and </urn:username> tags.
Enter the username for your org (must have appropriate privileges) between the <urn:password> and </urn:password> tags.
The request should look like the following:
<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:urn="urn:partner.soap.sforce.com"> <soapenv:Header> </soapenv:Header> <soapenv:Body> <urn:login> <urn:username>firstname.lastname@example.org</urn:username> <urn:password>password</urn:password> </urn:login> </soapenv:Body> </soapenv:Envelope>JS
- From the upper-left corner of the window, click the Run ( ) icon. The response is generated in the right-hand window.
- Make note of the serverURL and the sessionId returned by the server. You will use the information to make Apttus Web Service calls.