VB6 / Salesforce Platform APIs / Get Lookup Field Suggestions for a Specified Object
Back to Collection Items
' This example assumes the Chilkat API to have been previously unlocked.
' See Global Unlock Sample for sample code.
Dim http As New ChilkatHttp
Dim success As Long
' Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = "<access_token>"
Dim sbResponseBody As New ChilkatStringBuilder
success = http.QuickGetSb("https://domain.com/services/data/v{{version}}/ui-api/lookups/:SOBJECT_API_NAME/:FIELD_API_NAME/:TARGET_API_NAME",sbResponseBody)
If (success = 0) Then
Debug.Print http.LastErrorText
Exit Sub
End If
Dim jResp As New ChilkatJsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = 0
Debug.Print "Response Body:"
Debug.Print jResp.Emit()
Dim respStatusCode As Long
respStatusCode = http.LastStatus
Debug.Print "Response Status Code = " & respStatusCode
If (respStatusCode >= 400) Then
Debug.Print "Response Header:"
Debug.Print http.LastHeader
Debug.Print "Failed."
Exit Sub
End If
' Sample JSON response:
' (Sample code for parsing the JSON response is shown below)
' {
' "count": 2,
' "currentPageToken": null,
' "currentPageUrl": "/services/data/v58.0/ui-api/lookups/Contact/AccountId/Account?searchType=Recent&page=1&pageSize=25",
' "nextPageToken": null,
' "nextPageUrl": null,
' "previousPageToken": null,
' "previousPageUrl": null,
' "records": [
' {
' "apiName": "Account",
' "childRelationships": {},
' "eTag": "2316c5f4a27ac31b407d91aab610b281",
' "fields": {
' "DisambiguationField": {
' "displayValue": null,
' "value": null
' },
' "Id": {
' "displayValue": null,
' "value": "001B000000UnQ2yIAF"
' },
' "Name": {
' "displayValue": null,
' "value": "Dickenson plc"
' },
' "Site": {
' "displayValue": null,
' "value": null
' }
' },
' "id": "001B000000UnQ2yIAF",
' "lastModifiedById": "005B0000003TOI6IAO",
' "lastModifiedDate": "2017-08-18T14:46:22.000Z",
' "recordTypeId": "012000000000000AAA",
' "recordTypeInfo": null,
' "systemModstamp": "2017-08-18T14:46:22.000Z",
' "weakEtag": 1503067582000
' },
' {
' "apiName": "Account",
' "childRelationships": {},
' "eTag": "cb5afb4494d9c9f6f81ab0e5f214585c",
' "fields": {
' "DisambiguationField": {
' "displayValue": null,
' "value": null
' },
' "Id": {
' "displayValue": null,
' "value": "001B000000UnQ2wIAF"
' },
' "Name": {
' "displayValue": null,
' "value": "Burlington Textiles Corp of America"
' },
' "Site": {
' "displayValue": null,
' "value": null
' }
' },
' "id": "001B000000UnQ2wIAF",
' "lastModifiedById": "005B0000003TOI6IAO",
' "lastModifiedDate": "2017-08-18T14:46:22.000Z",
' "recordTypeId": "012000000000000AAA",
' "recordTypeInfo": null,
' "systemModstamp": "2017-08-18T14:46:22.000Z",
' "weakEtag": 1503067582000
' }
' ]
' }
' Sample code for parsing the JSON response...
' Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code
Dim apiName As String
Dim eTag As String
Dim DisplayValue As String
Dim Value As String
Dim IdDisplayValue As String
Dim IdValue As String
Dim NameDisplayValue As String
Dim NameValue As String
Dim SiteDisplayValue As String
Dim SiteValue As String
Dim id As String
Dim lastModifiedById As String
Dim lastModifiedDate As String
Dim recordTypeId As String
Dim recordTypeInfo As String
Dim systemModstamp As String
Dim weakEtag As Long
Dim count As Long
count = jResp.IntOf("count")
Dim currentPageToken As String
currentPageToken = jResp.StringOf("currentPageToken")
Dim currentPageUrl As String
currentPageUrl = jResp.StringOf("currentPageUrl")
Dim nextPageToken As String
nextPageToken = jResp.StringOf("nextPageToken")
Dim nextPageUrl As String
nextPageUrl = jResp.StringOf("nextPageUrl")
Dim previousPageToken As String
previousPageToken = jResp.StringOf("previousPageToken")
Dim previousPageUrl As String
previousPageUrl = jResp.StringOf("previousPageUrl")
Dim i As Long
i = 0
Dim count_i As Long
count_i = jResp.SizeOfArray("records")
Do While i < count_i
jResp.I = i
apiName = jResp.StringOf("records[i].apiName")
eTag = jResp.StringOf("records[i].eTag")
DisplayValue = jResp.StringOf("records[i].fields.DisambiguationField.displayValue")
Value = jResp.StringOf("records[i].fields.DisambiguationField.value")
IdDisplayValue = jResp.StringOf("records[i].fields.Id.displayValue")
IdValue = jResp.StringOf("records[i].fields.Id.value")
NameDisplayValue = jResp.StringOf("records[i].fields.Name.displayValue")
NameValue = jResp.StringOf("records[i].fields.Name.value")
SiteDisplayValue = jResp.StringOf("records[i].fields.Site.displayValue")
SiteValue = jResp.StringOf("records[i].fields.Site.value")
id = jResp.StringOf("records[i].id")
lastModifiedById = jResp.StringOf("records[i].lastModifiedById")
lastModifiedDate = jResp.StringOf("records[i].lastModifiedDate")
recordTypeId = jResp.StringOf("records[i].recordTypeId")
recordTypeInfo = jResp.StringOf("records[i].recordTypeInfo")
systemModstamp = jResp.StringOf("records[i].systemModstamp")
weakEtag = jResp.IntOf("records[i].weakEtag")
i = i + 1
Loop
Curl Command
curl -X GET
-H "Authorization: Bearer <access_token>"
https://domain.com/services/data/v{{version}}/ui-api/lookups/:SOBJECT_API_NAME/:FIELD_API_NAME/:TARGET_API_NAME
Postman Collection Item JSON
{
"name": "Get Lookup Field Suggestions for a Specified Object",
"event": [
{
"listen": "prerequest",
"script": {
"exec": [
""
],
"type": "text/javascript"
}
}
],
"protocolProfileBehavior": {
"disableBodyPruning": true
},
"request": {
"method": "GET",
"header": [
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{_endpoint}}/services/data/v{{version}}/ui-api/lookups/:SOBJECT_API_NAME/:FIELD_API_NAME/:TARGET_API_NAME",
"host": [
"{{_endpoint}}"
],
"path": [
"services",
"data",
"v{{version}}",
"ui-api",
"lookups",
":SOBJECT_API_NAME",
":FIELD_API_NAME",
":TARGET_API_NAME"
],
"query": [
{
"key": "dependentFieldBindings",
"value": "",
"description": "The dependent field bindings for dependent lookups. These field bindings represent the lookup filter that restricts the valid values for the field.\nSpecify field bindings in a comma-separated list in the format dependentFieldBindings=<FIELD_API_NAME1>=[FIELD_VALUE1],<FIELD_API_NAME2>=[FIELD_VALUE2].\n\nTo know whether a field is a dependent lookup, check the Object Info response body for a non-null filteredLookupInfo property. Specify the name and a value for each field in the controllingFields property. Get the field values from the Record response body. Both responses are returned from the /ui-api/record-ui/<RECORD_IDS> resource.",
"disabled": true
},
{
"key": "page",
"value": "",
"description": "The page number. The default value is 1.",
"disabled": true
},
{
"key": "pageSize",
"value": "",
"description": "The number of items per page. The default value is 25.\n",
"disabled": true
},
{
"key": "q",
"value": "",
"description": "The term the user is searching for.\nWhen searchType=Search, specify at least 2 characters. A wildcard at the end of the search term is implied. For example, q=ca returns Cat and Cats.\n\nWhen searchType=TypeAhead, specify at least 3 characters. A wildcard at the end of the search term is implied. You can’t use a ?.",
"disabled": true
},
{
"key": "searchType",
"value": "",
"description": "The type of search to perform. One of these values:\nRecent—Return most recently used matches.\nSearch—Search for records with searchable fields that match the query term.\nTypeAhead—Search for records whose names start with the query term.\nThe default value is Recent.",
"disabled": true
}
],
"variable": [
{
"key": "SOBJECT_API_NAME",
"value": "",
"description": "The API name of a source object."
},
{
"key": "FIELD_API_NAME",
"value": "",
"description": "The API name of a lookup field on the source object."
},
{
"key": "TARGET_API_NAME",
"value": "",
"description": "The API name of the target (lookup) object."
}
]
},
"description": "When a user edits a lookup field, use this resource to search for and display suggestions for a specified object. You can search for most recently used matches, for matching names, or for any match in a searchable field. You can also specify lookup filter bindings for dependent lookups."
},
"response": [
{
"name": "Get Lookup Field Suggestions for a Specified Object",
"originalRequest": {
"method": "GET",
"header": [
],
"body": {
"mode": "raw",
"raw": ""
},
"url": {
"raw": "{{_endpoint}}/services/data/v{{version}}/ui-api/lookups/:SOBJECT_API_NAME/:FIELD_API_NAME/:TARGET_API_NAME",
"host": [
"{{_endpoint}}"
],
"path": [
"services",
"data",
"v{{version}}",
"ui-api",
"lookups",
":SOBJECT_API_NAME",
":FIELD_API_NAME",
":TARGET_API_NAME"
],
"query": [
{
"key": "dependentFieldBindings",
"value": "",
"description": "The dependent field bindings for dependent lookups. These field bindings represent the lookup filter that restricts the valid values for the field.\nSpecify field bindings in a comma-separated list in the format dependentFieldBindings=<FIELD_API_NAME1>=[FIELD_VALUE1],<FIELD_API_NAME2>=[FIELD_VALUE2].\n\nTo know whether a field is a dependent lookup, check the Object Info response body for a non-null filteredLookupInfo property. Specify the name and a value for each field in the controllingFields property. Get the field values from the Record response body. Both responses are returned from the /ui-api/record-ui/<RECORD_IDS> resource.",
"disabled": true
},
{
"key": "page",
"value": "",
"description": "The page number. The default value is 1.",
"disabled": true
},
{
"key": "pageSize",
"value": "",
"description": "The number of items per page. The default value is 25.\n",
"disabled": true
},
{
"key": "q",
"value": "",
"description": "The term the user is searching for.\nWhen searchType=Search, specify at least 2 characters. A wildcard at the end of the search term is implied. For example, q=ca returns Cat and Cats.\n\nWhen searchType=TypeAhead, specify at least 3 characters. A wildcard at the end of the search term is implied. You can’t use a ?.",
"disabled": true
},
{
"key": "searchType",
"value": "",
"description": "The type of search to perform. One of these values:\nRecent—Return most recently used matches.\nSearch—Search for records with searchable fields that match the query term.\nTypeAhead—Search for records whose names start with the query term.\nThe default value is Recent.",
"disabled": true
}
],
"variable": [
{
"key": "SOBJECT_API_NAME",
"value": "Contact",
"description": "The API name of a source object."
},
{
"key": "FIELD_API_NAME",
"value": "AccountId",
"description": "The API name of a lookup field on the source object."
},
{
"key": "TARGET_API_NAME",
"value": "Account",
"description": "The API name of the target (lookup) object."
}
]
}
},
"status": "OK",
"code": 200,
"_postman_previewlanguage": "json",
"header": [
{
"key": "Date",
"value": "Wed, 27 Sep 2023 16:10:07 GMT"
},
{
"key": "Strict-Transport-Security",
"value": "max-age=63072000; includeSubDomains"
},
{
"key": "X-Content-Type-Options",
"value": "nosniff"
},
{
"key": "X-XSS-Protection",
"value": "1; mode=block"
},
{
"key": "X-Robots-Tag",
"value": "none"
},
{
"key": "Cache-Control",
"value": "no-cache,must-revalidate,max-age=0,no-store,private"
},
{
"key": "Content-Type",
"value": "application/json;charset=UTF-8"
},
{
"key": "Vary",
"value": "Accept-Encoding"
},
{
"key": "Content-Encoding",
"value": "gzip"
},
{
"key": "Transfer-Encoding",
"value": "chunked"
}
],
"cookie": [
],
"body": "{\n \"count\": 2,\n \"currentPageToken\": null,\n \"currentPageUrl\": \"/services/data/v58.0/ui-api/lookups/Contact/AccountId/Account?searchType=Recent&page=1&pageSize=25\",\n \"nextPageToken\": null,\n \"nextPageUrl\": null,\n \"previousPageToken\": null,\n \"previousPageUrl\": null,\n \"records\": [\n {\n \"apiName\": \"Account\",\n \"childRelationships\": {},\n \"eTag\": \"2316c5f4a27ac31b407d91aab610b281\",\n \"fields\": {\n \"DisambiguationField\": {\n \"displayValue\": null,\n \"value\": null\n },\n \"Id\": {\n \"displayValue\": null,\n \"value\": \"001B000000UnQ2yIAF\"\n },\n \"Name\": {\n \"displayValue\": null,\n \"value\": \"Dickenson plc\"\n },\n \"Site\": {\n \"displayValue\": null,\n \"value\": null\n }\n },\n \"id\": \"001B000000UnQ2yIAF\",\n \"lastModifiedById\": \"005B0000003TOI6IAO\",\n \"lastModifiedDate\": \"2017-08-18T14:46:22.000Z\",\n \"recordTypeId\": \"012000000000000AAA\",\n \"recordTypeInfo\": null,\n \"systemModstamp\": \"2017-08-18T14:46:22.000Z\",\n \"weakEtag\": 1503067582000\n },\n {\n \"apiName\": \"Account\",\n \"childRelationships\": {},\n \"eTag\": \"cb5afb4494d9c9f6f81ab0e5f214585c\",\n \"fields\": {\n \"DisambiguationField\": {\n \"displayValue\": null,\n \"value\": null\n },\n \"Id\": {\n \"displayValue\": null,\n \"value\": \"001B000000UnQ2wIAF\"\n },\n \"Name\": {\n \"displayValue\": null,\n \"value\": \"Burlington Textiles Corp of America\"\n },\n \"Site\": {\n \"displayValue\": null,\n \"value\": null\n }\n },\n \"id\": \"001B000000UnQ2wIAF\",\n \"lastModifiedById\": \"005B0000003TOI6IAO\",\n \"lastModifiedDate\": \"2017-08-18T14:46:22.000Z\",\n \"recordTypeId\": \"012000000000000AAA\",\n \"recordTypeInfo\": null,\n \"systemModstamp\": \"2017-08-18T14:46:22.000Z\",\n \"weakEtag\": 1503067582000\n }\n ]\n}"
}
]
}