BLCは、その後、C#で任意の仮想メソッドをオーバーライド異なるものではないカスタムに固執方法オーバーライド:
public class ARSalesPriceMaint : PXGraph<ARSalesPriceMaint>
{
...
public override void Persist()
{
foreach (ARSalesPrice price in Records.Cache.Inserted)
{
ARSalesPrice lastPrice = FindLastPrice(this, price);
if (lastPrice?.EffectiveDate > price.EffectiveDate && price.ExpirationDate == null)
{
Records.Cache.RaiseExceptionHandling<ARSalesPrice.expirationDate>(price, price.ExpirationDate, new PXSetPropertyException(ErrorMessages.FieldIsEmpty, PXUIFieldAttribute.GetDisplayName<ARSalesPrice.expirationDate>(Records.Cache)));
throw new PXSetPropertyException(ErrorMessages.FieldIsEmpty, PXUIFieldAttribute.GetDisplayName<ARSalesPrice.expirationDate>(Records.Cache));
}
ValidateDuplicate(this, Records.Cache, price);
}
foreach (ARSalesPrice price in Records.Cache.Updated)
{
ARSalesPrice lastPrice = FindLastPrice(this, price);
if (lastPrice?.EffectiveDate > price.EffectiveDate && price.ExpirationDate == null)
{
Records.Cache.RaiseExceptionHandling<ARSalesPrice.expirationDate>(price, price.ExpirationDate, new PXSetPropertyException(ErrorMessages.FieldIsEmpty, PXUIFieldAttribute.GetDisplayName<ARSalesPrice.expirationDate>(Records.Cache)));
throw new PXSetPropertyException(ErrorMessages.FieldIsEmpty, PXUIFieldAttribute.GetDisplayName<ARSalesPrice.expirationDate>(Records.Cache));
}
ValidateDuplicate(this, Records.Cache, price);
}
base.Persist();
}
...
}
は、私はちょうど.Persist()にする必要がありますが、それが通常の保存プロセスを続けるために私のロジックの終わりに関数呼び出し?私がこれを持ってきた理由は、オーバーライドvoid Persist()を行ったためですが、実際のセーブはこれ以上実行されませんでした。 –
実際のセーブプロセスを実行するロジックの後に 'base.Persist();'を呼び出す必要があります。 – RuslanDev