如何让Acumatica自定义动作更新当前记录

How to make Acumatica custom action update the current record

我正在尝试使自定义操作更新当前记录上的自定义字段。最终我需要完成所有细节以收集一些数据,但现在我只需要单击按钮并让它更新当前记录。或多或少,我想我无法理解如何获取像这样的行级事件中的数据 protected void SOOrder_RowSelected(PXCache cache, PXRowSelectedEventArgs e)

    public PXAction<PX.Objects.SO.SOOrder> LookupShipping;

    [PXButton(CommitChanges = true)]
    [PXUIField(DisplayName = "Lookup Shipping Rates")]
    protected void lookupShipping()
    {

      SOOrder TheRow = Base.Document.Current;

    }

提前致谢。

如果您正在尝试更新自定义字段...

首先,您需要通过以下方式连接到 DAC 扩展:

SOOrderExt sOOrderExt = PXCache<SOOrder>.GetExtension<SOOrderExt>(TheRow);

然后您需要更新字段值。假设您在图形扩展中,您将需要利用 "Base" 来访问缓存。

Base.Caches[typeof(SOOrder)].SetValueExt<SOOrderExt.usrCustomField>(TheRow, InsertValueHere);

更新所有字段值后,您需要实际更新缓存本身。

Base.Caches[typeof(SOOrder)].Update(sOOrderExt);

并且不要忘记保存记录,假设这个按钮应该是一站式商店。

Save.Press();

如果您只是尝试更新现有视图中的值,则可以非常轻松地完成。

TheRow.FieldName = InsertValueHere;
Document.Current.Update(TheRow);
Save.Press();

您可以在 HB_Acumatica 对我问过类似问题的地方的回答中看到一些更新值的好方法...