The xAssets API - Method : SpecialDBTransformRun

Summary

Run a transformation. Transformations can perform any tasks including imports, exports, email notifications, data recognition and cleansing, integration to local systems and web services. Transformations can be run on a trigger, on a scheduled batch job or can be started by an application user from a menu item.

Parameters

Parameter : sXML

Parameters for the transformation are passed in XML form via this parameter

e.g. <p><AssetID>3</AssetID><DepreciationTypeID>7</DepreciationTypeID></p>

Parameter : sArguments

Either a list of transformations to run with the transformation name (DBTransformDesc) or the TransformationID, with one transformation listed per array element.

Special keywords can also be placed in any argument as follows:

TEST : Run the transformation normally, but then rollback the result such that any database changes do not take effect

SUPER : Run the transformation in the SUPER batch queue. This enables transformations to run as a batch job while other batch jobs are running. Take care with potential Sql Server table locking issues when using this option

QUEUE : Run the transformation in the normal batch queue. This enables the transformation to run and the end user can continue to use the system while it runs. The default is to not queue the transformation as a batch job, then the call does not return until the transformation has finished

Syntax and Examples

Restful syntax with Microsoft Visual Basic

Example 1 - Run the transformation "Load Now" as a batch job


    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=SpecialDBTransformRun&arg0=Synchronise With xAssets Discovery&arg1=QUEUE
                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 - Run the transformation "Load Now" as a batch job


    Try

        ErrorMessage = ""

        Return w.WebSaveSpecial(_hash, _username, _db, _ip, "", "SpecialDBTransformRun", {"Synchronise With xAssets Discovery", "QUEUE"}, False, _dns, _port, _scheme, _nonce, _noncedate)

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

                            

AMSX Syntax

Example 1 - Run the transformation "Load Now" as a batch job


    SaveSpecial "SpecialDBTransformRun","", "Synchronise With xAssets Discovery", "QUEUE"
                        

XCS Syntax

Example 1 - Run the transformation "Load Now" as a batch job


    Dim ret as String = Server.SaveSpecial("SpecialDBTransformRun","", "Synchronise With xAssets Discovery", "QUEUE")
    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.