我正在处理一个 C# 项目,该项目使用 dll Microsoft.Dynamics.AX.ManagedInterop 与 AX 2012 环境一起工作。在代码中,我需要根据特定条件找到一个 SalesQuotationLine 并将其删除。到目前为止,我可以获得我需要的记录,但我无法删除它,因为我没有使用TTSBEGIN/TTSCOMMI
T 语句并且我没有使用FORUPDATE
. 这是我的代码:
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而不是另一个)。