About Importing Lists Of Values (LOVs) Using REST API

The LOV Import Service provides a mechanism to load LOVs into the Siebel CRM database, either individually or in bulk. This capability is available in both the design repository (DR) environment for development environments and the runtime repository (RR) for test or production environments.

The following defines the LOV Import Service REST API:

  • URI: http://ServerName:port/siebel/v1.0/service/LOV Import Service/Upsert

  • HTTP Method: POST

  • Content-Type: application/json

  • Authorization: Basic

  • Request body:
    {"body":{  
          "WorkspaceName":"<Developer Workspace>",
          "ParentWorkspaceName":"<Parent Integration Workspace",
          "SiebelMessage":{  
             "MessageId":"",
             "MessageType":"Integration Object",
             "IntObjectName":"List Of Values",
             "IntObjectFormat":"Siebel Hierarchical",
             "ListOfList Of Values":{ 
                "List Of Values":[  
                   {  
                      "Order By":"1",
                      "Name":"<Language Independent Code>",
                      "Replication Level":"All",
                      "Type":"<LOV TYPE>",
                      "Translate":"N",
                      "Multilingual":"<Y/N>",
                      "Language":"<LANG_CD>",
                      "Active":"Y",
                      "Description":"<Description>",
                      "Sub Type":"",
                      "Value":"<Language Dependent Code>"
                   },…
    

The following table describes the request message fields associated with this API.

Name Description

WorkspaceName

The workspace where the LOV is created.

ParentWorkspaceName

The parent integration workspace for the WorkspaceName entry where the LOVs are created.

Name

The language-independent code.

Type

The LOV type.

Multilingual

If the LOV_TYPE record is MLOV, then set this entry to Y. For all other LOVs, including all non-LOV_TYPE records, set this entry to N.

Language

Used for only GET or Query operations to specify a comma-separated list of child Business Components that require links returned in the REST API response. The response returns only links to child objects specified in this parameter value.

For more information on the childlinks parameter, see Querying for a Siebel CRM Repository Resource To Return Only One Child Link.

Description

The three letter language code for the language, for example, ENU or FRA.

Value

The display value for the language-independent code.

The following JSON example shows a basic request payload structure that will create a new LOV TYPE called REST_LOV_TYPE_TEST, under which it also creates two LOVs, LOV #1 and LOV #2:
{
	"body": {
	"WorkspaceName": "dev_sadmin_LOVExample",
	"ParentWorkspaceName": "MAIN",
	"SiebelMessage": {
		"MessageId": "",
		"MessageType": "Integration Object",
		"IntObjectName": "List Of Values",
		"IntObjectFormat": "Siebel Hierarchical",
		"ListOfList Of Values": {
			"List Of Values": [
				{
					"Order By": "1",
					"Name": "REST_LOV_TYPE_TEST",
					"Replication Level": "All",
					"Type": "LOV_TYPE",
					"Translate": "Y",
					"Multilingual": "N",
					"Language": "ENU",
					"Active": "Y",
					"Description": "Creates an LOV_TYPE named REST_LOV_TYPE_TEST",
					"Sub Type": "",
					"Value": " REST_LOV_TYPE_TEST "
				},
				{
					"Order By": "1",
					"Name": "LOV #1",
					"Replication Level": "All",
					"Type": "REST_LOV_TYPE_TEST",
					"Translate": "Y",
					"Multilingual": "N",
					"Language": "ENU",
					"Active": "Y",
					"Description": "Creates LOV named “LOV #1” of LOV TYPE “REST_LOV_TYPE_TEST”",
					"Sub Type": "",
					"Value": "LOV #1"
				},
				{
					"Order By": "2",
					"Name": "LOV #2",
					"Replication Level": "All",
					"Type": "REST_LOV_TYPE_TEST",
					"Translate": "Y",
					"Multilingual": "N",
					"Language": "ENU",
					"Active": "Y",
					"Description": "Creates LOV named “LOV#2” of LOV TYPE “REST_LOV_TYPE_TEST”",
					"Sub Type": "",
					"Value": "LOV #2"
				}
			]
		}
	}
}
}
The following considerations apply:
  • If you are loading a new LOV_TYPE, you must create the LOV_TYPE record first, then create the detail records afterwards.

  • To load more than one LOV at a time, create a new List Of Values section in the request payload for each LOV.

  • LOVs are automatically created in all integration workspaces and main workspaces, which is consistent with how LOVs are created in the user interface or EIM.

Here are the response details for a successful request:

  • HTTP Code: 200

  • Content-Type: application/json

  • Response body:
    {
       "ErrorContextSearchSpec": "",
       "OMErrorCode": "",
       "ErrorSymbol": "",
       "OMErrorSymbol": "",
       "ErrorCode": "0x0",
       "ErrorContextIntComp": "",
       "SiebelMessage":    {
          "IntObjectFormat": "Siebel Hierarchical",
          "MessageId": "",
          "IntObjectName": "List Of Values",
          "MessageType": "Integration Object",
          "List Of Values":       [
                      {
                "Description": "Creates an LOV_TYPE named REST_LOV_TYPE_TEST",
                "Type": "LOV_TYPE",
                "Language": "ENU",
                "Id": "9SIA-D8H17",
                "Active": "Y",
                "Name": "REST_LOV_TYPE_TEST",
                "Translate": "Y",
                "Order By": "1",
                "Multilingual": "N",
                "Value": " REST_LOV_TYPE_TEST ",
                "Replication Level": "All",
                "Sub Type": ""
             },
                      {
                "Description": "Creates LOV named �LOV #1� of LOV TYPE �REST_LOV_TYPE_TEST�",
                "Type": "REST_LOV_TYPE_TEST",
                "Language": "ENU",
                "Id": "9SIA-D8H1F",
                "Active": "Y",
                "Name": "LOV #1",
                "Translate": "Y",
                "Order By": "1",
                "Multilingual": "N",
                "Value": "LOV #1",
                "Replication Level": "All",
                "Sub Type": ""
             },
                      {
                "Description": "Creates LOV named �LOV#2� of LOV TYPE �REST_LOV_TYPE_TEST�",
                "Type": "REST_LOV_TYPE_TEST",
                "Language": "ENU",
                "Id": "9SIA-D8H1N",
                "Active": "Y",
                "Name": "LOV #2",
                "Translate": "Y",
                "Order By": "2",
                "Multilingual": "N",
                "Value": "LOV #2",
                "Replication Level": "All",
                "Sub Type": ""
             }
          ]
       }
    }
    

The following table describes the response details for common failed requests:

Name Siebel Error Solution

404

{"ERROR":"Business Service 'LOV Import Service' does not exist.(SBL-EAI-04299)"}

Run the RepositoryUpgrade utility or manually create the LOV Import Service as described in the Monthly Update Guide.

403

{"ERROR":"Access to Resource LOV Import Service of type Business Service is denied(SBL-DAT-00825)"}

Grant the user access to the LOV Import Service / UpsertLOV business service and method,

Other

This refers to any other non-200 status code responses.

To diagnose other non-200 responses, see About Standard HTTP Status Codes and Error Messages.

Related Books

For more information about how LOVs work in workspaces in Siebel Web Tools or Siebel Tools, see Using Siebel Tools.

For more information about working with LOVs in the Siebel application user interface and about rolling back to a prior version of the runtime repository, see Siebel Applications Administration Guide.

For information about importing LOVs using EIM, see Siebel Enterprise Integration Manager Administration Guide.

For more information about performing repository migrations, see Siebel Database Upgrade Guide.