The xAssets API - Method : SpecialAssetSplit

Summary

Split one asset into many assets. sXML is ignored

Parameters

Parameter : sXML

This parameter is ignored

Parameter : sArguments

0
AssetID to split
1
Number of assets to create
2
Quantity to assign to each asset
3
"move" to split all financial data including depreciation transactions
4
Minimum asset quantity - "" means 1, 0 means you are allowing the original asset to have a zero quantity as needed for spares deployment
5
not used

6, 7, 8 etc = Name value pairs for fields to set on the newly created records

Returns

If successful, an empty string is returned. If an error occurred, the return value contains the error message.

Syntax and Examples

Restful syntax with Microsoft Visual Basic

Example 1 - Split AssetID 6 with quantity 5 into 5 assets in total


    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=SpecialAssetSplit&arg0=6&arg1=4&arg2=1&arg3=0&arg4=1&arg5=&arg6=Notes&arg7=Asset Split down to single quantities
                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 - Split AssetID 6 with quantity 5 into 5 assets in total


    Try

        ErrorMessage = ""

        Return w.WebSaveSpecial(_hash, _username, _db, _ip, "", "SpecialAssetSplit", {"6", "4", "1", "0", "1", "", "Notes", "Asset Split down to single quantities"}, False, _dns, _port, _scheme, _nonce, _noncedate)

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

                            

AMSX Syntax

Example 1 - Split AssetID 6 with quantity 5 into 5 assets in total


    SaveSpecial "SpecialAssetSplit","", "6", "4", "1", "0", "1", "", "Notes", "Asset Split down to single quantities"
                        

XCS Syntax

Example 1 - Split AssetID 6 with quantity 5 into 5 assets in total


    Dim ret as String = Server.SaveSpecial("SpecialAssetSplit","", "6", "4", "1", "0", "1", "", "Notes", "Asset Split down to single quantities")
    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

© xAssets 2024 All rights reserved.