The xAssets API - Method : WebSaveXML

Summary

Save XML data into the database

Typically an API caller would retrieve data from a get function such as AssetXML, then load the xml string into an XML document object, then edit the data, and finally save the data using this method

Parameters

Parameter : sHash

sHash : The hash returned from the logon function

Parameter : sUserName

sUserName : The username of the logged on user

Parameter : sDatabase

sDatabase : The database name of your instance

Parameter : sIP

sIP : Your IP address. This must match your web facing IP address

Parameter : sXML

The XML to be saved

Parameter : bIgnoreWarnings

bIgnoreWarnings : Normally this is set to false. If true, warning triggers will be ignored and the data will either save or raise an error

Parameter : sDNS

sDNS : The DNS path of your instance

Parameter : lPort

lPort : The port of your instance (normally 443)

Parameter : sScheme

sScheme : This is always "https"

Parameter : sNonce

sNonce : This must be the nonce passed to you by the logon function

Parameter : datNonce

datNonce : This must be the nonce date passed to you by the logon function

Returns

Returns an empty string if the save was successful. Otherwise it returns an error message

Syntax and Examples

Restful syntax with Microsoft Visual Basic

Example 1


    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=WebSaveXML
                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


    Return w.WebSaveXML(sHash, sUserName, sDatabase, sIP, sXML, bIgnoreWarnings, sDNS, lPort, sScheme, sNonce, datNonce)
                            

AMSX Syntax

Example 1

AMSX is an internal language and does not need to access web services to execute

XCS Syntax

Example 1

XCS access the server through a web browser. API calls can be executed directly from API Commands using Server.API, Server.Save and Server.SaveSpecial

Download the Visual Studio API Samples Project

Return to the API Index Page

© xAssets 2024 All rights reserved.