添加自定义表记录

时间:2017-12-13 14:54:44

标签: acumatica

我一直在尝试添加数据库中的自定义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正在工作。我甚至从其他页面查看了其他业务逻辑代码,它看起来像我上面尝试过的那样。你能告诉我我错过了什么吗?

感谢。

1 个答案:

答案 0 :(得分:1)

在传递给StartOperation()的方法中, 你必须创建一个新的图形实例并在该实例上调用处理方法。