The xAssets API - Method : AssetCheckOutXML

Summary

Generate the checkout records needed for checking out an asset or a list of assets

Parameters

Parameter : sArguments

0
"NEW" or "EDIT". NEW will create a new asset checkout record to later be saved to the AssetCheckout database table. EDIT will generate data showing the current checkout status of an asset
1
"ASSETCURRENT"
2
AssetID - zero when Arguments(0) = NEW, otherwise the ID of the asset being edited
0
"EDIT"
1
"ASSETHISTORY" to generate a report of the checkout history of an asset
2
AssetID - the ID of the Asset to include in the report
0
"EDIT"
1
"FIXEDLIST" or "FIXEDLISTCURRENT" to generate a report of the checkout history of a list of assets
2
List of Asset IDs, comma separated
1
"FIXEDLISTREPORT" to generate the data needed for a report of the checkout history for a list of Asset IDs
2
List of Asset IDs, comma separated

Returns

Checkin/Checkout records in XML format

Syntax and Examples

Restful syntax with Microsoft Visual Basic

Example 1 - Create a new Checkout Record


    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=AssetCheckOutXML&arg0=NEW,arg1
                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
                

Example 2 - List all Checkout Records for Asset with ID 3


    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=AssetCheckOutXML&arg0=ASSETCURRENT,arg1
                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
                

SOAP Syntax with Microsoft Visual Basic

Example 1 - Create a new Checkout Record



    Try

        ErrorMessage = ""

        Return w.WebCommandProcessorArray(_hash, _username, _db, _ip, "AssetCheckOutXML", {"NEW,arg1"}, _dns, _port, _scheme, _nonce, _noncedate)

    Catch ex As Exception
        ErrorMessage = ex.Message
        Return ""
    End Try
                        

Example 2 - List all Checkout Records for Asset with ID 3



    Try

        ErrorMessage = ""

        Return w.WebCommandProcessorArray(_hash, _username, _db, _ip, "AssetCheckOutXML", {"ASSETCURRENT,arg1"}, _dns, _port, _scheme, _nonce, _noncedate)

    Catch ex As Exception
        ErrorMessage = ex.Message
        Return ""
    End Try
                        

AMSX Syntax

Example 1 - Create a new Checkout Record


    Set xml = CommandProcessor "AssetCheckOutXML", "NEW,arg1"
                        

Example 2 - List all Checkout Records for Asset with ID 3


    Set xml = CommandProcessor "AssetCheckOutXML", "ASSETCURRENT,arg1"
                        

XCS Syntax

Example 1 - Create a new Checkout Record


    Dim xml As String = Server.API("AssetCheckOutXML", "NEW,arg1")
                        

Example 2 - List all Checkout Records for Asset with ID 3


    Dim xml As String = Server.API("AssetCheckOutXML", "ASSETCURRENT,arg1")
                        

Download the Visual Studio API Samples Project

Return to the API Index Page

© xAssets 2024 All rights reserved.