我正在将自定义项目从版本5.3.2936升级到版本6.10.0755。我遇到了一个属性:[PXNotPersistable],显然已经不存在了。我不知道这个属性是做什么的,或者是否有替换。它用于装饰PXSselectJoin BQL语句。任何帮助将不胜感激。
答案 0 :(得分:1)
PXNotPersistable属性已从Acumatica框架中完全删除,主要是因为它未在Acumatica ERP解决方案中的任何位置使用。
以下是PXNotPersistableAttribute的实现:
public sealed class PXNotPersistableAttribute : PXCacheExtensionAttribute
{
protected override void AddHandlers(PXCache cache)
{
cache.RowPersisting += (sender, args) => args.Cancel = true;
}
}
正如您可能已经注意到的那样,该属性非常基础且没有做太多的事情:仅阻止将主数据视图DAC的修改记录保存到数据库中。
假设您有一个自定义数据视图,声明如下。 5.3:
[PXNotPersistable]
public PXSelectJoin<MyDacA,
LeftJoin<MyDacB, On<MyDacB.someField, Equal<MyDacA.someField>>>> DataView;
对于ver。 6.1,PXNotPersistableAttribute可以简单地替换为 MyDacA _RowPersisting处理程序(因为 MyDacA 是我们数据视图的主要DAC,只有对此DAC所做的更改才会保存到数据库中):
public void MyDacA_RowPersisting(PXCache sender, PXRowPersistingEventArgs e)
{
e.Cancel = true;
}