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 Sitemap > Administration Web > Services > Inbound REST API Access. 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"
      ]      }
}
Note: The request payload containing the multiple request objects as an array of objects is supported by the /data REST API. If a BusinessObject and Component needs to be configured to support multiObject , then include ?describemultiobject=yas include for Contact/Contact in above example

Supported 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>
Note: The operations mentioned here are generic operations supported using Rest APIs , for information regarding a particular Business Object please refer to its OpenAPI Specification.

Exposure of Siebel Applets – By adding View/Applet context to Business Component Requests

This REST API helps user execute any view/applet associated to same BO/BC at runtime.

Supported Query Parameters

For GET ALL operations
  • 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>
For GET By record ID operations
  • 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

  1. Example Insert Operation(POST)
    1. The request below will create a new account with details given
    2. POST URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/
    3. Request Body
      {
      
         "Name": "AccountData",
      
         "Primary Organization": "Millennium Institutional Finance Services IF ENU",
      
         "Location": "HQ-Distribution",
      
          "Description": "AccountData",
      
         "Primary Organization Id": "1-1DG"
      
      }
  2. Example Inserting a child(PUT)
    1. The request below will add a contact to an existing account.
    2. PUT URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A613B/Contact
    3. 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"
      
      }
  3. Example Upsert Operation
    1. The request below will update the fields of an existing account.
    2. PUT URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A613B/
    3. Request body
      {  
      
         "Name": "AccountData",
      
         "Primary Organization": "Millennium Institutional Finance Services IF ENU",
      
         "Location": "HQ-Distribution",
      
          "Description": "AccountDataUpdate",
      
         "Primary Organization Id": "1-1DG"
      
      }
  4. Example Updating a child
    1. The request below will update the fields of opportunity of a given account.
    2. PUT URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A613B/Opportunity
    3. Request body

      {
      
          "Id":"123456",
      
          "Name":"NewOpp",
      
          "Currency Code": "AUD",
      
          "Primary Organization":"Default Organization"
      
      }
    1. Example Query Operation (GET)
      1. This will Query for an account with ID 1LS-9XKU and return its details. Query or GET operations generally will not have request body.
      2. GET URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X
  5. Example Query Operations with Search Specifications
    1. Below requests will return the details of the records as per the search specification given in the query param searchspec
    2. GET URLs
      1. https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X/Contact/?searchspec=([First Name] LIKE 'J*' AND [Last Name] LIKE 'A*')
      2. https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X/data/Account/Account/?searchspec=([Location] LIKE 'HQ*' AND [Account Status] = 'Active')
      3. https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X/?searchspec=[Location] LIKE 'S*'
  6. Example Query Operations with fields list to be returned
    1. The query below will return values only for the "Name", "Location" and "Account Status" fields of the account with Id = "88-3A5H6X"
      1. GET URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X?fields=Name, Location, Account Status
    2. 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"
      1. GET URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X/Contact?fields=First Name, Last Name
  7. Example Delete Operation
    1. The request below will delete a given account.
    2. Delete URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X
  8. Example Query Operation (GET) backed by view and aplet
    1. This will Query for an account with ID 1LS-9XKU and return its details. Query or GET operations generally will not have request body.
    2. GET URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Account/Account/88-3A5H6X
      1. Headers
        1. view - All Account List View
        2. applet - SIS Account List Applet
  9. Example Multi Object Request Operation.
    1. Insert Operation(POST)

      1. The request below will create a new account with details given

      2. POST URL - https://<hostname>:<port>/<context>/openintegration/v1.0/data/Contact/Contact/

      3. 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"
            }
        ]