Workspace APIs

You can expose Siebel workspaces as REST APIs. A workspace provides a controlled environment for managing changes to objects, integration components, workflows, services, and related configurations.

To expose Siebel workspaces as REST APIs, configure the openintegration/v1.0/workspace resource under the apigen > resources section in the config.json file.

The openintegration/v1.0/workspace resource supports only the All value.

The following example from the config.json file shows the configuration for exposing workspace as REST APIs:

"apigen": {

"resources": {

"openintegration/v1.0/workspace": [

"All"

]

}

}

Supported Operations

The Workspace REST API supports several operations:

This table shows the supported operations:

Note:

Angle brackets (< >) indicate placeholders that you must replace with actual values. For example, replace <hostname:port> with the host name and port number of your environment, such as machine123:8443.

Supported Operation Method Endpoint
Retrieve all records GET https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet
Retrieve single record GET https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>
Create a record POST https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet
Update a record PUT https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>
Delete a record DELETE https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>
Note: These operations are generic operations supported by the Workspace REST APIs. For information about a specific Workspace REST API, see its OpenAPI Specification.

Supported Query Parameters

Query Parameters for GET All Operations

The query parameters shown in this table are supported for GET All operations:

Note:

Angle brackets (< >) indicate placeholders that you must replace with actual values. For example, replace <hostname:port> with the host name and port number of your environment, such as machine123:8443.

Query Parameter Description Example
pageSize Specifies the maximum number of records to retrieve. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?pageSize=<sizeOfRecords>
startRowNum Specifies the row number from which to start retrieving records. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?startRowNum=<startingRowNumber>
fields Returns only the specified fields for each record. Specify a comma-separated list of field names. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?fields=<comma-separated-field-names>
sortSpec Sorts the returned records based on the specified field and sort order. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?sortSpec=<field>:<asc\|desc>
searchSpec Returns records that match the specified search criteria. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?searchSpec=<search-string>
recordCountNeeded Returns the total number of available records in the X-Record-Count response header when set to true. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?recordCountNeeded=true
ViewMode Retrieves data using the specified Siebel visibility mode. If not specified, the default view mode is used. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?ViewMode=<view-mode>
excludeEmptyFieldsInResponse Excludes empty fields from the response payload when set to true. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?excludeEmptyFieldsInResponse=true
childlinks Includes child resource links in the response when set to true. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?childlinks=true
ExecutionMode Processes the request using the specified execution mode. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?ExecutionMode=<execution-mode>
version Retrieves the workspace resource for the specified workspace version. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?version=<workspace-version>
pagination Includes pagination information in the response, such as navigation links and last-page details, when set to true. https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet?pagination=true

Query Parameters for GET by Record ID Operations

The query parameters shown in this table are supported for GET by Record ID operations.

Note:

Angle brackets (< >) indicate placeholders that you must replace with actual values. For example, replace <hostname:port> with the host name and port number of your environment, such as machine123:8443.

Query Parameter Description Example
fields Returns only the specified fields for the record. Specify a comma-separated list of field names. GET https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>?fields=<comma-separated-field-names>
ViewMode Retrieves data using the specified Siebel visibility mode. If not specified, the default view mode is used. GET https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>?ViewMode=<view-mode>
excludeEmptyFieldsInResponse Excludes empty fields from the response payload when set to true. GET https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>?excludeEmptyFieldsInResponse=true
childlinks Includes child resource links in the response when set to true. GET https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>?childlinks=true
ExecutionMode Processes the request using the specified execution mode. GET https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>?ExecutionMode=<execution-mode>
version Retrieves the workspace resource for the specified workspace version. GET https://<hostname:port>/<context>/openintegration/v1.0/workspace/<workspace-name>/Applet/<applet-name>?version=<workspace-version>

Examples

  1. Create an applet: The following example creates an applet in the dev_sadmin_ws_17835001881 workspace:
    Request:
    • Method: POST
    • Endpoint: https://hostname:port//openintegration/v1.0/workspace/dev_sadmin_ws_17835001881/Applet

    • Request Body:
      {
      "Name": "SIS Account List Applet_1783500195",
      "ProjectId": "88-31WZ-18LV",
      "UpgradeBehavior": "Preserve",
      "ProjectName": "ABO Bulk Request UI",
      "Comments": "New Record_update"
      }

    Response:

    {
      "items": {
        "Name": "SIS Account List Applet_1783500195",
        "Upgrade Behavior": "Preserve",
        "Id": "88-4DCJHL",
        "Project Name": "ABO Bulk Request UI",
        "Project Id": "88-31WZ-18LV",
        "Comments": "New Record_update",
        "Link": {
          "rel": "self",
          "href": "https://abc/openintegration/v1.0/workspace/dev_sadmin_ws_17835001881/Applet/SIS Account List Applet_1783500195",
          "name": "Applet"
        }
      }
    }
  2. Update an applet: This example updates the SIS Account List Applet_1783500195 applet in the dev_sadmin_ws_17835001881 workspace:

    Request:
    • Method: PUT
    • Endpoint: https://hostname:port//openintegration/v1.0/workspace/dev_sadmin_ws_17835001881/Applet/SIS%20Account%20List%20Applet_1783500195

    • Request Body:
      {
        "Name": "SIS Account List Applet_1783500195",
        "ProjectId": "88-31WZ-18LV",
        "UpgradeBehavior": "Preserve",
        "ProjectName": "ABO Bulk Request UI",
        "Comments": "Updating record"
      }

    Response:

    {
      "items": {
        "Name": "SIS Account List Applet_1783500195",
        "Upgrade Behavior": "Preserve",
        "Id": "88-4DCJHL",
        "Project Name": "ABO Bulk Request UI",
        "Project Id": "88-31WZ-18LV",
        "Comments": "Updating record",
        "Link": {
          "rel": "self",
          "href": "https://abc/openintegration/v1.0/workspace/dev_sadmin_ws_17835001881/Applet/SIS%20Account%20List%20Applet_1783500195",
          "name": "Applet"
        }
      }
    }
    
  3. Delete an applet: This example deletes the SIS Account List Applet_1783500195 applet from the dev_sadmin_ws_17835001881 workspace:

    Request:
    • Method: DELETE
    • Endpoint: https://hostname:port//openintegration/v1.0/workspace/dev_sadmin_ws_17835001881/Applet/SIS Account List Applet_1783500195

    • Request Body:
      {
        "Name": "SIS Account List Applet_1783500195",
        "ProjectId": "88-31WZ-18LV",
        "UpgradeBehavior": "Preserve",
        "ProjectName": "ABO Bulk Request UI",
        "Comments": "Updating record"
      }
    • Response:

      {}
      
  4. Retrieve applet records: This example retrieves applet records from the MAIN workspace. The request specifies a page size of 12, so the response contains up to 12 records:
    Request:
    • Method: GET
    • Endpoint: https://<hostname:port>/<context>/openintegration/v1.0/workspace/MAIN/Applet?pageSize=12

    • Response:

      The response contains up to 12 applet records. The following is a sample record:
      {
          "items": [
              {
                  "Class": "CSSFrameList",
                  "Project Locked Language": "",
                  "Mail Address Field": "",
                  "Title - String Override": "",
                  "Project UI Freeze": "N",
                  "No Update": "N",
                  "Object Language Locked": "",
                  "Popup Dimension": "",
                  "Name": " Contact Quota Period List Applet",
                  "List Name": "List",
                  "Upgrade Behavior": "Preserve",
                  "No Delete": "N",
                  "Application Code": "",
                  "Project Id": "88-31WZ-18LL",
                  "Service Application Use": "",
                  "Background Bitmap Style": "",
                  "Text Style": "",
                  "Search Specification": "",
                  "Disable Dataloss Warning": "N",
                  "Help Identifier": "",
                  "Scripted": "N",
                  "No Merge": "N",
                  "Associate Applet": "",
                  "Repository Name": "Siebel Repository",
                  "Title - Ref Exact": "Contact Quota Periods",
                  "Responsive Flag": "Y",
                  "Object Locked By Name": "",
                  "Background Bitmap": "",
                  "ICL Upgrade Path": "",
                  "Title - Ref Default": "Contact Quota Periods",
                  "Project Name": "Quota Rollup",
                  "Repository Id": "88-31WZ-1",
                  "Insert Applet": "",
                  "Height": "4",
                  "Module": "",
                  "Browser Class": "",
                  "Comments": "",
                  "Task": "",
                  "Project UI Freeze By Id": "",
                  "No Insert": "Y",
                  "Default Applet Method": "",
                  "Insert Position": "",
                  "Default Double Click Method": "",
                  "Project Locked": "N",
                  "Width": "2",
                  "Tools Application Use": "",
                  "Auto Query Mode": "",
                  "Mail Template": "",
                  "Inactive": "N",
                  "Object Locked": "N",
                  "Type": "Standard",
                  "Title - String Reference": "SBL_TM_CONTACT_QUOTA_PERIODS",
                  "Title - Base Row": "",
                  "Object Locked Date": "",
                  "Upgrade Ancestor": "",
                  "HTML Number Of Rows": "",
                  "Project Locked By Id": "",
                  "Object Locked By Id": "",
                  "Sales Application Use": "",
                  "Business Component": "Contact Quota Period BC",
                  "Language Code": "",
                  "HTML Popup Dimension": "",
                  "Link": [
                      {
                          "rel": "self",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet",
                          "name": "Applet"
                      },
                      {
                          "rel": "canonical",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet",
                          "name": "Applet"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet Message",
                          "name": "Applet Message"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/List",
                          "name": "List"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Chart",
                          "name": "Chart"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Tree",
                          "name": "Tree"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet Web Template",
                          "name": "Applet Web Template"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet Browser Script",
                          "name": "Applet Browser Script"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet User Prop",
                          "name": "Applet User Prop"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet Locale",
                          "name": "Applet Locale"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet Toggle",
                          "name": "Applet Toggle"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet Server Script",
                          "name": "Applet Server Script"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet Script",
                          "name": "Applet Script"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Drilldown Object",
                          "name": "Drilldown Object"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Control",
                          "name": "Control"
                      },
                      {
                          "rel": "child",
                          "href": "https://xxx.appsdev.xxx.xxx.com/openintegration/v1.0/workspace/MAIN/Applet/ Contact Quota Period List Applet/Applet Method Menu Item",
                          "name": "Applet Method Menu Item"
                      }
                  ]
       }
      ]
      }
      
  5. Retrieve selected fields and sort results: This example retrieves applet records from the MAIN workspace:
    Request:
    • Method: GET
    • Endpoint: https://<hostname:port>/<context>/openintegration/v1.0/workspace/MAIN/Applet?fields=Name,Project%20Name,Comments&sortSpec=Name:desc

    • Response: The response includes only the Name, Project Name, and Comments fields, and the records are sorted by Name in descending order.

  6. Retrieve applet records using a search specification: This example retrieves applet records from the MAIN workspace:
    Request:
    • Method: GET
    • Endpoint: https://hostname:port//openintegration/v1.0/workspace/MAIN/Applet?searchSpec=[Business Component] Like 'A*'

    • Response: The response contains only applet records with a Business Component value that starts with A.