我在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();
謝謝,這解決了我的問題。 –