Chilkat Online Tools

Xojo / Orchestrator / Assets - Get all + Per Robot Values

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 Chilkat.Http
Dim success As Boolean

Dim queryParams As New Chilkat.JsonObject
success = queryParams.UpdateString("$expand","RobotValues")

http.SetRequestHeader "Content-Type","application/json"
// Adds the "Authorization: Bearer <access_token>" header.
http.AuthToken = "<access_token>"
http.SetRequestHeader "X-UIPATH-OrganizationUnitId","{{folderId}}"
http.SetRequestHeader "X-UIPATH-TenantName","{{tenantName}}"

Dim resp As Chilkat.HttpResponse
resp = http.QuickRequestParams("GET","https://domain.com/odata/Assets",queryParams)
If (http.LastMethodSuccess = False) Then
    System.DebugLog(http.LastErrorText)
    Return
End If

Dim sbResponseBody As New Chilkat.StringBuilder
success = resp.GetBodySb(sbResponseBody)

Dim jResp As New Chilkat.JsonObject
success = jResp.LoadSb(sbResponseBody)
jResp.EmitCompact = False

System.DebugLog("Response Body:")
System.DebugLog(jResp.Emit())

Dim respStatusCode As Int32
respStatusCode = resp.StatusCode
System.DebugLog("Response Status Code = " + Str(respStatusCode))
If (respStatusCode >= 400) Then
    System.DebugLog("Response Header:")
    System.DebugLog(resp.Header)
    System.DebugLog("Failed.")

    Return
End If

// Sample JSON response:
// (Sample code for parsing the JSON response is shown below)

// {
//   "@odata.context": "https://platform.uipath.com/deanmauro/dean/odata/$metadata#Assets",
//   "@odata.count": 2,
//   "value": [
//     {
//       "Name": "Asset 2",
//       "CanBeDeleted": true,
//       "ValueScope": "Global",
//       "ValueType": "Text",
//       "Value": "I would not, Cassius, yet I love him well.",
//       "StringValue": "I would not, Cassius, yet I love him well.",
//       "BoolValue": false,
//       "IntValue": 0,
//       "CredentialUsername": "",
//       "CredentialPassword": "",
//       "ExternalName": "",
//       "CredentialStoreId": null,
//       "HasDefaultValue": true,
//       "Description": null,
//       "Id": 8588,
//       "KeyValueList": [
//       ],
//       "RobotValues": [
//       ]
//     },
//     {
//       "Name": "blah",
//       "CanBeDeleted": true,
//       "ValueScope": "PerRobot",
//       "ValueType": "Integer",
//       "Value": null,
//       "StringValue": "",
//       "BoolValue": false,
//       "IntValue": 0,
//       "CredentialUsername": "",
//       "CredentialPassword": "",
//       "ExternalName": "",
//       "CredentialStoreId": null,
//       "HasDefaultValue": false,
//       "Description": null,
//       "Id": 23656,
//       "KeyValueList": [
//       ],
//       "RobotValues": [
//         {
//           "RobotId": 33530,
//           "RobotName": "joe",
//           "KeyTrail": "***4ef589a",
//           "ValueType": "Integer",
//           "StringValue": "",
//           "BoolValue": false,
//           "IntValue": 1,
//           "Value": "1",
//           "CredentialUsername": "",
//           "CredentialPassword": "",
//           "ExternalName": "",
//           "CredentialStoreId": null,
//           "Id": 199104,
//           "KeyValueList": [
//           ]
//         },
//         {
//           "RobotId": 42307,
//           "RobotName": "jose",
//           "KeyTrail": "***88bvb04",
//           "ValueType": "Integer",
//           "StringValue": "",
//           "BoolValue": false,
//           "IntValue": 2,
//           "Value": "2",
//           "CredentialUsername": "",
//           "CredentialPassword": "",
//           "ExternalName": "",
//           "CredentialStoreId": null,
//           "Id": 199105,
//           "KeyValueList": [
//           ]
//         }
//       ]
//     }
//   ]
// }

// Sample code for parsing the JSON response...
// Use this online tool to generate parsing code from sample JSON: Generate JSON Parsing Code

Dim Name As String
Dim CanBeDeleted As Boolean
Dim ValueScope As String
Dim ValueType As String
Dim Value As String
Dim StringValue As String
Dim BoolValue As Boolean
Dim IntValue As Int32
Dim CredentialUsername As String
Dim CredentialPassword As String
Dim ExternalName As String
Dim CredentialStoreId As String
Dim HasDefaultValue As Boolean
Dim Description As String
Dim Id As Int32
Dim j As Int32
Dim count_j As Int32
Dim RobotId As Int32
Dim RobotName As String
Dim KeyTrail As String
Dim k As Int32
Dim count_k As Int32

Dim odata_context As String
odata_context = jResp.StringOf("""@odata.context""")
Dim odata_count As Int32
odata_count = jResp.IntOf("""@odata.count""")
Dim i As Int32
i = 0
Dim count_i As Int32
count_i = jResp.SizeOfArray("value")
While i < count_i
    jResp.I = i
    Name = jResp.StringOf("value[i].Name")
    CanBeDeleted = jResp.BoolOf("value[i].CanBeDeleted")
    ValueScope = jResp.StringOf("value[i].ValueScope")
    ValueType = jResp.StringOf("value[i].ValueType")
    Value = jResp.StringOf("value[i].Value")
    StringValue = jResp.StringOf("value[i].StringValue")
    BoolValue = jResp.BoolOf("value[i].BoolValue")
    IntValue = jResp.IntOf("value[i].IntValue")
    CredentialUsername = jResp.StringOf("value[i].CredentialUsername")
    CredentialPassword = jResp.StringOf("value[i].CredentialPassword")
    ExternalName = jResp.StringOf("value[i].ExternalName")
    CredentialStoreId = jResp.StringOf("value[i].CredentialStoreId")
    HasDefaultValue = jResp.BoolOf("value[i].HasDefaultValue")
    Description = jResp.StringOf("value[i].Description")
    Id = jResp.IntOf("value[i].Id")
    j = 0
    count_j = jResp.SizeOfArray("value[i].KeyValueList")
    While j < count_j
        jResp.J = j
        j = j + 1
    Wend
    j = 0
    count_j = jResp.SizeOfArray("value[i].RobotValues")
    While j < count_j
        jResp.J = j
        RobotId = jResp.IntOf("value[i].RobotValues[j].RobotId")
        RobotName = jResp.StringOf("value[i].RobotValues[j].RobotName")
        KeyTrail = jResp.StringOf("value[i].RobotValues[j].KeyTrail")
        ValueType = jResp.StringOf("value[i].RobotValues[j].ValueType")
        StringValue = jResp.StringOf("value[i].RobotValues[j].StringValue")
        BoolValue = jResp.BoolOf("value[i].RobotValues[j].BoolValue")
        IntValue = jResp.IntOf("value[i].RobotValues[j].IntValue")
        Value = jResp.StringOf("value[i].RobotValues[j].Value")
        CredentialUsername = jResp.StringOf("value[i].RobotValues[j].CredentialUsername")
        CredentialPassword = jResp.StringOf("value[i].RobotValues[j].CredentialPassword")
        ExternalName = jResp.StringOf("value[i].RobotValues[j].ExternalName")
        CredentialStoreId = jResp.StringOf("value[i].RobotValues[j].CredentialStoreId")
        Id = jResp.IntOf("value[i].RobotValues[j].Id")
        k = 0
        count_k = jResp.SizeOfArray("value[i].RobotValues[j].KeyValueList")
        While k < count_k
            jResp.K = k
            k = k + 1
        Wend
        j = j + 1
    Wend
    i = i + 1
Wend

Curl Command

curl -G -d "$expand=RobotValues"
	-H "Authorization: Bearer <access_token>"
	-H "Content-Type: application/json"
	-H "X-UIPATH-TenantName: {{tenantName}}"
	-H "X-UIPATH-OrganizationUnitId: {{folderId}}"
https://domain.com/odata/Assets

Postman Collection Item JSON

{
  "name": "Assets - Get all + Per Robot Values",
  "event": [
    {
      "listen": "test",
      "script": {
        "exec": [
          ""
        ],
        "type": "text/javascript"
      }
    }
  ],
  "request": {
    "method": "GET",
    "header": [
      {
        "key": "Content-Type",
        "value": "application/json",
        "type": "text"
      },
      {
        "key": "X-UIPATH-TenantName",
        "value": "{{tenantName}}",
        "type": "text"
      },
      {
        "key": "X-UIPATH-OrganizationUnitId",
        "value": "{{folderId}}",
        "type": "text"
      }
    ],
    "url": {
      "raw": "{{url}}/odata/Assets?$expand=RobotValues",
      "host": [
        "{{url}}"
      ],
      "path": [
        "odata",
        "Assets"
      ],
      "query": [
        {
          "key": "$expand",
          "value": "RobotValues"
        }
      ]
    },
    "description": "Get all Assets and display Per Robot values in the response. For global Assets, this call provides no extra features."
  },
  "response": [
    {
      "name": "Assets - Get all (Including Per Robot Values)",
      "originalRequest": {
        "method": "GET",
        "header": [
        ],
        "url": {
          "raw": "{{url}}/odata/Assets?$expand=RobotValues",
          "host": [
            "{{url}}"
          ],
          "path": [
            "odata",
            "Assets"
          ],
          "query": [
            {
              "key": "$expand",
              "value": "RobotValues"
            }
          ]
        }
      },
      "status": "OK",
      "code": 200,
      "_postman_previewlanguage": "json",
      "header": [
        {
          "key": "CF-RAY",
          "value": "443012f809dd91fa-EWR",
          "name": "CF-RAY",
          "description": "Custom header"
        },
        {
          "key": "Cache-Control",
          "value": "no-store, must-revalidate, no-cache, max-age=0",
          "name": "Cache-Control",
          "description": "Tells all caching mechanisms from server to client whether they may cache this object. It is measured in seconds"
        },
        {
          "key": "Connection",
          "value": "keep-alive",
          "name": "Connection",
          "description": "Options that are desired for the connection"
        },
        {
          "key": "Content-Encoding",
          "value": "gzip",
          "name": "Content-Encoding",
          "description": "The type of encoding used on the data."
        },
        {
          "key": "Content-Length",
          "value": "588",
          "name": "Content-Length",
          "description": "The length of the response body in octets (8-bit bytes)"
        },
        {
          "key": "Content-Type",
          "value": "application/json; odata.metadata=minimal",
          "name": "Content-Type",
          "description": "The mime type of this content"
        },
        {
          "key": "Date",
          "value": "Tue, 31 Jul 2018 12:30:03 GMT",
          "name": "Date",
          "description": "The date and time that the message was sent"
        },
        {
          "key": "Expect-CT",
          "value": "max-age=604800, report-uri=\"https://report-uri.cloudflare.com/cdn-cgi/beacon/expect-ct\"",
          "name": "Expect-CT",
          "description": "Custom header"
        },
        {
          "key": "OData-Version",
          "value": "4.0",
          "name": "OData-Version",
          "description": "Custom header"
        },
        {
          "key": "Server",
          "value": "cloudflare",
          "name": "Server",
          "description": "A name for the server"
        },
        {
          "key": "Set-Cookie",
          "value": "; SameSite=lax",
          "name": "Set-Cookie",
          "description": "an HTTP cookie"
        },
        {
          "key": "Strict-Transport-Security",
          "value": "max-age=31536000; includeSubDomains",
          "name": "Strict-Transport-Security",
          "description": "A HSTS Policy informing the HTTP client how long to cache the HTTPS only policy and whether this applies to subdomains."
        },
        {
          "key": "Vary",
          "value": "Accept-Encoding",
          "name": "Vary",
          "description": "Tells downstream proxies how to match future request headers to decide whether the cached response can be used rather than requesting a fresh one from the origin server."
        },
        {
          "key": "X-Content-Type-Options",
          "value": "nosniff",
          "name": "X-Content-Type-Options",
          "description": "The only defined value, \"nosniff\", prevents Internet Explorer from MIME-sniffing a response away from the declared content-type"
        },
        {
          "key": "X-Frame-Options",
          "value": "DENY",
          "name": "X-Frame-Options",
          "description": "Clickjacking protection: \"deny\" - no rendering within a frame, \"sameorigin\" - no rendering if origin mismatch"
        },
        {
          "key": "api-supported-versions",
          "value": "5.0",
          "name": "api-supported-versions",
          "description": "Custom header"
        }
      ],
      "cookie": [
        {
          "expires": "Wed Dec 19 2018 11:35:02 GMT-0600 (Central Standard Time)",
          "httpOnly": true,
          "domain": "uipath.com",
          "path": "/",
          "secure": true,
          "value": "d3b89a558feb68050f4b847c971f595771513704902",
          "key": "__cfduid"
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata/QueueProcessingRecords",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/api/RobotsService",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata/Processes",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata/Settings",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata/Robots",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata/Queues",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata/Assets",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/api/Account",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata/Users",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata/Jobs",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/api/Logs",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/Account",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/odata",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/api",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/",
          "secure": false,
          "value": "",
          "key": ""
        },
        {
          "expires": "Mon Jan 18 2038 21:14:07 GMT-0600 (Central Standard Time)",
          "httpOnly": false,
          "domain": "platform.uipath.com",
          "path": "/",
          "secure": false,
          "value": "GC-osp2U-YDhoXTOqXnUp3DaN1cN_siVCaNVue_jljOcqJLYHQrRk5msz52KHL8XauydRYx_3JyjLtLDpItypCPdEL20jFnxlF2g-f86Qk41",
          "key": "__RequestVerificationToken"
        }
      ],
      "body": "{\r\n    \"@odata.context\": \"https://platform.uipath.com/deanmauro/dean/odata/$metadata#Assets\",\r\n    \"@odata.count\": 2,\r\n    \"value\": [\r\n        {\r\n            \"Name\": \"Asset 2\",\r\n            \"CanBeDeleted\": true,\r\n            \"ValueScope\": \"Global\",\r\n            \"ValueType\": \"Text\",\r\n            \"Value\": \"I would not, Cassius, yet I love him well.\",\r\n            \"StringValue\": \"I would not, Cassius, yet I love him well.\",\r\n            \"BoolValue\": false,\r\n            \"IntValue\": 0,\r\n            \"CredentialUsername\": \"\",\r\n            \"CredentialPassword\": \"\",\r\n            \"ExternalName\": \"\",\r\n            \"CredentialStoreId\": null,\r\n            \"HasDefaultValue\": true,\r\n            \"Description\": null,\r\n            \"Id\": 8588,\r\n            \"KeyValueList\": [],\r\n            \"RobotValues\": []\r\n        },\r\n        {\r\n            \"Name\": \"blah\",\r\n            \"CanBeDeleted\": true,\r\n            \"ValueScope\": \"PerRobot\",\r\n            \"ValueType\": \"Integer\",\r\n            \"Value\": null,\r\n            \"StringValue\": \"\",\r\n            \"BoolValue\": false,\r\n            \"IntValue\": 0,\r\n            \"CredentialUsername\": \"\",\r\n            \"CredentialPassword\": \"\",\r\n            \"ExternalName\": \"\",\r\n            \"CredentialStoreId\": null,\r\n            \"HasDefaultValue\": false,\r\n            \"Description\": null,\r\n            \"Id\": 23656,\r\n            \"KeyValueList\": [],\r\n            \"RobotValues\": [\r\n                {\r\n                    \"RobotId\": 33530,\r\n                    \"RobotName\": \"joe\",\r\n                    \"KeyTrail\": \"***4ef589a\",\r\n                    \"ValueType\": \"Integer\",\r\n                    \"StringValue\": \"\",\r\n                    \"BoolValue\": false,\r\n                    \"IntValue\": 1,\r\n                    \"Value\": \"1\",\r\n                    \"CredentialUsername\": \"\",\r\n                    \"CredentialPassword\": \"\",\r\n                    \"ExternalName\": \"\",\r\n                    \"CredentialStoreId\": null,\r\n                    \"Id\": 199104,\r\n                    \"KeyValueList\": []\r\n                },\r\n                {\r\n                    \"RobotId\": 42307,\r\n                    \"RobotName\": \"jose\",\r\n                    \"KeyTrail\": \"***88bvb04\",\r\n                    \"ValueType\": \"Integer\",\r\n                    \"StringValue\": \"\",\r\n                    \"BoolValue\": false,\r\n                    \"IntValue\": 2,\r\n                    \"Value\": \"2\",\r\n                    \"CredentialUsername\": \"\",\r\n                    \"CredentialPassword\": \"\",\r\n                    \"ExternalName\": \"\",\r\n                    \"CredentialStoreId\": null,\r\n                    \"Id\": 199105,\r\n                    \"KeyValueList\": []\r\n                }\r\n            ]\r\n        }\r\n    ]\r\n}"
    }
  ]
}