USA
800 691 9120
UK
01225 704844
We use cookies on our website to analyze website usage and to help secure the website against misuse. Advertising and functional cookies are not used in our site or our web application products.
By clicking “Accept Essential Cookies Only”, you consent to us placing these cookies.
This function performs multiple actions
Any query can be run, this function is the primary way to execute a query in an API call, and queries are not restricted to being based on the asset table, but can query any set of tables in the data model
All XML is represented in the standardized structure documentelement - records - fields
Passing Argument 0 as a query ID or query name is sufficient to run a query that does not expect parameters
"NEW" to return the XML template needed to create a new asset record
"EDIT" All asset fields
SavedSelectID Run the query with this ID
SavedSelectName Run the query with this name
When argument 0 = NEW or EDIT
When argument 0 implies a query
Query data in XML format
Imports System.Text
Imports Newtonsoft.Json.Linq
Public Module Module1
Public Sub Main()
Try
' Enter your API key and company database name in these variables
Dim _db As String = "mycompany"
Dim apikey As String = "YOURAPIKEY"
' Open a web client to login
Dim web As New System.Net.WebClient()
Dim urlroot as String = "https://" & _db & ".yourxassetsplatform.xassets.net/api"
Dim json As String = web.DownloadString(urlroot & "/api.ashx?apikey=" & apikey & "&database=" & _db & "&command=apilogon")
' Check the login for errors
Dim o As JObject = JObject.Parse(json)
Dim e As String = GetResultFromJson(o, "error")
If e <> "" Then
Throw New Exception(e)
End If
' Store the login hash, nonce and noncedate
Dim hash As String = GetResultFromJson(o, "hash")
Dim nonce As String = GetResultFromJson(o, "nonce")
Dim noncedate As Date = CDate(GetResultFromJson(o, "noncetime"))
If hash = "" Then
Throw New Exception("Unexpected error - a hash was not returned from the API logon process")
End If
Console.WriteLine("Logged on OK")
' Open a new web client to perform the API call
web = New System.Net.WebClient()
' Add the authorization header
web.Headers.Add("Authorization", "Bearer " & hash)
web.Headers.Add("Sec", _db & "|" & nonce & "|" & Format(noncedate, "dd-MMM-yyyy HH:mm:ss") & "|" & Format(noncedate, "fff"))
' Perform the actual API call
Dim url as String = urlroot & "/api.ashx?command=AssetXML&arg0=10269"
Dim data As String = web.DownloadString(url.ToString)
' Parse and output the data
Dim ob As JObject = JObject.Parse(data)
Dim err As String = GetResultFromJson(ob, "error")
If err <> "" Then
Throw New Exception(err)
End If
Dim xml As String = GetResultFromJson(ob, "returncode")
Console.WriteLine(xml)
Console.WriteLine("Finished - Press enter to close")
Catch ex As Exception
Console.WriteLine("Error:" & ex.Message & " - Press enter to close")
End Try
Console.ReadLine()
End Sub
Private Function GetResultFromJson(o As JObject, sFind As String) As String
For Each res As JObject In o.SelectTokens("data[*]")
If res("type").Value(Of String) = sFind Then
Return res("value").ToString
End If
Next
Return ""
End Function
End Module
Imports System.Text
Imports Newtonsoft.Json.Linq
Public Module Module1
Public Sub Main()
Try
' Enter your API key and company database name in these variables
Dim _db As String = "mycompany"
Dim apikey As String = "YOURAPIKEY"
' Open a web client to login
Dim web As New System.Net.WebClient()
Dim urlroot as String = "https://" & _db & ".yourxassetsplatform.xassets.net/api"
Dim json As String = web.DownloadString(urlroot & "/api.ashx?apikey=" & apikey & "&database=" & _db & "&command=apilogon")
' Check the login for errors
Dim o As JObject = JObject.Parse(json)
Dim e As String = GetResultFromJson(o, "error")
If e <> "" Then
Throw New Exception(e)
End If
' Store the login hash, nonce and noncedate
Dim hash As String = GetResultFromJson(o, "hash")
Dim nonce As String = GetResultFromJson(o, "nonce")
Dim noncedate As Date = CDate(GetResultFromJson(o, "noncetime"))
If hash = "" Then
Throw New Exception("Unexpected error - a hash was not returned from the API logon process")
End If
Console.WriteLine("Logged on OK")
' Open a new web client to perform the API call
web = New System.Net.WebClient()
' Add the authorization header
web.Headers.Add("Authorization", "Bearer " & hash)
web.Headers.Add("Sec", _db & "|" & nonce & "|" & Format(noncedate, "dd-MMM-yyyy HH:mm:ss") & "|" & Format(noncedate, "fff"))
' Perform the actual API call
Dim url as String = urlroot & "/api.ashx?command=AssetXML&arg0=EDIT&arg1=1"
Dim data As String = web.DownloadString(url.ToString)
' Parse and output the data
Dim ob As JObject = JObject.Parse(data)
Dim err As String = GetResultFromJson(ob, "error")
If err <> "" Then
Throw New Exception(err)
End If
Dim xml As String = GetResultFromJson(ob, "returncode")
Console.WriteLine(xml)
Console.WriteLine("Finished - Press enter to close")
Catch ex As Exception
Console.WriteLine("Error:" & ex.Message & " - Press enter to close")
End Try
Console.ReadLine()
End Sub
Private Function GetResultFromJson(o As JObject, sFind As String) As String
For Each res As JObject In o.SelectTokens("data[*]")
If res("type").Value(Of String) = sFind Then
Return res("value").ToString
End If
Next
Return ""
End Function
End Module
Try
ErrorMessage = ""
Return w.WebCommandProcessorArray(_hash, _username, _db, _ip, "AssetXML", {"10269"}, _dns, _port, _scheme, _nonce, _noncedate)
Catch ex As Exception
ErrorMessage = ex.Message
Return ""
End Try
Try
ErrorMessage = ""
Return w.WebCommandProcessorArray(_hash, _username, _db, _ip, "AssetXML", {"EDIT", "1"}, _dns, _port, _scheme, _nonce, _noncedate)
Catch ex As Exception
ErrorMessage = ex.Message
Return ""
End Try
Set xml = CommandProcessor "AssetXML", "10269"
Set xml = CommandProcessor "AssetXML", "EDIT", "1"
Dim xml As String = Server.API("AssetXML", "10269")
Dim xml As String = Server.API("AssetXML", "EDIT", "1")