Error: "An error occurred saving changes. Unable to convert xml to datatable, column list is empty."
search cancel

Error: "An error occurred saving changes. Unable to convert xml to datatable, column list is empty."

book

Article ID: 171646

calendar_today

Updated On:

Products

IT Management Suite Asset Management Solution

Issue/Introduction

When editing a Computer asset the change cannot be saved and the following message is returned:  

Severity: 1
Date: 5/7/2018 9:13:18 AM
Tick Count: 606041437
Host Name: <servername>
Process: w3wp (5480)
Thread: 559
Module: Altiris.AssetContractCommon.dll
Source: Altiris.AssetContractCommon.Controls.ResourceDetailsEditCtrl.SaveChanges
Description: Failed to save changes. 

Unable to convert xml to datatable, column list is empty.
   [Altiris.NS.Exceptions.AeXException @ Altiris.AssetContractCommon]
   at Altiris.AssetContractCommon.Controls.EditableGridControl.saveValuesToExistingDataTable(DataTable table)
   at Altiris.AssetContractCommon.Controls.ResourceDetailsEditCtrl.SaveDataClasses(ResourceItem item, AdminDatabaseContext dbCtx)
   at Altiris.AssetContractCommon.Controls.ResourceDetailsEditCtrl.SaveChanges(String newName)

Exception logged from: 
   at Altiris.AssetContractCommon.Controls.ResourceDetailsEditCtrl.SaveChanges(String)
   at Altiris.AssetContractCommon.Web.Manager.EditCreateResource.SaveChanges()
   at Altiris.AssetContractCommon.Web.Manager.EditCreateResource.btnApply_Click(Object, EventArgs)
   at System.Web.UI.WebControls.Button.OnClick(EventArgs)
   at System.Web.UI.WebControls.Button.RaisePostBackEvent(String)
   at System.Web.UI.Page.ProcessRequestMain(Boolean, Boolean)
   at System.Web.UI.Page.ProcessRequest(Boolean, Boolean)
   at System.Web.UI.Page.ProcessRequest()
   at System.Web.UI.Page.ProcessRequest(System.Web.HttpContext)
   at Altiris.NS.UI.Controls.PageCachePage.ProcessRequest(System.Web.HttpContext)
   at Altiris.NS.UI.AltirisPage.ProcessRequest(System.Web.HttpContext)
   at System.Web.HttpApplication+CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(System.Web.HttpApplication+IExecutionStep, Boolean&)
   at System.Web.HttpApplication+PipelineStepManager.ResumeSteps(Exception)
   at System.Web.HttpApplication.BeginProcessRequestNotification(System.Web.HttpContext, AsyncCallback)
   at System.Web.HttpRuntime.ProcessRequestNotificationPrivate(System.Web.Hosting.IIS7WorkerRequest, System.Web.HttpContext)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)
   at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus&)
   at System.Web.Hosting.UnsafeIISMethods.MgdIndicateCompletion(IntPtr, System.Web.RequestNotificationStatus&)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotificationHelper(IntPtr, IntPtr, IntPtr, Int32)
   at System.Web.Hosting.PipelineRuntime.ProcessRequestNotification(IntPtr, IntPtr, IntPtr, Int32)


HTTP [POST]: http://<servername)/Altiris/AssetContractCommon/Manager/EditCreateResource.aspx?itemguid=bcdc644d-5fc9-4da5-a5c2-6fdd963a85dc
 ip: [IPaddress]; languages: [en-US]; content-length: [271230];
 response: [200 OK]; x-smp-nsversion: [8.1.4528.0];



Environment

ITMS 8.1 RU6

Cause

Custom data class

Resolution

After looking at the a.log files and an Altiris Profiler trace, we found that the custom data class that is accessed was unidentified and it wasn't being used so it was unassociated from the Computer asset and deleted.