我正在尝试覆盖扩展的图形上的 Persist 方法以删除对原始方法的验证,但我无法调用实际将数据保存到扩展图中的数据库的base.Persist()
方法。这是我到目前为止得到的:
1(我已经创建了图形扩展及其覆盖方法
public class POReceiptEntryExt : PXGraphExtension<POReceiptEntry>
{
public delegate void PersistDelegate();
[PXOverride]
public void Persist(PersistDelegate baseMethod)
{
//baseMethod(); base method is commented so the base.Persist() is not actually happening
//code without the validation I don't want here
base.Base.Persist(); //if I add this part the code enters in a endless loop
Base.poLinesSelection.Cache.Clear();
Base.openOrders.Cache.Clear();
}
}
有人可以帮我解决这个问题。
以下博客文章中的最后一个示例演示了如何在 PXGraphExtension 中调用 PXGraph.Persist(( 以避免图形的重写 Persist 方法中的逻辑。
https://asiablog.acumatica.com/2017/02/override-static-method.html
如博客文章中所述 - 除非有必要,否则应避免使用此方法。