Chilkat Online Tools

DataFlex / Salesforce Platform APIs / Get Lookup Field Suggestions for a Specified Object

Back to Collection Items

Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoHttp
    Boolean iSuccess
    Variant vSbResponseBody
    Handle hoSbResponseBody
    Handle hoJResp
    Integer iRespStatusCode
    String sApiName
    String sETag
    String sDisplayValue
    String sValue
    String sIdDisplayValue
    String sIdValue
    String sNameDisplayValue
    String sNameValue
    String sSiteDisplayValue
    String sSiteValue
    String sId
    String sLastModifiedById
    String sLastModifiedDate
    String sRecordTypeId
    String sRecordTypeInfo
    String sSystemModstamp
    Integer iWeakEtag
    Integer iCount
    String sCurrentPageToken
    String sCurrentPageUrl
    String sNextPageToken
    String sNextPageUrl
    String sPreviousPageToken
    String sPreviousPageUrl
    Integer i
    Integer iCount_i
    String sTemp1

    // This example assumes the Chilkat API to have been previously unlocked.
    // See Global Unlock Sample for sample code.

    Get Create (RefClass(cComChilkatHttp)) To hoHttp
    If (Not(IsComObjectCreated(hoHttp))) Begin
        Send CreateComObject of hoHttp
    End

    // Adds the "Authorization: Bearer <access_token>" header.
    Set ComAuthToken Of hoHttp To "<access_token>"

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSbResponseBody
    If (Not(IsComObjectCreated(hoSbResponseBody))) Begin
        Send CreateComObject of hoSbResponseBody
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComQuickGetSb Of hoHttp "https://domain.com/services/data/v{{version}}/ui-api/lookups/:SOBJECT_API_NAME/:FIELD_API_NAME/:TARGET_API_NAME" vSbResponseBody To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoHttp To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Get Create (RefClass(cComChilkatJsonObject)) To hoJResp
    If (Not(IsComObjectCreated(hoJResp))) Begin
        Send CreateComObject of hoJResp
    End
    Get pvComObject of hoSbResponseBody to vSbResponseBody
    Get ComLoadSb Of hoJResp vSbResponseBody To iSuccess
    Set ComEmitCompact Of hoJResp To False

    Showln "Response Body:"
    Get ComEmit Of hoJResp To sTemp1
    Showln sTemp1

    Get ComLastStatus Of hoHttp To iRespStatusCode
    Showln "Response Status Code = " iRespStatusCode
    If (iRespStatusCode >= 400) Begin
        Showln "Response Header:"
        Get ComLastHeader Of hoHttp To sTemp1
        Showln sTemp1
        Showln "Failed."
        Procedure_Return
    End

    // 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

    Get ComIntOf Of hoJResp "count" To iCount
    Get ComStringOf Of hoJResp "currentPageToken" To sCurrentPageToken
    Get ComStringOf Of hoJResp "currentPageUrl" To sCurrentPageUrl
    Get ComStringOf Of hoJResp "nextPageToken" To sNextPageToken
    Get ComStringOf Of hoJResp "nextPageUrl" To sNextPageUrl
    Get ComStringOf Of hoJResp "previousPageToken" To sPreviousPageToken
    Get ComStringOf Of hoJResp "previousPageUrl" To sPreviousPageUrl
    Move 0 To i
    Get ComSizeOfArray Of hoJResp "records" To iCount_i
    While (i < iCount_i)
        Set ComI Of hoJResp To i
        Get ComStringOf Of hoJResp "records[i].apiName" To sApiName
        Get ComStringOf Of hoJResp "records[i].eTag" To sETag
        Get ComStringOf Of hoJResp "records[i].fields.DisambiguationField.displayValue" To sDisplayValue
        Get ComStringOf Of hoJResp "records[i].fields.DisambiguationField.value" To sValue
        Get ComStringOf Of hoJResp "records[i].fields.Id.displayValue" To sIdDisplayValue
        Get ComStringOf Of hoJResp "records[i].fields.Id.value" To sIdValue
        Get ComStringOf Of hoJResp "records[i].fields.Name.displayValue" To sNameDisplayValue
        Get ComStringOf Of hoJResp "records[i].fields.Name.value" To sNameValue
        Get ComStringOf Of hoJResp "records[i].fields.Site.displayValue" To sSiteDisplayValue
        Get ComStringOf Of hoJResp "records[i].fields.Site.value" To sSiteValue
        Get ComStringOf Of hoJResp "records[i].id" To sId
        Get ComStringOf Of hoJResp "records[i].lastModifiedById" To sLastModifiedById
        Get ComStringOf Of hoJResp "records[i].lastModifiedDate" To sLastModifiedDate
        Get ComStringOf Of hoJResp "records[i].recordTypeId" To sRecordTypeId
        Get ComStringOf Of hoJResp "records[i].recordTypeInfo" To sRecordTypeInfo
        Get ComStringOf Of hoJResp "records[i].systemModstamp" To sSystemModstamp
        Get ComIntOf Of hoJResp "records[i].weakEtag" To iWeakEtag
        Move (i + 1) To i
    Loop



End_Procedure

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