SOAP Configuration API and Web Services 1.0
Overview
You can generate a skeleton input for each operation in the configuration WSDL, which contains the following operations:
- configure
- getBOM
- getConfigurations
- getPrice
- getSpare
- deploy
For each operation, there are 3 fields that are always required in the header:
- sessionId
- category: Configuration
- schemaLocation
Configuration SOAP API Details
API | Description | Required Input Variable | Success Response Variable |
---|---|---|---|
configure |
Takes input of a particular product family, line and model and generates a configuration. The response changes based on the options specified. For example, if SOAP XML mandates generating a transaction for the given configuration, then a transaction of the specified process is included in the response. Similarly, other details can be chosen to be included or not included in the response. The document_number attribute determines whether configure or reconfigure operations are invoked. |
|
status
item
|
getBom |
Returns the BOM for the model. |
|
status
item
attributes flow bom
|
getConfigurations |
This operation is used to return configuration data that is saved for a client-side integration. This operation is not supported for multi-node configurations.
|
|
|
If "responseIncludes" is set to "true", the following items are returned: |
|
||
Optional input variables
|
|
||
getPrice |
Return the base price of the model. |
|
status
item
attributes flow price
|
getSpare |
Returns the recommended items for the model. |
|
status
item
attributes flow spare
|
deploy |
Deploys a specific product family. |
|
status
|
Returning Specific Attributes in Configuration APIs
Oracle CPQ allows you to return specific attributes from a web service request with the <bm:return_specific_attributes /> tag. For example, you can pull in four main-document attributes and two sub-document attributes and a shortened version of the transaction XML, displaying only those attributes, will be returned.
Reconfigure in Configuration APIs
The SOAP API reconfigure functions the same as the UI Reconfigure during Configuration to Quote. It executes the Inbound Reconfigure Action and preserves the recommended items based on the user-defined rules.
Customers can use a SOAP API to perform the following actions:
- Refresh a stored configuration in the transaction without returning to the Oracle CPQ Configuration UI.
- Retrieve the latest configuration for a configured item sent to downstream systems.
The document_number
attribute determines whether configure or reconfigure operations are invoked. The following table summarizes behavior actions.
If | Then |
---|---|
A
valid |
The reconfigure operation is invoked |
An
invalid |
An error is reported in the web service response |
The |
The configure operation is invoked |
Document Number Input Sample
<bm:document_number>2</bm:document_number>
Administration
Accessing Users WSDL and Generating Skeleton Input
- Navigate from Admin Home Page > Integration Platform > Web Services.
- Click the Configuration tab.
- Select an API from the drop-down menu.
- Select one of the following:
- Punchin URL and enter the URL, or
- Product Family and choose the product family, product line, and model from the corresponding drop-down menus.
- Click Generate Input to retrieve the skeleton.
Sample Configuration APIs
The following is the Minimum XML Input needed to configure a model only (will not create a commerce transaction or a quote, this XML also excludes the Price Book Tag):
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <bm:userInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:sessionId>97s6YbsFLdLHLDKyRQ8dBnXGrZ2nPDh4hqKnwLNcn9KVCysGpZpt!-1431605720!1482419365223</bm:sessionId> </bm:userInfo> <bm:category xmlns:bm="urn:soap.bigmachines.com">Configuration</bm:category> <bm:xsdInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:schemaLocation>https://yourCompany.bigmachines.com/bmfsweb/pm/schema/v1_0/config/admin/line_model.xsd</bm:schemaLocation> </bm:xsdInfo> </soapenv:Header> <soapenv:Body> <bm:configure xmlns:bm="urn:soap.bigmachines.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bm:item> <bm:segment>admin</bm:segment> <bm:product_line>line</bm:product_line> <bm:model>model</bm:model> </bm:item> <bm:responseIncludes> <bm:price>true</bm:price> <bm:spare>true</bm:spare> <bm:bom>true</bm:bom> <bm:attributeLabel>false</bm:attributeLabel> <bm:previousValue>false</bm:previousValue> <bm:displayedValue>false</bm:displayedValue> <bm:hideInTransactionAttributes>false</bm:hideInTransactionAttributes> <bm:ruleDetails>true</bm:ruleDetails> <bm:transaction> <bm:process_var_name/> <bm:document_var_name/> <bm:id/> <bm:document_number/> <bm:hide_transaction_response/> <bm:return_specific_attributes> <bm:documents> <bm:document> <bm:var_name/> <bm:attributes> <bm:attribute/> </bm:attributes> </bm:document> </bm:documents> </bm:return_specific_attributes> </bm:transaction> </bm:responseIncludes> <bm:price_book_var_name>_default_price_book</bm:price_book_var_name> <bm:attributes/> </bm:configure> </soapenv:Body> </soapenv:Envelope>
configure - SOAP XML Response with Constraints
The following sample shows a configure response with constraints:
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Body> <bm:configureResponse xmlns:bm="urn:soap.bigmachines.com"> <bm:status> <bm:detail>Constraints exist for following attributes:Simple Action Boolean (simpleActionBoolean)</bm:detail> <bm:success>false</bm:success> <bm:message>Tue Jun 18 09:22:18 PDT 2019 - Unsuccessfully processed API for bigmachines</bm:message> </bm:status> <bm:item> <bm:segment>testbed</bm:segment> <bm:product_line>constraintRules</bm:product_line> <bm:model>constraintRules</bm:model> </bm:item> <bm:attributes> <bm:attribute bm:_variableName="_price_book_var_name" bm:dataType="Text" bm:hiddenByRule="false" bm:isArrayAttr="false" bm:isArrayControlAttr="false" bm:locked="false" bm:menuType="true" bm:setType="Set"> <bm:label>Price Book</bm:label> <bm:value>_default_price_book</bm:value> <bm:displayedValue>Base Price</bm:displayedValue> <bm:required/> <bm:previousValue/> <bm:constraints/> <bm:recommendations/> </bm:attribute> <bm:attribute bm:_variableName="simpleActionBoolean" bm:dataType="Boolean" bm:hiddenByRule="false" bm:isArrayAttr="false" bm:isArrayControlAttr="false" bm:locked="false" bm:menuType="false" bm:setType="None"> <bm:label>Simple Action Boolean</bm:label> <bm:value>true</bm:value> <bm:displayedValue>true</bm:displayedValue> <bm:required/> <bm:previousValue/> <bm:constraints> <bm:rule bm:_variableName="simpleAction"> <bm:comments>Invalid selection</bm:comments> <bm:constrainedValue>true</bm:constrainedValue> </bm:rule> </bm:constraints> <bm:recommendations/> </bm:attribute> <bm:attribute bm:_variableName="simpleActionTextSSMDoNotAllow" bm:dataType="Text" bm:hiddenByRule="false" bm:isArrayAttr="false" bm:isArrayControlAttr="false" bm:locked="false" bm:menuType="true" bm:setType="None"> <bm:label>Simple Action Text SSM Do Not Allow</bm:label> <bm:value/> <bm:displayedValue/> <bm:required/> <bm:previousValue/> <bm:constraints/> <bm:recommendations/> </bm:attribute> </bm:attributes> <bm:flow> <bm:rule bm:_variableName="constraintRules"> <bm:flowIndex>0</bm:flowIndex> </bm:rule> </bm:flow> <bm:price/> <bm:spare/> <bm:bom/> <bm:bomMapping/> </bm:configureResponse> </soapenv:Body> </soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <bm:userInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:sessionId>12E05E5C9FE4F5EF0C1D07E006B465F1</bm:sessionId> </bm:userInfo> <bm:category xmlns:bm="urn:soap.bigmachines.com">Configuration</bm:category> <bm:xsdInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:schemaLocation>https://pm.bigmachines.com/bmfsweb/pm/schema/v1_0/config/hiTech/managedHosting_managedHosting.xsd</bm:schemaLocation> </bm:xsdInfo> </soapenv:Header> <soapenv:Body> <bm:getBom xmlns:bm="urn:soap.bigmachines.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bm:item> <bm:segment>hiTech</bm:segment> <bm:product_line>managedHosting</bm:product_line> <bm:model>managedHosting</bm:model> </bm:item> <bm:attributes/> </bm:getBom> </soapenv:Body> </soapenv:Envelope>
getConfigurations - Input SOAP XML
<?xml version="1.0" encoding="UTF-8"?><soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <bm:userInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:sessionId>97s6YbsFLdLHLDKyRQ8dBnXGrZ2nPDh4hqKnwLNcn9KVCysGpZpt!-1431605720!1482419365223</bm:sessionId> </bm:userInfo> <bm:category xmlns:bm="urn:soap.bigmachines.com">AllPFConfiguration</bm:category> <bm:xsdInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:schemaLocation>https://yourCompany.bigmachines.com/bmfsweb/pm/schema/v1_0/config/Configuration.xsd</bm:schemaLocation> </bm:xsdInfo> </soapenv:Header> <soapenv:Body> <bm:getConfigurations xmlns:bm="urn:soap.bigmachines.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bm:sessionPreferences/> <bm:responseIncludes> <bm:attributes>true</bm:attributes> <bm:price>true</bm:price> <bm:spare>true</bm:spare> </bm:responseIncludes> <bm:configurationIds> <bm:configurationId/> </bm:configurationIds> </bm:getConfigurations> </soapenv:Body> </soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <bm:userInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:sessionId>9ED35D4B82D521B3650084C851D86B42</bm:sessionId> </bm:userInfo> <bm:category xmlns:bm="urn:soap.bigmachines.com">Configuration</bm:category> <bm:xsdInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:schemaLocation>https://myCompany.bigmachines.com/bmfsweb/pm/schema/v1_0/config/sUVSuperstore/midSizedSUV_midSizedSUV.xsd</bm:schemaLocation> </bm:xsdInfo> </soapenv:Header> <soapenv:Body> <bm:getPrice xmlns:bm="urn:soap.bigmachines.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bm:item> <bm:segment>sUVSuperstore</bm:segment> <bm:product_line>midSizedSUV</bm:product_line> <bm:model>midSizedSUV</bm:model> </bm:item> <bm:attributes/> </bm:getPrice> </soapenv:Body> </soapenv:Envelope> getBom - Input SOAP XML <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <bm:userInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:sessionId>9ED35D4B82D521B3650084C851D86B42</bm:sessionId> </bm:userInfo> <bm:category xmlns:bm="urn:soap.bigmachines.com">Configuration</bm:category> <bm:xsdInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:schemaLocation>https://myCompany.bigmachines.com/bmfsweb/pm/schema/v1_0/config/sUVSuperstore/midSizedSUV_midSizedSUV.xsd</bm:schemaLocation> </bm:xsdInfo> </soapenv:Header> <soapenv:Body> <bm:getBom xmlns:bm="urn:soap.bigmachines.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bm:item> <bm:segment>sUVSuperstore</bm:segment> <bm:product_line>midSizedSUV</bm:product_line> <bm:model>midSizedSUV</bm:model> </bm:item> <bm:attributes/> </bm:getBom> </soapenv:Body> </soapenv:Envelope>
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <bm:userInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:sessionId>9ED35D4B82D521B3650084C851D86B42</bm:sessionId> </bm:userInfo> <bm:category xmlns:bm="urn:soap.bigmachines.com">Configuration</bm:category> <bm:xsdInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:schemaLocation>https://myCompany.bigmachines.com/bmfsweb/pm/schema/v1_0/config/sUVSuperstore/midSizedSUV_midSizedSUV.xsd</bm:schemaLocation> </bm:xsdInfo> </soapenv:Header> <soapenv:Body> <bm:getSpare xmlns:bm="urn:soap.bigmachines.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bm:item> <bm:segment>sUVSuperstore</bm:segment> <bm:product_line>midSizedSUV</bm:product_line> <bm:model>midSizedSUV</bm:model> <bm:mandatory/> <bm:quantity/> </bm:item> <bm:price_book_var_name>_default_price_book</bm:price_book_var_name> <bm:attributes/> </bm:getSpare> </soapenv:Body> </soapenv:Envelope> deploy - Input SOAP XML Note: Deploy will is available for only <?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <bm:userInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:sessionId>9ED35D4B82D521B3650084C851D86B42</bm:sessionId> </bm:userInfo> <bm:category xmlns:bm="urn:soap.bigmachines.com">Configuration</bm:category> <bm:xsdInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:schemaLocation>https://myCompany.bigmachines.com/bmfsweb/pm/schema/v1_0/config/sUVSuperstore/midSizedSUV_midSizedSUV.xsd</bm:schemaLocation> </bm:xsdInfo> </soapenv:Header> <soapenv:Body> <bm:deploy xmlns:bm="urn:soap.bigmachines.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bm:product_family>survey</bm:product_family> <bm:emailTo/> </bm:deploy> </soapenv:Body> </soapenv:Envelope>
When you select deploy, you'll no longer have the option to select Punchin URL, you will just select the Product Family you wish to deploy.
<?xml version="1.0" encoding="UTF-8"?> <soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"> <soapenv:Header> <bm:userInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:sessionId>12E05E5C9FE4F5EF0C1D07E006B465F1</bm:sessionId> </bm:userInfo> <bm:category xmlns:bm="urn:soap.bigmachines.com">Configuration</bm:category> <bm:xsdInfo xmlns:bm="urn:soap.bigmachines.com"> <bm:schemaLocation>https://pm.bigmachines.com/bmfsweb/pm/schema/v1_0/config/hiTech/managedHosting_managedHosting.xsd</bm:schemaLocation> </bm:xsdInfo> </soapenv:Header> <soapenv:Body> <bm:getBom xmlns:bm="urn:soap.bigmachines.com" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> <bm:item> <bm:segment>hiTech</bm:segment> <bm:product_line>managedHosting</bm:product_line> <bm:model>managedHosting</bm:model> </bm:item> <bm:attributes/> </bm:getBom> </soapenv:Body> </soapenv:Envelope>