如何解决如何以编程方式更新INKitRegister记录而没有错误?
以下代码成功插入了INKitRegister
记录。
public class SOOrderEntry_Extension : PXGraphExtension<SOOrderEntry>
{
#region Event Handlers
public virtual void _(Events.RowPersisting<SOLine> e)
{
SOLine soLine = e.Row;
InventoryItem inItem = PXSelect<InventoryItem,Where<InventoryItem.inventoryID,Equal<required<SOLine.inventoryID>>>>
.Select(new PXGraph(),soLine.InventoryID);
if (inItem == null)
return;
if (inItem.KitItem.HasValue && inItem.KitItem.Value)
{
SOLineExt soLineExt = soLine.GetExtension<SOLineExt>();
INKitRegister kit = null;
bool kitIsNew = false;
if (soLineExt.INKitRegisterDocType != null && soLineExt.INKitRegisterRefNbr != null)
{
kit = PXSelect<INKitRegister,Where<INKitRegister.docType,Equal<required<SOLineExt.iNKitRegisterDocType>>,And<INKitRegister.refNbr,Equal<required<SOLineExt.iNKitRegisterRefNbr>>>>>
.Select(new PXGraph(),soLineExt.INKitRegisterDocType,soLineExt.INKitRegisterRefNbr);
}
// If kit mix doesn't exist,create it
if (kit == null)
{
kit = new INKitRegister();
kitIsNew = true;
}
// Insert/update INKitRegister (new mix)
var graph = PXGraph.CreateInstance<KitAssemblyEntry>();
graph.Document.Current = kit;
graph.Document.Cache.SetValueExt<INKitRegister.tranDate>(kit,soLine.RequestDate);
if (kitIsNew)
{
graph.Document.Cache.SetValueExt<INKitRegister.kitInventoryID>(kit,soLine.InventoryID);
}
graph.Document.Cache.SetValueExt<INKitRegister.uOM>(kit,soLine.UOM);
graph.Document.Cache.SetValueExt<INKitRegister.qty>(kit,soLine.Qty);
//graph.Document.Cache.SetValueExt<INKitRegister.tranDesc>(kit,string.Format("{0} {1}",soLine.TranDesc));
kit = graph.Document.Cache.Update(kit) as INKitRegister;
graph.Actions.PressSave();
// Save the mix props to the SOLine
soLineExt.INKitRegisterDocType = kit.DocType;
soLineExt.INKitRegisterRefNbr = kit.RefNbr;
}
}
#endregion
}
当我尝试更改SOOrder的数量时,应该使用相同的代码来更新现有的INKitRegister
记录。
相反,我收到此错误:
错误:更新“ IN Kit”记录至少引发了一个错误。请检查错误。错误:“总费用”不能为空。错误:“ Ext。费用”不能为空。
(大概)在插入记录时自动计算“总成本”和“外部成本”。
问:为什么在Update上不再次计算这些值?我不知道从哪里开始手动计算它们,无论如何这似乎并不是一个好主意。>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。