如何在其他屏幕上保存商机上的更改?

时间:2018-09-12 13:28:50

标签: c# .net acumatica

我在CROpportunity中有一个名为UsrOrderTotalValue的字段。 销售订单(SO301000)和机会(CR304000)链接到,并添加到SOOrder选项卡自定义字段UsrOpportunityID。 当在销售订单上按“保存”按钮时,需要将一些值保存到UsrOrderTotalValue中。 下面提供了一些代码片段。 除了下面的内容,我尝试了使用Persist的不同方法,但是没有任何效果。 我的Acumatica版本: Acumatica 2018 R1(18.110.0017)

OpportunityMaint opportunityGraph = PXGraph.CreateInstance<OpportunityMaint>();
SOOrderExt sOOrderExt = row.GetExtension<SOOrderExt>();
CROpportunity cROpportunity = Opportunity.Select(sOOrderExt.UsrOpportunityID);

opportunityGraph.Opportunity.Update(cROpportunity);
opportunityGraph.Save.Press();

1 个答案:

答案 0 :(得分:0)

请尝试如下所示,我具有硬编码值,请替换为您的字段。

    [PXOverride]
    public void Persist(Action del)
    {
        if ((Base.Document.Cache.GetStatus(Base.Document.Current) == PXEntryStatus.Inserted || Base.Document.Cache.GetStatus(Base.Document.Current) == PXEntryStatus.Updated))
        {
            OpportunityMaint opportunityGraph = PXGraph.CreateInstance<OpportunityMaint>();
            CROpportunity cROpportunity = new CROpportunity();

            cROpportunity.OpportunityID = "000001";
            cROpportunity = opportunityGraph.Opportunity.Current = opportunityGraph.Opportunity.Select(cROpportunity);

            if (cROpportunity != null)
                cROpportunity.OpportunityName = "test";

            opportunityGraph.Opportunity.Update(cROpportunity);
            opportunityGraph.Save.Press();
        }
        del();
    }