Chilkat Online Tools

DataFlex / Salesforce Platform APIs / Get Child Records

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 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/records/:RECORD_ID/child-relationships/:RELATIONSHIP_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": 1,
    //   "currentPageToken": "1;5;001B000000UnQ2wIAF;Contacts;Contact.Id,Contact.Name;",
    //   "currentPageUrl": "/services/data/v58.0/ui-api/records/001B000000UnQ2wIAF/child-relationships/Contacts?fields=Contact.Id%2CContact.Name&page=1&pageSize=5",
    //   "nextPageToken": null,
    //   "nextPageUrl": null,
    //   "previousPageToken": null,
    //   "previousPageUrl": null,
    //   "records": [
    //     {
    //       "apiName": "Contact",
    //       "childRelationships": {},
    //       "eTag": "c3d33add9008aed557a1efa68173aa9b",
    //       "fields": {
    //         "AccountId": {
    //           "displayValue": null,
    //           "value": "001B000000UnQ2wIAF"
    //         },
    //         "Id": {
    //           "displayValue": null,
    //           "value": "003B00000097MToIAM"
    //         },
    //         "Name": {
    //           "displayValue": null,
    //           "value": "Jack Rogers"
    //         }
    //       },
    //       "id": "003B00000097MToIAM",
    //       "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.AccountId.displayValue" To sDisplayValue
        Get ComStringOf Of hoJResp "records[i].fields.AccountId.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].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/records/:RECORD_ID/child-relationships/:RELATIONSHIP_NAME

Postman Collection Item JSON

{
  "name": "Get Child Records",
  "request": {
    "method": "GET",
    "header": [
    ],
    "url": {
      "raw": "{{_endpoint}}/services/data/v{{version}}/ui-api/records/:RECORD_ID/child-relationships/:RELATIONSHIP_NAME\n",
      "host": [
        "{{_endpoint}}"
      ],
      "path": [
        "services",
        "data",
        "v{{version}}",
        "ui-api",
        "records",
        ":RECORD_ID",
        "child-relationships",
        ":RELATIONSHIP_NAME\n"
      ],
      "query": [
        {
          "key": "fields",
          "value": "",
          "description": "Specifies the fields to return. If this property is specified, the response is a union of fields and optionalFields.\nIf the context user doesn’t have access to a field, an error is returned.\n\nIf you’re not sure whether the context user has access to a field and you don’t want the request to fail if they don’t, use the optionalFields parameter.\n\nSpecify names in the format ObjectApiName.FieldName. You can get any field that has a named relationship to this record. There is no limit to the number of fields you can specify.",
          "disabled": true
        },
        {
          "key": "optionalFields",
          "value": "",
          "description": "A collection of optional field names. If a field is accessible to the context user, it’s included in the response. If a field isn’t accessible to the context user, it isn’t included in the response, but it doesn’t cause an error.\nSpecify names in the format ObjectApiName.FieldName. You can get any field that has a named relationship to this record. There is no limit to the number of fields you can specify.",
          "disabled": true
        },
        {
          "key": "page",
          "value": "",
          "description": "The page offset from which to begin returning records. The default value is 0, which returns records from the first page. For example, for page=2 and pageSize=10, the first record returned is the 21st record in the list.",
          "disabled": true
        },
        {
          "key": "pageSize",
          "value": "",
          "description": "The maximum number of child records to return on a page. The default value is 5.",
          "disabled": true
        },
        {
          "key": "pageToken",
          "value": "",
          "description": "A token that represents the page offset.",
          "disabled": true
        }
      ],
      "variable": [
        {
          "key": "RECORD_ID",
          "value": "",
          "description": "Record ID"
        },
        {
          "key": "RELATIONSHIP_NAME\n",
          "value": "",
          "description": "API name of the relationship"
        }
      ]
    },
    "description": "Get child records for a specified record and child relationship name. Relationships are connections between records. On a record detail page, each record in a related list has a child relationship to the parent record."
  },
  "response": [
    {
      "name": "Get Child Records",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{_endpoint}}/services/data/v{{version}}/ui-api/records/:RECORD_ID/child-relationships/:RELATIONSHIP_NAME\n",
          "host": [
            "{{_endpoint}}"
          ],
          "path": [
            "services",
            "data",
            "v{{version}}",
            "ui-api",
            "records",
            ":RECORD_ID",
            "child-relationships",
            ":RELATIONSHIP_NAME\n"
          ],
          "query": [
            {
              "key": "fields",
              "value": "",
              "description": "Specifies the fields to return. If this property is specified, the response is a union of fields and optionalFields.\nIf the context user doesn’t have access to a field, an error is returned.\n\nIf you’re not sure whether the context user has access to a field and you don’t want the request to fail if they don’t, use the optionalFields parameter.\n\nSpecify names in the format ObjectApiName.FieldName. You can get any field that has a named relationship to this record. There is no limit to the number of fields you can specify.",
              "disabled": true
            },
            {
              "key": "optionalFields",
              "value": "",
              "description": "A collection of optional field names. If a field is accessible to the context user, it’s included in the response. If a field isn’t accessible to the context user, it isn’t included in the response, but it doesn’t cause an error.\nSpecify names in the format ObjectApiName.FieldName. You can get any field that has a named relationship to this record. There is no limit to the number of fields you can specify.",
              "disabled": true
            },
            {
              "key": "page",
              "value": "",
              "description": "The page offset from which to begin returning records. The default value is 0, which returns records from the first page. For example, for page=2 and pageSize=10, the first record returned is the 21st record in the list.",
              "disabled": true
            },
            {
              "key": "pageSize",
              "value": "",
              "description": "The maximum number of child records to return on a page. The default value is 5.",
              "disabled": true
            },
            {
              "key": "pageToken",
              "value": "",
              "description": "A token that represents the page offset.",
              "disabled": true
            }
          ],
          "variable": [
            {
              "key": "RECORD_ID",
              "value": "001B000000UnQ2wIAF",
              "description": "Record ID"
            },
            {
              "key": "RELATIONSHIP_NAME\n",
              "value": "Contacts",
              "description": "API name of the relationship"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "Date",
          "value": "Wed, 27 Sep 2023 15:57:35 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\": 1,\n    \"currentPageToken\": \"1;5;001B000000UnQ2wIAF;Contacts;Contact.Id,Contact.Name;\",\n    \"currentPageUrl\": \"/services/data/v58.0/ui-api/records/001B000000UnQ2wIAF/child-relationships/Contacts?fields=Contact.Id%2CContact.Name&page=1&pageSize=5\",\n    \"nextPageToken\": null,\n    \"nextPageUrl\": null,\n    \"previousPageToken\": null,\n    \"previousPageUrl\": null,\n    \"records\": [\n        {\n            \"apiName\": \"Contact\",\n            \"childRelationships\": {},\n            \"eTag\": \"c3d33add9008aed557a1efa68173aa9b\",\n            \"fields\": {\n                \"AccountId\": {\n                    \"displayValue\": null,\n                    \"value\": \"001B000000UnQ2wIAF\"\n                },\n                \"Id\": {\n                    \"displayValue\": null,\n                    \"value\": \"003B00000097MToIAM\"\n                },\n                \"Name\": {\n                    \"displayValue\": null,\n                    \"value\": \"Jack Rogers\"\n                }\n            },\n            \"id\": \"003B00000097MToIAM\",\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}"
    }
  ]
}