我在Acumatica有问题。我在InventoryItem表上创建了一个触发器,用于将插入的记录插入到我的自定义表中。
问题是,每当我尝试在Acumatica中保存新的库存商品时,它都不会反映库存商品的最后保存数据。常规设置选项卡中的详细信息不正确。我需要关闭屏幕并重新打开才能看到正确的数据。
有人可以帮我解决一下如何在保存后立即获得刷新的库存项目屏幕。或者,只要有自定义触发器,Acumatica中是否存在错误?
答案 0 :(得分:1)
假设您的网格已绑定以查看PayRollsDetails。然后,您可以使用以下代码刷新网格:
PayRollsDetails.View.Cache.Clear();
PayRollsDetails.View.Cache.ClearQueryCache();
答案 1 :(得分:1)
我还没有检查过您提到的有关不刷新信息的问题,但是如果需要在保存记录后强行刷新屏幕
因此代码可能如下所示[可能需要修改]
[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)在此帖子上建议的所需视图方法。
答案 2 :(得分:0)
您可以尝试选择方法。 例如:这是Acumatica源代码中的项目设置数据视图(您可以使用探索源代码页)
[PXViewName(Messages.InventoryItem)]
public PXSelect<InventoryItem, Where<InventoryItem.inventoryID, Equal<Current<InventoryItem.inventoryID>>>> ItemSettings;
通过自定义(我假设您使用AEF),为此数据视图添加select方法
[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 store过程将数据插入到我的表中,select方法有助于重新加载带有插入数据的屏幕。