首页 > 解决方案 > 在销售订单复制订单操作中未获得“this._Graph.Caches”

问题描述

在销售订单上,当我复制订单操作时。我的代码错误,因为检索“this._Graph.Caches[BqlCommand.GetItemType(selectorInventoryID)];”的行 is = 0。除了前面提到的操作外,程序运行良好。

private Type selectorOrderNbr;
private Type selectorInventoryID;

public ItemDiscountClassAttribute() : base(typeof(ARDiscount.discountID))
{}
protected virtual IEnumerable GetRecords()
{
 this.selectorOrderNbr = typeof(SOOrder.orderNbr);
 var cache1 = this._Graph.Caches[BqlCommand.GetItemType(selectorOrderNbr)];             
 var order = (SOOrder)cache1.Current;

 this.selectorInventoryID = typeof(SOLine.inventoryID);
 var cache2 = this._Graph.Caches[BqlCommand.GetItemType(selectorInventoryID)];
 var line = (SOLine)cache2.Current;

应该是:cache2 = "{PXCache(1)}"

但输出是:cache2 = "{PXCache(0)}"

var cache2 为 0 且 var line 为空的突出显示部分 代码。 var cache2 为 0 且 var line 为空的突出显示部分

标签: acumatica

解决方案


通读您的代码,它看起来会显示基于 SOLine 应用的折扣。也许问题是在 SOLine 上设置 InventoryID 之前应用了折扣代码?如果您更新对基于 LineNbr 的行的搜索,您仍然可能有一个空的 InventoryID。也许在没有找到 InventoryID 时返回所有折扣可能会通过复制操作?如果这是问题所在,您可以通过选择新行、跳过项目并首先选择折扣代码来重现该行为。


推荐阅读