4Using the Siebel REST API

About Using the Siebel REST API

Each topic in this chapter provides both JSON and XML examples that demonstrate how to use the Siebel REST API calls to interact with Siebel Server resources.

The example REST API calls use the following format:

  • An example request, with the following information:

    • URI. The location of the Siebel REST API resource on the Siebel Server. For more information about Siebel REST API URL format, see About Siebel CRM REST API URI Formats.

    • HTTP Method. The HTTP method used to call the Siebel REST API to interact with the Siebel Server. For more information about supported HTTP Methods, About Supported HTTP Methods.

    • Content-Type. The part of the HTTP header that indicates the media type of the data that is sent by the Siebel REST API HTTP methods. For more information about supported HTTP headers, see About Supported HTTP Header Fields.

    • Request Body. The code example for the Siebel REST API request.

  • An example response, with the following information:

    • HTTP Code. The HTTP status code returned to indicate whether the request was successful or if there was an error. For more information about supported HTTP codes, About Standard HTTP Status Codes and Error Messages.

    • Content-Type. The part of the HTTP header that indicates the media type of the data that is returned by the Siebel REST API HTTP methods. For more information about supported HTTP headers, see About Supported HTTP Header Fields.

    • Response Body. The code example for the Siebel REST API response.

Note: Because of the length of REST responses, some REST responses have been omitted.

Querying for a Siebel CRM Repository Resource

You can query for a Siebel CRM Repository Resource by sending a HTTP GET request to the Repository Resource's URI.

The following request returns the properties of the WriteRecord control configured in the SIS Account List Applet applet:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet /Control/WriteRecord

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Querying for a Siebel CRM Repository Resource with a Search Specification

You can query for a particular Siebel CRM Repository Resource by stating the SearchSpec parameter in the request.

The following request queries for Business Components matching the criteria specified in the parameters:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Business Component?SearchSpec = [Name] LIKE ‘B*’

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Querying for a Siebel CRM Repository Resource to Return a Subset of Fields

You can query for a Siebel CRM Repository Resource to have a subset of fields in the response. When you query for a repository object, the response lists all the fields and links to child objects. If you specify a subset of fields in the request, then this filters the response to contain only the parameters listed in the query parameter.

The following request returns values for the Name, ProjectName, and Comments fields in SIS Account List Applet:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet?fields=Name,ProjectName,Comments

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Querying for a Siebel CRM Repository Resource Using the ViewMode Access Control Parameter

You can control the access to view and modify the Repository Resource by using the ViewMode parameter. This parameter controls operations based on Person, Position or Organization.

The following request queries for a SIS Account List Applet, with the ViewMode parameter set to Personal. This allows access to view the record only to the person who has created the record in the specified workspace.

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet?ViewMode="Personal"

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Inserting a Siebel CRM Repository Resource

You can insert a Siebel CRM Repository Resource by sending a HTTP POST request to the Repository Resource's URI.

The following query request inserts a new applet:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet_1

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
         "Name": "SIS Account List Applet_1",
         "ProjectName":"Siebel Rest",
         "UpgradeBehavior":"Preserve",
         "Comments":"SIS Account List Applet: Added by Rest"
    }

Upserting a Siebel CRM Repository Resource

You can insert or update a Siebel CRM Repository Resource by sending a HTTP PUT request to the resource's URI.

The following request inserts or, if it already exists, updates, a child record, that is, a WriteRecord control, to SIS Account List Applet_1:

  • URL: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet_1/Control/WriteRecord

  • HTTP Method: PUT

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
         "Name": "WriteRecord",
         "ProjectName":"Siebel Rest",
         "UpgradeBehavior":"Preserve",
         "Comments":"SIS Account List Applet: Added by Rest"
    }

Deleting a Siebel CRM Repository Resource

You can delete a Siebel CRM Repository Resource by sending a HTTP DELETE request to the resource's URI.

The following request deletes the SIS Account List Applet_1 applet:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet_1

  • HTTP Method: DELETE

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Using the Describe Parameter to Return a Catalog of Repository Objects

You can query for a catalog of top level repository objects in a given workspace by sending a HTTP GET request with the describe parameter appended.

The following query requests a catalog of all top level repository objects, paths to retrieve definitions or catalog of each object, various responses to the request with HTTP codes, and so on.

  • URI: http://ServerName:port/siebel/v1.0/workspace/main/describe

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type: application/json

  • Response body:
    {
      "swagger": "2.0",
      "info": 
    {
    },
      "schemes": 
      [
        "http",
        "https" 
      ],
      "securityDefinitions": 
      {
        "Basic Auth": 
        {
          "type": "basic"
        }
      },
      "externalDocs": 
      {
        "description": "OpenAPI",
        "url": "https://openapis.org"
      },
      "host": "host:port number",
      "basePath": "/siebel/v1.0",
      "tags": [
      {
        "name": "workspace/main/Applet/describe",
        "description": "Catalogging of Applet",
        "externalDocs": 
        {
          "description": "Find Out More",
          "url": ""
        }
      },
      {
        "name": "workspace/main/Application/describe",
        "description": "Cataloging of Application",
        "externalDocs":
        {
          "description": "Find Out More",
           "url": ""
        }
      }
      ],
      "paths": 
      {
        "/workspace/main/Applet/describe": 
        {
          "get": 
         {
       "tags": [
       "workspace/main/Applet/describe"
       ],
       "summary": "",
       "description": "",
       "operationId": "workspace/main/Applet/describe",
       "produces": [
         "application/xml",
         "application/json"
       ],
      "responses": {                
        "200": {"description": "Successful Operation"},
        "204": {"description": "No Resource Found"},
        "404": {"description": "There is no data for the requested resource"},
        "500": {"description": "Internal Server Error"}
        },
      "parameters": [],
      "security": [
      {
       "Basic Auth": [],
       "OAuth 2.0": []
      }
      ]
      }
     }
    }

Querying for Repository Resource Metadata

You can query for the description of any repository object by appending the describe parameter to the object name. The response lists all the fields, paths for child objects, various responses with HTTP codes, and so on.

The following request returns applet repository object metadata using the describe parameter:

  • URI: http://ServerName:port/siebel/v1.0/workspace/main/Applet/describe

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type: application/json

  • Response body:
    {
      "swagger": "2.0",
      "info": {},
      "schemes": [],
      "securityDefinitions": {},
      "externalDocs": {},
      "host": "host:port number",
      "basePath": "/siebel/v1.0",
      "definitions": {},
      "tags": [],
      "paths": {
        "/workspace/main/Applet/{key}/Applet Browser Script/describe": {
      "get": {
     "tags": [
        "workspace/main/Applet/{key}/Applet Browser Script/describe"
        ],
      "summary": "",
      "description": "",
      "operationId": "workspace/main/Applet/{key}/Applet Browser Script/describe",
      "produces": [
        "application/xml",
        "application/json"
        ],
      "responses": {
        "200": {"description": "Successful Operation"},
        "204": {"description": "No Resource Found"},
        "404": {"description": "There is no data for the requested resource"},
        "500": {"description": "Internal Server Error"}
        },
      "parameters": [
      {
        "name": "key",
        "in": "path",
        "description": "",
        "required": true,
        "default": "key",
        "type": "string"
      }
      ],
      "security": [
      {
        "Basic Auth": [],
        "OAuth 2.0": []
      }
      ]
      }
      }
     }
    }

Querying for Child Repository Object MetaData

You can query for child repository objects metadata, such as required fields, properties of each field, catalog URLs for grandchildren, response format, and so on, by appending the describe parameter to the object name.

The following request queries for metadata belonging to the child of the applet repository object called Control.

  • URI: http://ServerName:port/siebel/v1.0/workspace/main/Applet/{key}/Control/describe

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type: application/json

  • Response body:
    {
      "swagger": "2.0",
      "info": {},
      "schemes": [],
      "securityDefinitions": {},
      "externalDocs": {},
      "host": "host:port number",
      "basePath": "/siebel/v1.0",
      "definitions": {
      "workspace_main_Applet_{key}_Control_": {
        "type": "object",
        "required": [
          "Name",
          "Type",
          "Show Popup",
          "HTML Row Sensitive",
          "Parent Id",
          "HTML Default Control"
          ],
        "properties": {
          "ActiveX Bind Property": {
          "maxLength": 75,
          "x-siebel-precision": "0",
          "type": "string",
          "x-siebel-datatype": "DTYPE_TEXT",
          "x-siebel-scale": "0",
          "title": "ActiveX Bind Property"
         },
      "tags": [],
      "paths":{}
    }

Using Siebel REST API to Access Siebel Business Objects JSON Examples

You can use the Siebel 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.

This topic includes the following information:

Querying for a Siebel CRM Business Component

You can query for a Siebel CRM Business Component by sending a HTTP GET request to the resource's URI.

The following request queries for an Account Business Component record on the Siebel CRM Server, which has the ID: 1LS-9XKU:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account/1LS-9XKU

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Querying for a Siebel CRM Business Component with a Search Specification

You can query for a Siebel CRM Business Component by sending a HTTP GET request with a search specification in the resource's URI.

The following request retrieves specific contacts associated with the account, ID 1-32HG, using the searchspec parameter appended to the request URI:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account/1-32HG/Contact/?searchspec=([First Name] LIKE 'J*' AND [Last Name] LIKE 'A*')

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

Querying for a Siebel CRM Business Component Record to Return a Subset of Fields

When you query for a Business Component, the response lists all the fields and links to child components. If you specify a subset of fields in the request, then this filters the response to contain only the fields listed in the query parameter.

The following query fetches values for only the Name, Location and Account Status fields of the Account record with the ID: ID 1-32HG:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account/1-32HG?fields=Name, Location, Account Status

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

Inserting a Siebel CRM Business Component

You can insert a Business Component record by sending a HTTP POST request over REST.

The following request inserts a new Account record:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:

{ 
   "Name": "AccountExample", 
		"Primary Organization": "Millennium Institutional Finance Services IF ENU", 
		"Location": "HQ-Distribution", 
		"Description": "AccountData", 
		"Primary Organization Id": "1-1DG", 
}

Inserting Multiple Siebel CRM Business Components

You can insert multiple Business Component records by sending a single HTTP POST request to the resource's URI. The maximum number of records you can insert is 100.

The following request creates multiple new Account records on the Siebel CRM Server:

  • URL: https://ServerName:port/siebel/v1.0/data/Account/Account

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:

    [
        {
            "Name": "AccountExample1",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Location": "HQ-Distribution",
            "Description": "AccountData 1",
            "Primary Organization Id": "1-1DG"
        },
        {
            "Name": "AccountExample2",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Location": "HQ-Distribution",
            "Description": "AccountData 2",
            "Primary Organization Id": "1-1DG",
        }
    ]
  • Response body with response code: 200 OK:
    [
        {
            "Name": "AccountExample1",
            "Id": "88-1V80SZ",
            "Location": "HQ-Distribution",
            "Primary Organization Id": "1-1DG",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Description": "AccountData 1",
            "Link": {
                    "rel": "self",
                    "href": "https://HostName:port/siebel/v1.0/data/Account/Account/88-1V80SZ",
                    "name": "Account"
            }
        },
        {
            "Name": "AccountExample2",
            "Id": "88-1V80T2",
            "Location": "HQ-Distribution",
            "Primary Organization Id": "1-1DG",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Description": "AccountData 2",
            "Link": {
                     "rel": "self",
                     "href": "https://HostName:port/siebel/v1.0/data/Account/Account/88-1V80T2",
                     "name": "Account"	
            }
        }
    ]

Inserting Multiple Siebel CRM Business Components When a Record Already Exists

When you insert multiple Business Component records, it is possible that a record with the same user key combination already exists. When this happens, the entire request is rejected, none of the records are inserted, and the error message in the following example is displayed.

The following details describe a request that is trying to create two new Account records. However, one of these Account record already has the same user key as an existing record on the Siebel CRM Server.

  • URL: https://ServerName:port/siebel/v1.0/data/Account/Account

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:

    [
        {
            "Name": "AccountExample1",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Location": "HQ-Distribution",
            "Description": "AccountData 1",
            "Primary Organization Id": "1-1DG"
        },
        {
            "Name": "AccountExample3",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Location": "HQ-Distribution",
            "Description": "AccountData 3",
            "Primary Organization Id": "1-1DG"
        },
        {
            "Name": "AccountExample4",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Location": "HQ-Distribution",
            "Description": "AccountData 4",
            "Primary Organization Id": "1-1DG"
        }
    ]
    
  • Response body with a status code: 409 (Conflict)

    {
        "ERROR": "Insert operation on integration component 'Account' failed because a matching record in business component 'Account' with search specification '[Location] = \"HQ-Distribution\" AND [Name] = \"AccountExample1\" AND [Primary Organization] = \"Millennium Institutional Finance Services IF ENU\"' was found.(SBL-EAI-04383)"
    }
    

Inserting a Siebel CRM Child Business Component

You can insert a Siebel CRM child Business Object by sending a HTTP PUT request to the resource's URI.

The following request inserts a Contact child record into an existing Account Business Component:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account/88-431RF/Contact

  • HTTP Method: PUT

  • Content-Type: application/json

  • Authorization: Basic

  • 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"
}

Inserting Multiple Siebel CRM Child Business Components

You can insert multiple Siebel CRM child Business Components by sending a HTTP PUT request to the resource's URI.

The following request inserts multiple Contacts under an existing Account record:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account/1-1/Contact

  • HTTP Method: PUT

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
      "Contact":[
      {  
        "Primary Organization Id":"1-1DG",
        "Primary Organization":"Default Organization",
        "First Name":"Ken",
        "Last Name": "Bass",
        "Id":"12345"
      },
      {  
        "Primary Organization Id":"1-1DG",
        "Primary Organization":"Default Organization",
        "First Name":"test",
        "Last Name": "test1",
        "Id":"123456"
      }
      ]
    }
    

Upserting a Siebel CRM Business Component

You can insert or update a Siebel CRM Business Component by sending a HTTP PUT request to the resource's URI.

The following request updates the Description field of an existing Account Business Component record:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account/88-431RF

  • HTTP Method: PUT

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    { 
      "Name": "AccountExample", 
      "Primary Organization": 
      "Millennium Institutional Finance Services IF ENU", 
      "Location": "HQ-Distribution", 
      "Description": "AccountDataUpdate", 
      "Primary Organization Id": "1-1DG" 
    }

Upserting Multiple Siebel CRM Business Components

You can insert or update multiple Business Component records by sending a single HTTP PUT request to the resource's URI. The maximum number of records you can insert or update is 100. You use the ID field as the unique key to identify the record. This field, and the other field values to be updated, are mandatory. If the record with this ID field exists in the database, then the fields are updated. Otherwise, the record is inserted if all the user key fields are present in the request body.

The following request updates the existing Account record on the Siebel CRM Server:

  • URL: https://ServerName:port/siebel/v1.0/data/Account/Account

  • HTTP Method: PUT

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    [
        {
            "Name": "AccountExample1",
            "Id": "88-1V80SZ",
            "Location": "HQ-Distribution",
            "Primary Organization Id": "1-1DG",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Description": "Updated AccountData 1"
        },
        {
            "Name": "AccountExample2",
            "Id": "88-1V80T2",
            "Location": "HQ-Distribution",
            "Primary Organization Id": "1-1DG",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Description": "Updated AccountData 2"
        }
    ]
    
  • Response body with response code: 200 OK:
    [
        {
            "Name": "AccountExample1",
            "Id": "88-1V80SZ",
            "Location": "HQ-Distribution",
            "Primary Organization Id": "1-1DG",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Description": "Updated AccountData 1",
            "Link": {
                     "rel": "self",
                     "href": "https://HostName:port/siebel/v1.0/data/Account/Account/88-1V80SZ",
                     "name": "Account"
            }
        },
        {
            "Name": "AccountExample2",
            "Id": "88-1V80T2",
            "Location": "HQ-Distribution",
            "Primary Organization Id": "1-1DG",
            "Primary Organization": "Millennium Institutional Finance Services IF ENU",
            "Description": "Updated AccountData 2",
            "Link": {
                    "rel": "self",
                    "href": "https://HostName:port/siebel/v1.0/data/Account/Account/88-1V80T2",
                    "name": "Account"
            }
        }
    ]
    

Upserting a Siebel CRM Child Business Component

You can insert or update a Siebel CRM child Business Object by sending a HTTP PUT request to the resource's URI.

The following request inserts a new Opportunity record associated to an Account with the ID 88-431RF:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account/88-431RF/Opportunity

  • HTTP Method: PUT

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
      "Id":"123456",
      "Name":"NewOpp",
      "Currency Code": "AUD",
      "Primary Organization":"Default Organization"
    }
    

Deleting a Siebel CRM Business Component

You can delete a Siebel CRM Business Component record by sending a HTTP DELETE request to the resource's URI.

The following request deletes an Account record on the Siebel CRM Server:

  • URL: http://ServerName:port/siebel/v1.0/data/Account/Account/88-43CGR

  • HTTP Method: DELETE

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Deleting Multiple Siebel CRM Business Components

You can delete multiple Business Component records by sending a single HTTP DELETE request to the resource's URI. The maximum number of records you can delete is 100.

The following request deletes existing Accounts on the Siebel CRM Server using the ID field as the identifier:

  • URL: https://ServerName:port/siebel/v1.0/data/Account/Account

  • HTTP Method: DELETE

  • Content-Type: application/json

  • Authorization: Basic

  • Request Body: 200 OK:

    [
        {
            "Id": "88-1V80SZ"
        },
        {
            "Id": "88-1V80T2"
        }
    ]
    
  • Response body with status code: 200 OK: None

Deleting Multiple Siebel CRM Business Components When A Record is Deleted

You can delete multiple Business Component records by sending a single HTTP DELETE request to the resource's URI. The maximum number of records you can delete is 100. When you delete multiple Business Component records, it is possible that a record ID is invalid, or that a record has already been deleted and no longer exists in the database. When this happens, the entire request is rejected, none of the records are deleted, and the error message in the following example is displayed.

The following request deletes multiple Account records where a record ID is invalid, or the record associated with the ID no longer exists in the database:

  • URL: https://ServerName:port/siebel/v1.0/data/Account/Account

  • HTTP Method: DELETE

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:

    [
        {
            "Id": "88-1V80SZ"
        },
        {
            "Id": "88-1V80T2"
        },
        {
            "Id": "88-1V80L3"
        }
    ]
    
  • Response body with status code: 400 Bad Request:

    {
        "ERROR": "No rows retrieved corresponding to the business component 'Account'(SBL-EAI-04378)"
    }
    

Delete Multiple Siebel CRM Business Components with Identifier in the URL and in the Request Body

You can delete multiple Business Component records by sending a single HTTP DELETE request to the resource's URI. The maximum number of records you can delete is 100. If the URL and request body provides the record ID, then Siebel REST ignores the ID in the URL and uses the ID provided in the request body. In this case, Siebel REST only deletes the records with IDs specified in the request body.

The following request deletes multiple Account records on the Siebel CRM Server by passing the IDs specified in the URL and in the request body.
Note: In this example, the ID provided in the URL is ignored, and the records for which IDs are provided in the request body are deleted.
:
  • URL: https://ServerName:port/siebel/v1.0/data/Account/Account/88-1V80SZ

  • HTTP Method: DELETE

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:

    [
        {
            "Id": "88-1V80T2"
        },
        {
            "Id": "88-1V80L3"
        }
    ]
    
    
  • Response body with status code: 200 OK: None

Querying for a Siebel CRM Business Component by Specifying the ViewMode Parameter

You can control read and write access to a Siebel CRM Business Component by specifying theViewMode parameter in the HTTP GET request. It controls access to operations based on Person, Position, or Organization.

The following request queries for an Account, using the ViewMode="Sales Rep" access control. This gives access to the user to view only those Accounts belonging to a specific sales team:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/?ViewMode="Sales Rep"

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

Note: If you do not specify the ViewMode parameter, then all accounts belonging to the SalesRep role are returned by default.

Using the Describe Parameter to Return a REST Resource’s Metadata

You can retrieve metadata description in Open API format (formerly known as SWAGGER) for any REST resource by simply appending the describe parameter to the URL and sending a GET request.

The following request uses the describe parameter to return REST resource metadata:

  • URI: <REST_RESOURCE_URL>/describe

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Using the Describe Parameter to Return Business Component Metadata

The Open API resource, describe, is used to retrieve Business Component metadata. The result contains a catalog of fields configured in the Business Component, and it also lists the operations which can be performed on the Business Component, request and response structure, path to catalog of all child Business Components, and so on.

The following request retrieves the metadata description of an Account Business Component using the describe parameter:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/describe

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type:

  • Response body:
     { 
      "definitions":{
        "data_Account_Account_":{
         "type":"object",
         "required":
         "properties":
         }
      },
      "tags":[
      {
        "name":"data/Account/Account/",
        "description":"Operations available on data/Account/Account/",
        "externalDocs":{
        "description":"Find Out More",
        "url":""
      }
      },
      "paths":{
        "/data/Account/Account/":{
        "get":{
       "tags":[
       "data_Account_Account_"
       ],
      "summary":"",
      "description":"",
      "operationId":"data_Account_Account_/get",
      "produces":[
      "application/xml",
      "application/json"
      ],
      "responses":{
        "200":{"description":"Successful Operation"},
        "204":{"description":"No Resource Found"},
        "404":{"description":"There is no data for the requested resource"},
        "500":{"description":"Internal Server Error"}
        },
      "parameters":[
      {
        "name":"key",
        "in":"path",
        "description":"",
        "required":true,
        "type":"string"
      }
      ],
      "security":[
      {
        "Basic Auth":[],
        "OAuth 2.0":[]
      }
      ]
      }  
     }
    }
    }

Using the Describe Parameter to Return Child Business Component Metadata

You use the Open API describe parameter to retrieve metadata description for a child Business Component by appending it to a HTTP GET request to the resource's URI. It lists all the fields, path to catalog of grandchildren, and request and response structure with HTTP codes.

The following request uses the describe parameter to return child Business Component metadata, that is, the Contact child Business Component Contact, under the Account parent Business Component:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/1-6/Contact/describe

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type: application/json

  • Response body:
    {
    "definitions":{  
       "data_Account_Account_{key}_Contact_":{  
          "type":"object",
          "required":[],
          "properties":[],
          "tags":[  
             {  
                "name":"data/Account/Account/{key}/Contact/",
                "description":"Operations available on data/Account/Account/{key}/Contact/",
                "externalDocs":{  
                   "description":"Find Out More",
                   "url":""
                }
             },
             "paths":{  
                "/data/Account/Account/{key}/Contact/":{  
                   "get":{  
                      "tags":[  
                         "data_Account_Account_{key}_Contact_"
                      ],
                      "summary":"",
                      "description":"",
                      "operationId":"data_Account_Account_{key}_Contact_/get",
                      "produces":[  
                         "application/xml",
                         "application/json"
                      ],
                      "responses":{  
                         "200":{"description":"Successful Operation"},
                         "204":{"description":"No Resource Found"},
                         "404":{ "description":"There is no data for the requested resource"},
                         "500":{"description":"Internal Server Error"}
                      },
                      "parameters":[  
                         {  
                            "name":"key",
                            "in":"path",
                            "description":"",
                            "required":true,
                            "type":"string"
                         }
                      ],
                      "security":[  
                         {  
                            "Basic Auth":[],
                            "OAuth 2.0":[]
                         }
                      ]
                   },
                   "post":{  
                      "tags":[  
                         "data_Account_Account_{key}_Contact_"
                      ],
                      "summary":"",
                      "description":"",
                      "operationId":"data_Account_Account_{key}_Contact_/post",
                      "produces":[  
                         "application/xml",
                         "application/json"
                      ],
                      "consumes":[  
                         "application/xml",
                         "application/json"
                      ],
                      "responses":{  
                         "200":{"description":"Successful Operation"},
                         "204":{"description":"No Resource Found"},
                         "404":{"description":"There is no data for the requested resource"},
                         "500":{"description":"Internal Server Error"}
                      },
                      "parameters":[  
                         {  
                            "in":"body",
                            "name":"body",
                            "description":"",
                            "required":true,
                            "schema":{  
                               "$ref":"#/definitions/data_Account_Account_{key}_Contact_"
                            }
                         }
                      ],
                      "security":[  
                         {  
                            "Basic Auth":[],
                            "OAuth 2.0":[]
                         }
                      ]
                   }
                }
             }
    
    }

Using the Describe Parameter to Return Open API Description of Multiple Object Operations

The Open API resource, describe, is used to retrieve Business Component metadata. You can retrieve information on multiple object operations Siebel CRM business component API Doc by sending a single HTTP GET request to the resource's URI.

The following request retrieves the details of multiple object operations for Account APIs SWAGGER documentation.
Note: In this example, the query parameter describemultiobject=y indicates that the user is requesting an Open API description for multiple object REST API.
  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/describe?describemultiobject=y

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Response body: This returns a description in Open API (SWAGGER) format.

Using the Uniformresponse Parameter

When the response of a GET REST request has a single record, it also has a single JSON object. This JSON object is identifiable because it starts with curly brackets. However, if the response has multiple records, then response records are enclosed in a json array, which starts with square brackets.

If you want your response enclosed in a json array, regardless of the number of records, then you must use the uniformresponse parameter and you must set the value to either yes or y.

Querying for All Contacts in an Account Without Using Uniformresponse to Return a Single Record

You can query for a Siebel CRM Business Component by sending a HTTPS GET request to the resource’s URI, and by specifying that the response is either an array, or a list of items. You can do this by using the uniformresponse parameter which has the following values:

  • yes or y. This returns the response as an array enclosed in square brackets.

  • no or n. This returns the response as list of items enclosed in curly brackets.

The following request queries for all Contact records in a given Account record from the Siebel CRM Server, without using the uniformresponse parameter. There is only one Contact associated to Account, this returns a single record in the response:
  • URI: GET https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact?fields=First Name, Last Name&childlinks=Account,Position,Organization

  • HTTP Method: GET

  • Content Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:
  • HTTP Code: 200

  • Content Type:

  • Response body:
    {
        "Id": "0CR-1MF5Z6",
        "First Name": "JOHN",
        "Last Name": "SMITH",
        "Link": [
                {
                 "rel": "self",
                 "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6",
                  "name": "Contact"
            },
            {
                 "rel": "canonical",
                 "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6",
                 "name": "Contact"
            },
            {
                 "rel": "parent",
                 "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND",
                 "name": "Account"
            },
            {
                 "rel": "child",
                 "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Position",
                 "name": "Position"
            },
            {
                 "rel": "child",
                 "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Organization",
                "name": "Organization"
            },
            {
                 "rel": "child",
                 "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Account",
                 "name": "Account"
            }
        ]
    }
    Note: The response in this example is not in an array because the response contains only one record.

Querying for All Contacts in an Account Using Uniformresponse to Return Multiple Records

You can query for a Siebel CRM component to return its responses in an array by sending a HTTPS GET request to the resource’s URI, and by setting the uniformresponse parameter to yes.

The following request queries for all Contact records in a given Account record from the Siebel CRM Server by using the uniformresponse parameter:
  • URI: GET https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact?fields=First Name, Last Name&childlinks=Account,Position,Organization&uniformresponse=yes

  • HTTP Method: GET

  • Content Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:
  • HTTP Code: 200

  • Content Type:

  • Response body:
    {
        "items": [
            {
                "Id": "0CR-1MF5Z6",
                "First Name": "JOHN",
                "Last Name": "SMITH",
                "Link": [
                    {
                        "rel": "self",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6",
                        "name": "Contact"
                    },
                    {
                        "rel": "canonical",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6",
                        "name": "Contact"
                    },
                    {
                        "rel": "parent",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND",
                        "name": "Account"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Position",
                        "name": "Position"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Organization",
                        "name": "Organization"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Account",
                        "name": "Account"
                    }
                ]
            }
        ],
        "Link": [
            {
                "rel": "self",
                "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact?&uniformresponse=y&childlinks=Account,Position,Organization&fields=First Name, Last Name",
                "name": "Contact"
            }
        ]
    }
    Note: The response in this example is in an array even though the array has single element. This is because the request contains the uniformresponse parameter.

Querying for All Contacts in an Account Without Using Uniformresponse to Return Multiple Records

You can query for a Siebel CRM component by sending a HTTPS GET request to the resource’s URI.

The following request queries for all Contact records in a given Account record from the Siebel CRM Server, without using the uniformresponse parameter, and receives multiple records in the response:
  • URI: GET https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact?fields=First Name, Last Name&childlinks=Account,Position,Organization

  • HTTP Method: GET

  • Content Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:
  • HTTP Code: 200

  • Content Type:

  • Response body:
    {
        "items": [
            {
                "Id": "0CR-1MF5Z6",
                "First Name": "JOHN",
                "Last Name": "SMITH",
                "Link": [
                    {
                        "rel": "self",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6",
                        "name": "Contact"
                    },
                    {
                        "rel": "canonical",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6",
                        "name": "Contact"
                    },
                    {
                        "rel": "parent",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND",
                        "name": "Account"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Position",
                        "name": "Position"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Organization",
                        "name": "Organization"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Account",
                        "name": "Account"
                    }
                ]
            }
    				{
                "Id": "0V-18PLXQ",
                "First Name": "WILLIAM",
                "Last Name": "BROWN",
                "Link": [
                    {
                        "rel": "self",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6",
                        "name": "Contact"
                    },
                    {
                        "rel": "canonical",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6",
                        "name": "Contact"
                    },
                    {
                        "rel": "parent",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND",
                        "name": "Account"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Position",
                        "name": "Position"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Organization",
                        "name": "Organization"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact/0CR-1MF5Z6/Account",
                        "name": "Account"
                    }
                ]
            }
        ],
        "Link": {
                "rel": "self",
                "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact?&childlinks=Account,Position,Organization&fields=First Name, Last Name",
                "name": "Contact"
            }
        }
    Note: The response in this example is in an array because it has multiple records.

Querying for a Single Account Record Without Using Uniformresponse

You can query for a single Siebel CRM Business Component by sending a HTTPS GET request to the resource’s URI.

The following request queries for a single Account record from the Siebel CRM Server without using the uniformresponse parameter:
  • URI: GET https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND?fields=Name,Location,Id&childlinks=Contact,Position

  • HTTP Method: GET

  • Content Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:
  • HTTP Code: 200

  • Content Type:

  • Response body:
    {
       "Name": "3Com",
       "Id": "88-26CND",
       "Location": "Headquarters",
       "Link": [
                    {
                        "rel": "self",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND",
                        "name": "Account"
                    },
                    {
                        "rel": "canonical",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND",
                        "name": "Account"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact",
                        "name": "Contact"
                    },
                    {
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Position",
                        "name": "Position"
                    }
              ]
     }
    
    Note: The response in this example is not in an array because it has only one record, and the request does not contain the uniformresponse parameter.

Querying for a Single Account Record Using Uniformresponse

You can query for a single Siebel CRM Business Component by sending a HTTPS GET request to the resource’s URI.

The following request queries for a single Account record from the Siebel CRM Server by using the uniformresponse parameter:
  • URI: GET https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND?fields=Name,Location,Id&childlinks=Contact,Position,Organization&uniformresponse=y

  • HTTP Method: GET

  • Content Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:
  • HTTP Code: 200

  • Content Type:

  • Response body:
    {
        "items": [
    			{
      			 "Name": "3Com",
      			 "Id": "88-26CND",
      			 "Location": "Headquarters",
      			 "Link": [
    	                {
                        "rel": "self",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND",
                        "name": "Account"
                    	},
                    	{
                        "rel": "canonical",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND",
                        "name": "Account"
                    	},
                    	{
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Contact",
                        "name": "Contact"
                   		},
                    	{
                        "rel": "child",
                        "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account/88-26CND/Position",
                        "name": "Position"
                    	},
             				]
    			 }
    ]
        "Link": [
            {
              "rel": "self",
              "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Account/Account?uniformresponse=y&childlinks=Contact,Position,Organization&fields=Name,Location,Id",
    					"name": "Account"
    			  }
    		]
    }
    
    Note: The response in this example is in an array even though the array has single element. This is because the request contains the uniformresponse parameter.

Using the Developer Workspace Parameter to Preview Changes Without Compiling to the Repository

You can query active Siebel CRM objects by sending a HTTPS GET request to the resource’s URI. You can also preview changes to a specific object in a developer branch before you deliver them to the Main workspace. You can achieve this with the help of the developer workspace parameter, workspace&version. For more information about the developer workspace parameter, see About URI Parameters.

You must add a responsibility to Siebel Runtime Metadata Publisher Service in the Business Service Access List View for Workspace Inspect. Workspace Inspect internally uses this business service, and the responsibility is needed for Workspace Inspect to work correctly. For more information about associating a Business Service with a responsibility, see Configuring Business Service Methods for REST Access and Siebel Security Guide.

The following request fetches Quote Item details for a quote with the ID <Quote ID>:

  • URI: https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote Id>/QuoteItem

  • HTTP Method: GET

  • Content Type: application/json

  • Authorization: : Basic

  • Request body: None

Here are the response details for a successful request, displaying all the Quote Items for a specific Quote:

  • HTTP Code: 200

  • Content Type:

  • Response body:

{
	"To Node": "",
    "Parent Product Id": "",
    .
    .
    .
    "Root Quote Item Id": "<Quote Item Id>",
    .
    .
    .
    "Service Account": "",
"Link": [
        {
            "rel": "self",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>",
            "name": "Quote Item"},
        {
            "rel": "canonical",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>",
            "name": "Quote Item"
        },
        {
            "rel": "parent",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>",
            "name": "Quote"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Contact",
            "name": "Contact"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/HTIM Audit Trail Item 2",
            "name": "HTIM Audit Trail Item 2"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote - Requested Schedule Lines.Line Number (Sequence)",
            "name": "Quote - Requested Schedule Lines.Line Number (Sequence)"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/PUB Evidence Quote Item",
            "name": "PUB Evidence Quote Item"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Approval History - Quote Item",
            "name": "Approval History - Quote Item"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/LOY Quote Point Types",
            "name": "LOY Quote Point Types"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Auto Quote Vehicles",
            "name": "Auto Quote Vehicles"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote - SAP 4x Schedule Line Item",
            "name": "Quote - SAP 4x Schedule Line Item"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote - Requested Schedule Lines",
            "name": "Quote - Requested Schedule Lines"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote - Promised Schedule Lines.Line Number (Sequence)",
            "name": "Quote - Promised Schedule Lines.Line Number (Sequence)"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote Item XA",
            "name": "Quote Item XA"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Price List",
            "name": "Price List"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote - Promised Schedule Lines",
            "name": "Quote - Promised Schedule Lines"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote Item Promotion Deal",
            "name": "Quote Item Promotion Deal"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/FS Quote Line Item Asset",
            "name": "FS Quote Line Item Asset"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Action",
            "name": "Action"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote Item Promotion Deal",
            "name": "Quote Item Promotion Deal"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Audit Trail Item 3",
            "name": "Audit Trail Item 3"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Activity Plan",
            "name": "Activity Plan"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Product Line",
            "name": "Product Line"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote Item XA",
            "name": "Quote Item XA"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Quote - SAP 4x Schedule Line Item",
            "name": "Quote - SAP 4x Schedule Line Item"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/Validation Message - Quote Item",
            "name": "Validation Message - Quote Item"
        },
        {
            "rel": "child",
            "href": "https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item/<Quote Item Id>/FS Quote Line Item Asset",
            "name": "FS Quote Line Item Asset"
        }
    ]
}

You can modify the object definition and then preview the changes before delivering the workspace. In the following example, Quote Item is no longer a child component of the base Quote integration object (IO). If you pass the workspace name and version number as query parameters in the request, this change to the structure of the IO can be seen. The response fetches an error due to inactivation of the Quote Item object.

For more information about how to inactivate an object in Web Tools, see Using Siebel Tools.

URI: https://<host_name>:<port_number>/siebel/v1.0/data/Quote/Quote/<Quote ID>/Quote Item?workspace=<workspace_name>&version=<ver_num>

{
    "ERROR": "Incorrect Business Component name 'Quote Item' or the Business Component is not mapped to any Integration Component in the Integration Object 'Base Quote'.(SBL-EAI-50257)"
}

Using Siebel REST API to Access Siebel Business Services JSON Examples

You can use the Siebel REST API to access Siebel Business Services. Users can call Siebel Business Services using the Siebel REST API HTTP POST request by specifying the Business Service Name, Method Name, and method parameters in the URI or request body.

Before you can access the Siebel Business Services, you must configure the access and responsibility values of the Siebel Business Service. For more information, see Configuring Business Service Methods for REST Access.

This topic includes the following information:

Accessing a Siebel Business Service with Arguments in the Request Body

You can access a Siebel CRM Business Service by sending a HTTP POST request to the resource's URI.

The following request calls the CreateAccount Method of the Account Business Service with the Business Service arguments included in the request body. This request creates an account called REST Test Business Service3 on the Siebel CRM Server:

  • URI: http://ServerName:port/siebel/v1.0/service/Account/CreateAccount

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
      "body":
        {
          "Account IO":
          {
            "IntObjectName":"Account IO",
            "IntObjectFormat":"Siebel Hierarchical",
            "ListOfAccount IO":
            {
              "Account":
              {
                "Name":"REST Test Business Service3"
              }
            }
          }
        }
    }
    

Accessing a Siebel Business Service with Arguments in the Request URI

You can access a Siebel CRM Business Service by sending a HTTP POST request to the resource's URI.

The following request calls the QueryPage method of the AccountWS Business Service with the PageSize=10, StartRowNum=0, and ViewMode=All parameters included in the request URI. This request returns the first 10 Account records (because PageSize is 10 and StartRowNum is 0) matching the criteria specified in the body in the format of the integration object called Account_EMR. Only simple parameters, for example, strings or numbers, can be passed as query parameters, whereas complex arguments, such as integration objects, must be passed in the request body.

  • URI: http://ServerName:port/siebel/v1.0/service/AccountWS/QueryPage?PageSize=10&StartRowNum=0&ViewMode=All

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
      "body":
        {
          "SiebelMessage":
          {
            "MessageId":"",
            "MessageType":"Integration Object",
            "IntObjectName":"Account_EMR",
            "IntObjectFormat":"Siebel Hierarchical",
            "ListOfAccount_EMR":
            {
              "Account":
              {
                "Name":"A"
              }
            }
          }
        }
    }
    

Accessing the QueryByExample Method of the Siebel Account Business Service

You can access a Siebel CRM Business Service by sending a HTTP POST request to the resource's URI.

The following request calls the QueryByExample method of the Siebel Account Business Service. This request queries for and returns an account called 3Com.

  • URI: http://ServerName:port/siebel/v1.0/service/Siebel Account/QueryByExample

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
      "body":
      {
        "SiebelMessage":
        {
          "MessageId":"",
          "MessageType":"Integration Object",
          "IntObjectName":"Account Interface",
          "IntObjectFormat":"Siebel Hierarchical",
          "ListOfAccount Interface":
          {
            "Account":
            {
              "Name":"3Com"
            }
          }
        }
      }
    }
    

Querying for an Account Using the Siebel Business Service QueryById Method

You can query for an Account record using the Siebel CRM Business Service QueryById method by sending a HTTP POST request to the resource's URI.

The following request calls the QueryById method of the Siebel Account Business Service, and the PrimaryRowId parameter is accepted as the query parameter. The following query returns an account with the PrimaryRowId value as 88-459YQ.

  • URI: http://ServerName:port/siebel/v1.0/service/Siebel Account/QueryById?PrimaryRowId=88-459YQ

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
    }
    

Inserting an Account Using the Siebel Account Business Service

You can create a record in Siebel CRM database by using the Insert method of Siebel CRM Business Service by sending a HTTP POST request to the resource's URI.

The following requests calls the Insert method of Siebel Account Business service to insert a new Account record with its details given in the request.

  • URI: https://ServerName:port/siebel/v1.0/service/Siebel Account/Insert

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
      "body":
      {
        "SiebelMessage":
        {
          "MessageId":"",
          "MessageType":"Integration Object",
          "IntObjectName":"Account Interface",
          "IntObjectFormat":"Siebel Hierarchical",
          "ListOfAccount Interface":
          {
            "Account":
            {
              "Account Id":"2345",
              "Name":"REST Test Business Service"
            }
          }
       }
    }
    }
    

Updating an Account Using a Siebel Account Business Service

You can modify the record by using the Update method of Siebel CRM Business Service by sending a HTTP POST request to the resource's URI.

The following request calls the Update method of Siebel Account Business Service to update the Main Phone Number field value.

  • URI: https://ServerName:port/siebel/siebel/v1.0/service/Siebel Account/Update

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
      "body":
      {
        "SiebelMessage":
        {
          "MessageId":"",
          "MessageType":"Integration Object",
          "IntObjectName":"Account Interface",
          "IntObjectFormat":"Siebel Hierarchical",
          "ListOfAccount Interface":
          {
            "Account":
            {
              "Account Id":"1-6",
              "Name":"REST Test Business Service32",
              "Main Phone Number": "2018742315"
            }
          }
        }
      }
    }
    

Upserting an Account Using a Siebel Account Business Service

You can upsert a record by using the InsertorUpdate method of Siebel CRM Business Service by sending a HTTP POST request to the resource's URI.

The following details are for a request to call the InsertOrUpdate method of Siebel Account Business service to insert an account with its details given in the request.

  • URI: https://ServerName:port/siebel/v1.0/service/Siebel Account/InsertOrUpdate

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {
      "body":
      {
        "SiebelMessage":
        {
          "MessageId":"",
          "MessageType":"Integration Object",
          "IntObjectName":"Account Interface",
          "IntObjectFormat":"Siebel Hierarchical",
          "ListOfAccount Interface":
          {
            "Account":
            {
              "Account Id":"34567",
              "Name":"Rest",
              "Main Phone Number": "20187423154"
            }
          }
        }
      }
    }
    

Using the Describe Parameter to Return Methods of a Business Service

You can use the Open API describe parameter to access catalog of available methods of a Business Service by appending it to a HTTP GET request to the resource's URI.

The following request uses the describe parameter to return methods of Siebel Account Business Service URI:

  • URI: http://ServerName:port/siebel/v1.0/service/Siebel Account/describe

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body: None

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type: application/json

  • Response body:
        "swagger": "2.0",
        "info": {},
        "schemes": [],
        "securityDefinitions": {},
        "externalDocs": {},
        "host": "host:port number",
        "basePath": "/siebel/v1.0",
    
        "definitions": {},
    
        "tags": [],
    
        "paths": {
    
            "/service/Siebel Account/Delete/describe": {
    
                "get": {
    
                    "tags": [
    
                        "service/Siebel Account/Delete/describe"
    
                    ],
    
                    "summary": "",
    
                    "description": "",
    
                    "operationId": "service/Siebel Account/Delete/describe",
    
                    "produces": [                   
    
                    ],
    
                    "responses": {                
    
                    },
    
                    "parameters": [],                    
    
                    "security": [                
    
                    ]
    
                }
    
            },
    
            "/service/Siebel Account/Insert/describe": {
    
            },
    
            "/service/Siebel Account/InsertOrUpdate/describe": {
    
            },
    
            "/service/Siebel Account/QueryByExample/describe": {
    
            },  
    
            "/service/Siebel Account/QueryById/describe": {
    
            }, 
    
            "/service/Siebel Account/Synchronize/describe": {
    
            }, 
    
            "/service/Siebel Account/Update/describe": {
    
            }
    
        }
    
    }

Using the Describe Parameter to Return a Catalog of Paths for All Available Business Services

You can use the Open API describe parameter to retrieve path to all available Business Services exposed over REST by appending it to a HTTP GET request.

The following request uses the describe parameter to return a catalog of URLs for all available Business Services from the Siebel CRM Server:

  • URI: http://ServerName:port/siebel/v1.0/service/describe

  • HTTP Method: GET

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type: application/json

  • Response body:
    {
        "swagger": "2.0",  //Existing Swagger specification version
        "info": {          //Metadata about API
        },
        "schemes": [        
            "http",
            "https"
        ],
        "securityDefinitions": {     //information about the authorization schemes
            "Basic Auth": {
                "type": "basic"
            }
        },
        "externalDocs": {            
            "description": "OpenAPI",
            "url": "https://openapis.org"
        },
        "host": "host:port number",
        "basePath": "/siebel/v1.0",
        "tags": [                        
            {
                "name": "service/ABO Bulk Request Explode Service/describe",                
                "description": "Catalogging of ABO Bulk Request Explode Service",
                "externalDocs": {
                    "description": "Find Out More",
                    "url": ""
                }
            },
    
           {
    
                "name": "service/nextSet/describe",        
    
                "description": "Catalogging of nextSet",
    
                "externalDocs": {
    
                    "description": "Find Out More",
    
                    "url": ""
    
                }
    
            }
            
        ],
        "paths": {
            "/service/ABO Bulk Request Explode Service/describe": {                                                   //links
                "get": {                                          
                    "tags": [
                        "service/ABO Bulk Request Explode Service/describe"
                    ],
                    "summary": "",
                    "description": "",
                    "operationId": "service/ABO Bulk Request Explode Service/describe",
                    "produces": [
                        "application/xml",
                        "application/json"
                    ],
                    "responses": {                
                        "200": {"description": "Successful Operation"},
                        "204": {"description": "No Resource Found"},
                        "404": {"description": "There is no data for the requested resource"},
                        "500": {"description": "Internal Server Error"}
                    },
                    "parameters": [],
                    "security": [
                        {
                            "Basic Auth": [],
                            "OAuth 2.0": []
                        }
                    ]
                }
            },
    
            "/service/describe?PageSize=10&StartRowNum=10": {                                                   //links
                "get": {                                          
                    "tags": [
                        "service/nextSet/describe"
                    ],
                    "summary": "",
                    "description": "",
                    "operationId": "service/nextSet/describe",
                    "produces": [
                        "application/xml",
                        "application/json"
                    ],
                    "responses": {                
                        "200": {"description": "Successful Operation"},
                        "204": {"description": "No Resource Found"},
                        "404": {"description": "There is no data for the requested resource"},
                        "500": {"description": "Internal Server Error"}
                    },
                    "parameters": [],
                    "security": [
                        {
                            "Basic Auth": [],
                            "OAuth 2.0": []
                        }
                    ]
                }
            }
        }
    }

Using Siebel REST API to Access Siebel Repository Data XML Examples

Querying for a Siebel CRM Repository Resource

You can query for a Siebel CRM Repository Resource by sending a HTTP GET request to the Repository Resource's URI.

The following request returns properties of WriteRecord control configured in the SIS Account List applet:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet/Control/WriteRecord

  • HTTP Method: GET

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body: None

Querying for a Siebel CRM Repository Resource with a Search Specification

You can query for a specific Siebel CRM Repository Resource by specifying the search specification in the query.

The following request queries for Business Components matching the specified search criteria:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Business Component?SearchSpec = [Name] LIKE ‘B*’

  • HTTP Method: GET

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body: None

Querying for a Siebel CRM Repository Object to Return a Subset of Fields

You can query for a Siebel CRM Repository Object to have a subset of fields in the response. When you query for a repository object, the response lists all the fields and links to child objects. If you specify a subset of fields in the request, then this filters the response to contain only the fields listed in the query parameter.

The following request returns values for Name, ProjectName and Comments fields in SIS Account List Applet:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet?fields=Name,ProjectName,Comments

  • HTTP Method: GET

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body: None

Inserting a Siebel CRM Repository Resource

You can insert a Siebel CRM Repository Resource by sending a HTTP POST request to the Repository Resource's URI.

The following request inserts a new applet called SIS Account List Applet_1 in MyWorkspace:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet_1

  • HTTP Method: POST

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:
    <?xml version="1.0" encoding="UTF-8" ?>
      <request>
        <Name>SIS Account List Applet_1</Name>
        <ProjectName>Siebel Rest</ProjectName>
        <UpgradeBehavior>Preserve</UpgradeBehavior>
        <Comments>SIS Account List Applet: Added by Rest</Comments>
      </request>
    

Upserting a Siebel CRM Repository Resource

You can insert or update a Siebel CRM Repository Resource by sending a HTTP PUT request to the Repository Resource's URI.

The following request inserts WriteRecord control (child record) to SIS Account List Applet_1:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet_1/Control/WriteRecord

  • HTTP Method: PUT

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:
    <?xml version="1.0" encoding="UTF-8" ?>
      <request>
        <Name>WriteRecord</Name>
      </request>
    

Deleting a Siebel CRM Repository Resource

You can delete a Siebel CRM Repository Resource by sending a HTTP DELETE request to the Repository Resource's URI.

The following request deletes the applet called SIS Account List Applet_1:

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet_1

  • HTTP Method: DELETE

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body: None

Querying for Siebel CRM Repository Resources by Using the ViewMode Access Control Parameter

You can control read and write access of the repository object by using the ViewMode parameter, which controls operations based on Person, Position or Organization.

The following request queries for the SIS Account List Applet, using the parameter ViewMode=Personal. This allows read access only to the person who created the record in the specified workspace.

  • URI: http://ServerName:port/siebel/v1.0/workspace/MyWorkspace/Applet/SIS Account List Applet?ViewMode="Personal"

  • HTTP Method: GET

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body: None

Using Siebel REST API to Access Siebel CRM Business Objects XML Examples

You can use the Siebel REST API to access Siebel CRM Business Objects. Users can perform QUERY, INSERT, UPDATE, and DELETE operations on the Siebel Business Components using REST API requests over HTTP as described in this section.

Note: Siebel REST API is designed to perform operations on Business Objects and Business Components with fields, and not Business Objects or Business Components with XML tags. If you have integration components with XML tags for field names, then you must use SOAP requests instead of REST API requests.

This topic includes the following information:

Querying for a Siebel CRM Business Component

You can query for a Siebel CRM Business Object resource by sending a HTTP GET request to the Repository Resource's URI.

The following request queries for an Account Business Component record with the ID, 1LS-9XKU:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/1LS-9XKU

  • HTTP Method: GET

  • Content-Type: application/xml

  • Authorization: Basic

Querying for a Siebel CRM Business Component with a Search Specification

You can query for a Siebel CRM Business Component resource by sending a HTTP GET request with a search specification in the resource's URI.

The following request retrieves Contact records whose first name starts with J, last name starts with A, and that are associated with the Account record, ID 1-32HG, using the searchspec parameter:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/1-32HG/Contact/?searchspec=([First Name] LIKE 'J*' AND [Last Name] LIKE 'A*')

  • HTTP Method: GET

  • Content-Type: application/xml

  • Authorization: Basic

Querying for a Siebel CRM Business Component Record to Return Specific Subset of Fields

You can query for a Siebel CRM Business Component to return a specific subset of fields by sending a HTTP GET request with the fields query parameter.

The following request fetches values only for the Name, Location and Account Status fields of an Account record, with ID 1-32HG:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/1-32HG?fields=Name, Location, Account Status

  • HTTP Method: GET

  • Content-Type: application/xml

  • Authorization: Basic

Inserting a Siebel CRM Parent Business Component

You can insert a parent or root Business Component record by sending a HTTP POST request to the resource's URI.

The following request inserts an Account record:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account

  • HTTP Method: POST

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:
    <?xml version="1.0" encoding="UTF-8" ?>
      <request>
        <Name>AccountData</Name>
        <Primary_spcOrganization>Millennium Institutional Finance Services IF ENU</
         Primary_spcOrganization>
        <Location>HQ-Distribution</Location>
        <Description>AccountData</Description>
        <Primary_spcOrganization_spcId>1-1DG</Primary_spcOrganization_spcId>
      </request>
    

Upserting a Siebel CRM Parent Business Component

You can insert or update a Siebel CRM parent Business Component resource by sending a HTTP PUT request to the Repository Resource's URI.

The following request updates the value of the Description field of an existing Account record:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account

  • HTTP Method: PUT

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:

<?xml version="1.0" encoding="UTF-8" ?>
  <request>
    <Name>AccountData</Name>
    <Primary_spcOrganization>Millennium Institutional Finance Services IF ENU</
     Primary_spcOrganization>
    <Location>HQ-Distribution</Location>
    <Description>AccountDataUpdate</Description>
    <Primary_spcOrganization_spcId>1-1DG</Primary_spcOrganization_spcId>
  </request>

Deleting a Siebel CRM Parent Business Component

You can delete a Siebel CRM parent Business Component record by sending a HTTP DELETE request to the Repository Resource's URI.

The following request deletes the Account record on the Siebel CRM Server:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/88-43CGR

  • HTTP Method: DELETE

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:
    <?xml version="1.0" encoding="UTF-8" ?>
    <request>
      <Id>88-43CGR</Id>
    </request>
    

Querying for a Siebel CRM Business Component by Using the ViewMode Access Control Parameter

You can control read and write access to a Siebel CRM Business Component by specifying the ViewMode parameter in the HTTP GET request.

The following request queries for an Account Business Component with a ViewMode="Sales Rep" access control:

  • URI: http://ServerName:port/siebel/v1.0/data/Account/Account/?ViewMode="Sales Rep"

  • HTTP Method: GET

  • Content-Type: application/xml

  • Authorization: Basic

Using Siebel REST API to Access Siebel Business Services XML Examples

You can use the Siebel REST API to access Siebel Business Services. Users can call Siebel Business Services using the Siebel REST API HTTP POST request by specifying the Business Service Name, Method Name, and method parameters in the URI.

This topic includes the following information:

Using a Siebel CRM Business Service to Insert an Account

You can use a Siebel CRM Business Service resource to insert an Account by sending a HTTP POST request to the Repository Resource's URI.

The following request calls the Insert method of Siebel Account Business service, which inserts a new account with details given in the request.

  • URI: http://ServerName:port/siebel/v1.0/service/Siebel Account/Insert

  • HTTP Method: POST

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:
    <?xml version="1.0" encoding="UTF-8" ?>
    <body>
      <SiebelMessage>
        <MessageId></MessageId>
        <MessageType>Integration Object</MessageType>
        <IntObjectName>Account Interface</IntObjectName>
        <IntObjectFormat>Siebel Hierarchical</IntObjectFormat>
        <ListOfAccount_spcInterface>
          <Account>
            <Name>Test Account</Name>
    					<Account_spcId>1234</Account_spcId>
          </Account>
        </ListOfAccount_spcInterface>
      </SiebelMessage>
    </body>
    

If the Siebel CRM Business Service fails with any error, then Siebel REST API returns the HTTP status code 500, details of the error, and the Siebel error code which is available in the response body. Consider the following two examples:

  • If Siebel REST API tries to insert a record without the required fields, then it returns the HTTP error code 500, with the following message in the response body:

    "ERROR": "No user key can be used for the Integration Component instance 'Account'.(SBL-EAI-04397)" 
  • If Siebel REST tries to insert a record that already exists, then it returns the HTTP error code 500 with the Siebel error message bubbled up, as shown in the following example:

    "ERROR": "Insert operation on integration component 'Account' failed because 
    a matching record in Business Component 'Account' with search specification 
    '[Location] = \"HQ-Distribution\" AND [Name] = \"AccountData1234\" AND 
    [Primary Organization] = \"Millennium Institutional Finance Services IF 
    ENU\"' was found.(SBL-EAI-04383)" 
    

Using a Siebel CRM Business Service to Update an Account

You can use a Siebel CRM Business Service resource to update an Account record by sending a HTTP POST request to the Repository Resource's URI.

The following request updates the Main Phone field for an existing Account record using the update method of the Siebel Account Business Service:

  • URI: http://ServerName:port/siebel/v1.0/service/Siebel Account/Update

  • HTTP Method: POST

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:

    <?xml version="1.0" encoding="UTF-8" ?>
    <body>
      <SiebelMessage>
        <MessageId></MessageId>
        <MessageType>Integration Object</MessageType>
        <IntObjectName>Account Interface</IntObjectName>
        <IntObjectFormat>Siebel Hierarchical</IntObjectFormat>
        <ListOfAccount_spcInterface>
          <Account><Account_spcId>1-34Z</Account_spcId>
          <Main_spcPhone_spcNumber>2018742315</Main_spcPhone_spcNumber>
          </Account>
        </ListOfAccount_spcInterface>
      </SiebelMessage>
    </body>
    

Using a Siebel CRM Business Service to Delete an Account

You can use a Siebel CRM Business Service to delete an Account record by sending a HTTP POST request to the resource's URI.

The following request deletes an Account record on the Siebel CRM Server using the delete method of Siebel Account Business Service:

  • URI: http://ServerName:port/siebel/v1.0/service/Siebel Account/Delete

  • HTTP Method: POST

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:
    <?xml version="1.0" encoding="UTF-8" ?>
    <body>
      <SiebelMessage>
        <MessageId></MessageId>
        <MessageType>Integration Object</MessageType>
        <IntObjectName>Account Interface</IntObjectName>
        <IntObjectFormat>Siebel Hierarchical</IntObjectFormat>
        <ListOfAccount_spcInterface>
          <Account>
            <Account_spcId>1-34Z</Account_spcId>
          </Account>
        </ListOfAccount_spcInterface>
      </SiebelMessage>
    </body>
    

Using a Siebel CRM Business Service to Query an Account

You can use a Siebel CRM Business Service to query for an Account record by sending a HTTP POST request to the resource's URI.

The following request queries for an Account record with an ID=1-6 using the QueryById method of the Siebel Account Business Service:

  • URI: http://ServerName:port/siebel/v1.0/v1.0/service/Siebel Account/QueryById?PrimaryRowId=1-6

  • HTTP Method: POST

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:

    <xml>
    </xml>

Accessing the QueryByExample Method of the Siebel Account Business Service

You can use a Siebel CRM Business Service to query for an Account record by sending a HTTP POST request to the resource's URI.

The following request uses the QueryByExample method of the Siebel Account Business Service to query for an Account with the name 3Com:

  • URI: http://ServerName:port/siebel/v1.0/service/Siebel Account/QueryByExample

  • HTTP Method: POST

  • Content-Type: application/xml

  • Authorization: Basic

  • Request body:

<?xml version="1.0" encoding="UTF-8" ?>
<body>
  <SiebelMessage>
    <MessageId></MessageId>
    <MessageType>Integration Object</MessageType>
    <IntObjectName>Account Interface</IntObjectName>
    <IntObjectFormat>Siebel Hierarchical</IntObjectFormat>
    <ListOfAccount_spcInterface>
      <Account>
        <Name>3Com</Name>
      </Account>
    </ListOfAccount_spcInterface>
  </SiebelMessage>
</body>