Merge a list of assets into a single asset. A single asset is selected as the merge target, and the remaining assets in the list are merged onto it
A XML structure in the format required by the Asset Disposal API function SpecialBulkDisposal. This determines how the merged asset records are disposed of
11+ onwards = assetid of each asset being merged into sarg(0). If sArguments(11) contains commas then that one parameter is used as a list
If successful, an empty string is returned. If an error occurred, the return value contains the error message.
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=SpecialAssetMerge&arg0=6&arg1=6&arg2=&arg3=1&arg4=1&arg5=1&arg6=0&arg7=1&arg8=Notes&arg9=Asset merged&arg10=&arg11=3,4,5,6 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.WebSaveSpecial(_hash, _username, _db, _ip, "", "SpecialAssetMerge", {"6", "6", "", "1", "1", "1", "0", "1", "Notes", "Asset merged", "", "3,4,5,6"}, False, _dns, _port, _scheme, _nonce, _noncedate) Catch ex As Exception ErrorMessage = ex.Message Return " End Try
SaveSpecial "SpecialAssetMerge","", "6", "6", "", "1", "1", "1", "0", "1", "Notes", "Asset merged", "", "3,4,5,6"
Dim ret as String = Server.SaveSpecial("SpecialAssetMerge","", "6", "6", "", "1", "1", "1", "0", "1", "Notes", "Asset merged", "", "3,4,5,6") If ret = " Or ret.Substring(0, 8) = "special=" Then MsgBox("Save operation completed.", vbInformation, "Save Data") Else MsgBox("Save operation failed:" & ret, vbExclamation, "Save Data") End If
Download the Visual Studio API Samples Project
Return to the API Index Page