Users can use the REST API to access Siebel CRM Business Objects. Users can perform Query, Insert, Update, and Delete operations on the Siebel Business Objects using REST API requests over HTTP as described in this section. Users can expose any Siebel Business Object as REST API by enabling REST access via . Refer to Access Control UI in Supporting RESTful Access to Siebel Business Objects Dynamically
Configuring Business Object APIs
Example configuration in config.json below shows multiple Business Objects and Business Components exposed
"apigen": {
"resources": {
"openintegration/v1.0/data": [
"Account/Account",
"Account/Account/account_key/Contact",
"Contact/Contact?describemultiobject=y",
"Opportunity/Opportunity",
"Opportunity/Opportunity/id/Opportunity Product",
"Opportunity/Opportunity/id/Quote",
"Quote/Quote/id/Order Entry - Orders",
"Service Agreement/Service Agreement",
"Service Agreement/Service Agreement/id/Agreement Entitlement",
"Service Agreement/Service Agreement/id/Agreement Entitlement/id/LS Medical Entitlement Benefits",
"Account/Service Account/id/Asset Mgmt - Asset (Order Mgmt)",
"Account/Account/id/Com Invoice Profile",
"Account/Account/Quote",
"Quote/Quote",
"Quote/Quote/Cfg Empty Cx Instance Vbc",
"Quote/Quote/id/Service Agreement"
] }
}
?describemultiobject=yas include for Contact/Contact in above
exampleSupported Operations
-
Retrieve all records
- Usage - GET : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>
- Retrieve single record
- Usage - GET : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>/<record-id>
- Create single record
- Usage - POST : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>
-
Update single record
- Usage - PUT : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>/<record-id>
- Delete single record
- Usage - Delete : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>/<record-id>
Exposure of Siebel Applets – By adding View/Applet context to Business Component Requests
-
NOTE that all the features of Applet as resource are not available when using this type of request:
- Request URL -https://host:port/<context>/openintegration/v1.0/data/<BO>/<BC>
- Example Endpoint: “Quote” Business Component under “Quote”
Business Object in the context of “Quote List Applet” within the
“Quote List View” :
- https://host:port/<context>/openintegration/v1.0/data/Quote/Quote
- Request Headers:
- view=Quote List View
- applet=Quote List Applet
- Request Headers:
- https://host:port/<context>/openintegration/v1.0/data/Quote/Quote
Supported Query Parameters
- pageSize - if specified , Siebel Open Integration tries to retrieve
specified number of records.
- Usage : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>?pageSize=<sizeOfRecords>
- startRowNum - if specified , Siebel Open Integration will try to
retrieve records from specified row.
- Usage: https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>?startRowNum=<startingRowNumber>
- fields - if specified , Siebel Open Integration will return records
with only specified fields.
- Usage : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>?fields=<Comma separated list of fields names>
- sortSpec - if specified , Siebel Open Integration will sort records
based on specified order and return results
- Usage : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>?sortSpec=<<field>:<asc/desc>>
- searchSpec - if specified , Siebel Open Integration will search for
records based on searchSpec
- Usage : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>?searchSpec=<search string>
- fields - if specified , Siebel Open Integration will return records
with only specified fields.
- Usage : https://<hostname:port>/<context>/openintegration/v1.0/data/<business-object-name>/<business-component-name>/<record-id>?fields=<Comma separated list of fields names>
Verb to Operation Mapping
The following table shows the http verb to the Siebel operation mapping.
| HTTP Verb | Siebel operation |
|---|---|
| GET | Query |
| POST | Insert |
| PUT | Upsert |
| DELETE | Delete |
Examples
- Example Insert Operation(POST)
- The request below will create a new account with details given
- POST URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/
- Request Body
{ "Name": "AccountData", "Primary Organization": "Millennium Institutional Finance Services IF ENU", "Location": "HQ-Distribution", "Description": "AccountData", "Primary Organization Id": "1-1DG" }
-
Example Inserting a child(PUT)
- The request below will add a contact to an existing account.
- PUT URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A613B/Contact
- Request Body
{ "Employee Number":"1231", "Employer Name":"BXM", "Bill To First Name":"MAYANew", "Bill To Last Name": "ABRAHAMNew", "Primary Organization Id":"0-R9NH", "Account Integration Id":"", "Job Title":"", "Person UId":"0CR-1MF5Z611", "Primary Organization":"Default Organization", "Personal Contact":"N" }
-
Example Upsert Operation
- The request below will update the fields of an existing account.
- PUT URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A613B/
- Request body
{ "Name": "AccountData", "Primary Organization": "Millennium Institutional Finance Services IF ENU", "Location": "HQ-Distribution", "Description": "AccountDataUpdate", "Primary Organization Id": "1-1DG" }
-
Example Updating a child
- The request below will update the fields of opportunity of a given account.
- PUT URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A613B/Opportunity
-
Request body
{ "Id":"123456", "Name":"NewOpp", "Currency Code": "AUD", "Primary Organization":"Default Organization" }
-
- Example Query Operation (GET)
- This will Query for an account with ID 1LS-9XKU and return its details. Query or GET operations generally will not have request body.
- GET URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X
- Example Query Operation (GET)
-
Example Query Operations with Search Specifications
- Below requests will return the details of the records as per the search specification given in the query param searchspec
- GET URLs
- https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X/Contact/?searchspec=([First Name] LIKE 'J*' AND [Last Name] LIKE 'A*')
- https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X/data/Account/Account/?searchspec=([Location] LIKE 'HQ*' AND [Account Status] = 'Active')
- https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X/?searchspec=[Location] LIKE 'S*'
-
Example Query Operations with fields list to be returned
- The query below will return values only for the "Name",
"Location" and "Account Status" fields of the account with Id =
"88-3A5H6X"
- GET URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X?fields=Name, Location, Account Status
- The query below will return values only for the "First Name" and
"Last Name" fields of all the contacts in the account with Id =
"88-3A5H6X"
- GET URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X/Contact?fields=First Name, Last Name
- The query below will return values only for the "Name",
"Location" and "Account Status" fields of the account with Id =
"88-3A5H6X"
-
Example Delete Operation
- The request below will delete a given account.
- Delete URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X
-
Example Query Operation (GET) backed by view and aplet
- This will Query for an account with ID 1LS-9XKU and return its details. Query or GET operations generally will not have request body.
- GET URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X
- Headers
- view - All Account List View
- applet - SIS Account List Applet
- Headers
-
Example Multi Object Request Operation.
-
Insert Operation(POST)
-
The request below will create a new account with details given
-
POST URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Contact/Contact/
- Request body
[ { "First Name": "Oracle10 ", "Last Name": "Oracle10", "Primary Organization Id": "0-R9NH3", "Person UId": "0CR-1MF5Z71", "Primary Organization": "Default Organization7", "Personal Contact": "N" }, { "First Name": "Oracle11 ", "Last Name": "Oracle11", "Primary Organization Id": "0-R9NH4", "Person UId": "0CR-1MF5Z72", "Primary Organization": "Default Organization8", "Personal Contact": "N" } ]
-
-