我在Acumatica中遇到问题。我在InventoryItem表上创建了一个触发器,将插入的记录插入到我的自定义表中。刷新库存物品屏幕
问题是,每当我尝试在Acumatica中保存新的库存商品时,它都不会反映库存商品的最后保存的正确数据。常规设置选项卡中的详细信息不正确。我需要关闭屏幕并重新打开才能看到正确的数据。
有人可以帮我关于如何在保存后立即获得刷新的库存项目屏幕。或者当有定制的触发器时,Acumatica中是否有错误?
我在Acumatica中遇到问题。我在InventoryItem表上创建了一个触发器,将插入的记录插入到我的自定义表中。刷新库存物品屏幕
问题是,每当我尝试在Acumatica中保存新的库存商品时,它都不会反映库存商品的最后保存的正确数据。常规设置选项卡中的详细信息不正确。我需要关闭屏幕并重新打开才能看到正确的数据。
有人可以帮我关于如何在保存后立即获得刷新的库存项目屏幕。或者当有定制的触发器时,Acumatica中是否有错误?
我没有检查你提到不刷新信息的问题,但如果你需要强制保存记录后刷新屏幕
,这样的代码可能如下[可能需要修改]
[PXOverride]
public void Persist(Action persit)
{
persit();// this will call base Persist();
InventoryItemMaint grp = PXGraph.CreateInstance<InventoryItemMaint>();
InventoryItem inv = PXSelect<InventoryItem, Where<InventoryItem.inventoryCD, Equal<Required<InventoryItem.inventoryCD>>>>.Select(grp, this.Base.Item.Current.InventoryCD.Trim());
if (inv != null && inv.InventoryID.HasValue)
{
grp.Item.Current = grp.Item.Search<InventoryItem.inventoryID>(inv.InventoryID);
throw new PXRedirectRequiredException(grp, "Reloading Item");
}
}
如果你不希望整个屏幕要刷新,而不是抛出异常,您可以刷新其他用户(Yura Zaletskyy)建议的必需视图方法。
您可以尝试select方法。 例如:这是在项目中Acumatica源代码设定数据视图(可以使用探索源代码页)
[PXViewName(Messages.InventoryItem)]
public PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<InventoryItem.inventoryID>>>> ItemSettings;
通过自定义(I假设你使用AEF),添加选择方法,用于该数据视图
[PXViewName(Messages.InventoryItem)]
public PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<InventoryItem.inventoryID>>>> ItemSettings;
protected virtual IEnumerable itemSettings()
{
return new PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<InventoryItem.inventoryID>>>>(Base).Select();
}
有时我使用sql存储过程将数据插入到我的表中,select方法有助于重新载入带有插入数据的屏幕。
嗨HDanh, 即时得到下面的错误使用代码 “错误发布时:无法隐式转换类型‘PX.Data.PXSelect >>>’到‘System.Collections.IEnumerable’的显式转换存在(是)在文件中:代码#InventoryItemMaint(36“ –
我已经成功发布了该项目,但不幸的是,它并没有解决问题,我仍然需要重新加载页面来查看已保存的库存项目 –
嗯,基本上Acumatica建议使用缓存,我会根据你的触发器尝试另一种方式,但你可以试试这个替代解决方案: – HDanh
比方说,您的网格绑定到查看PayRollsDetails。然后你可以用下面的代码刷新网格:
PayRollsDetails.View.Cache.Clear();
PayRollsDetails.View.Cache.ClearQueryCache();
谢谢,这解决了我的问题。 –