我一直在尝试添加数据库中的自定义DAC记录。但它现在正在发挥作用。以下是我试图完成的工作。
public class SquarePOSTransactionInquiry : PXGraph<SquarePOSTransactionInquiry>
{
public PXSave<MasterTable> Save;
public PXCancel<MasterTable> Cancel;
public PXFilter<MasterTable> MasterView;
public PXSelect<INSquarePOSTransaction> INSquarePOSTransactions;
public PXAction<MasterTable> calc;
[PXUIField(DisplayName = "Sync Square Transactions")]
[PXProcessButton()]
protected virtual IEnumerable Calc(PXAdapter adapter)
{
PXLongOperation.StartOperation(this, () =>
{
using (var scope = new PXTransactionScope())
{
INSquarePOSTransaction trans = new INSquarePOSTransaction();
trans.TransacationCD = "new";
trans.Description = "Another new";
var test = this.INSquarePOSTransactions.Insert(trans);
this.INSquarePOSTransactions.Cache.IsDirty = true;
//this.INSquarePOSTransactions.Update(trans);
this.Actions.PressSave();
scope.Complete();
}
});
return adapter.Get();
}
public SquarePOSTransactionInquiry()
{
}
[Serializable]
public class MasterTable : IBqlTable
{
}
}
我尝试将缓存IsDirty属性设置为false,但这也没有帮助。但奇怪的部分是更新DAC正在工作。我甚至从其他页面查看了其他业务逻辑代码,它看起来像我上面尝试过的那样。你能告诉我我错过了什么吗?
感谢。
答案 0 :(得分:1)
在传递给StartOperation()的方法中, 你必须创建一个新的图形实例并在该实例上调用处理方法。