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 for the transformation are passed in XML form via this parameter
e.g. <p><AssetID>3</AssetID><DepreciationTypeID>7</DepreciationTypeID></p>
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
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
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
SaveSpecial "SpecialDBTransformRun","", "Synchronise With xAssets Discovery", "QUEUE"
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