我正在使用使用dll Microsoft.Dynamics.AX.ManagedInterop與AX 2012環境一起工作的C#項目。從代碼中,我需要根據特定條件查找SalesQuotationLine並將其刪除。到目前爲止,我可以獲得我需要的記錄,但我無法刪除它,因爲我沒有使用TTSBEGIN/TTSCOMMI
T語句,而且我也沒有使用FORUPDATE
。這是我的代碼:使用ManagedInterop從C#中刪除記錄
DictTable dictTable = new DictTable(Global.tableName2Id("SalesQuotationLine"));
int quotationIdFieldId = (int)dictTable.Call("fieldName2Id", "QuotationId");
int bdcParentRecIdFieldId = (int)dictTable.Call("fieldName2Id", "BDCParentRecId");
var query = new Query();
var datasource = query.addDataSource(Global.tableName2Id("SalesQuotationLine"));
var queryRange1 = datasource.addRange(quotationIdFieldId);
queryRange1.value = "=" + line.QuotationId;
QueryRun queryRun = new QueryRun(query as object);
while (queryRun.next())
{
var result = queryRun.get(Global.tableName2Id("SalesQuotationLine"));
result.Delete();
}
我也看了一下代碼在這裏,http://msdn.microsoft.com/en-us/library/cc197113.aspx但我發現,因爲我一起工作的代碼不使用.NET Business Connector的,我不能用它(我不知道什麼時候一個DLL應該用於其他)。
我會使用X ++,但這是部署代碼,並且我已經瞭解到部署X ++代碼在最好的過程中是一個混亂的過程。特別是當AX服務器上有自己的代碼時。 –