The xAssets API - Method : AssetDependencyXML

Summary

Generate the records needed to display inter-asset dependencies.

Note that asset-dependency is also a supported type of query, so this API method is mainly of use to the system for editing AssetDependency records directly.

Parameters

Parameter : sArguments

0

"ASSET" or "CHILDREN" to return the child records for the AssetID provided.

"RELATEDASSET" to return the parent records of the AssetID provided.

"ASSETANDRELATEDASSET" returns self, parents and children of the given asset.

"ASSETMOVE" is used internally to return data related to drag and drop operations where the dropped asset becomes a parent or child of the target asset

"FIXEDLIST" to return the child records for all assets provided in argument 1

"REPORT" a predefined layout used to generate parent-child reports

"EDIT" returns all columns on the AssetDependency record, and is used for editing a record

1
The AssetID to return relationships for. Only FIXEDLIST and REPORT support multiple assets
2
DependencyTypeID - specify this field when the data returned should only contain relationships of a particular type

Returns

Asset-Dependency data in XML format.

Remarks

These records link two asset records by ID and a dependency type, start date and end date for the relationship are stored within this table, enabling multiple relationships of different types, plus future and terminated relationships

Syntax and Examples

Restful syntax with Microsoft Visual Basic

Example 1 - Get the Parent records for AssetID 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 & ".hosted.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=AssetDependencyXML&arg0=ASSET,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 - Get the peripheral records for AssetID 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 & ".hosted.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=AssetDependencyXML&arg0=CHILDREN,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 3 - Get the Parent and Child records for AssetID 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 & ".hosted.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=AssetDependencyXML&arg0=ASSETANDRELATEDASSET,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 - Get the Parent records for AssetID 3



    Try

        ErrorMessage = ""

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

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

Example 2 - Get the peripheral records for AssetID 3



    Try

        ErrorMessage = ""

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

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

Example 3 - Get the Parent and Child records for AssetID 3



    Try

        ErrorMessage = ""

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

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

AMSX Syntax

Example 1 - Get the Parent records for AssetID 3


    Set xml = CommandProcessor "AssetDependencyXML", "ASSET,arg1"
                        

Example 2 - Get the peripheral records for AssetID 3


    Set xml = CommandProcessor "AssetDependencyXML", "CHILDREN,arg1"
                        

Example 3 - Get the Parent and Child records for AssetID 3


    Set xml = CommandProcessor "AssetDependencyXML", "ASSETANDRELATEDASSET,arg1"
                        

XCS Syntax

Example 1 - Get the Parent records for AssetID 3


    Dim xml As String = Server.API("AssetDependencyXML", "ASSET,arg1")
                        

Example 2 - Get the peripheral records for AssetID 3


    Dim xml As String = Server.API("AssetDependencyXML", "CHILDREN,arg1")
                        

Example 3 - Get the Parent and Child records for AssetID 3


    Dim xml As String = Server.API("AssetDependencyXML", "ASSETANDRELATEDASSET,arg1")
                        

Download the Visual Studio API Samples Project

Return to the API Index Page