有谁知道此错误消息的原因是什么?这是我认为触发该错误的代码。(这是来自我们的定制项目),当我选择超过 1 个项目时会触发错误。
foreach (InventoryItem line in soinvlineview.Cache.Cached)
{
if (line.Selected == true)
{
StyleColorSelected newline = PXCache<StyleColorSelected>.CreateCopy(styleselected.Insert(new StyleColorSelected()));
newline.InventoryID = line.InventoryID;
newline = PXCache<StyleColorSelected>.CreateCopy(styleselected.Update(newline));
styleselected.Update(newline);
}
}
首先,CreateCopy 方法对于 ver 是强制性的。4.0 及更早版本。开始版本。4.1,你根本不需要使用它。这是您的代码可以简化的方式:
foreach (InventoryItem line in soinvlineview.Cache.Cached)
{
if (line.Selected == true)
{
StyleColorSelected newline = styleselected.Insert(new StyleColorSelected());
newline.InventoryID = line.InventoryID;
styleselected.Update(newline);
}
}
我怀疑,您的自定义 StyleColorSelected DAC 要么没有指定关键字段,要么在关键字段上使用的属性不生成唯一值 - 这导致没有记录插入 PXCache(插入方法返回 null 而不是插入的值)和大多数可能导致函数“MoveNext”中发生报告的未处理异常。请您仔细检查 StyleColorSelected DAC 的实现,并更新您的代码,如下所示,以验证关键字段是否设置了唯一值,并且记录始终插入到 PXCache 中。
foreach (InventoryItem line in soinvlineview.Cache.Cached)
{
if (line.Selected == true)
{
StyleColorSelected newline = new StyleColorSelected();
// if necessary assign unique values to key field(s) here
newline = styleselected.Insert(newline);
if (newline == null) throw PXException("StyleColorSelected was not inserted in the cache!");
newline.InventoryID = line.InventoryID;
styleselected.Update(newline);
}
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句