如何在 Acumatica 业务逻辑中访问 table 的扩展

How does one access an Extension to a table in Acumatica Business Logic

如果此问题已在其他地方得到解答,我深表歉意,我很难找到与此相关的任何资源。 场景是这样的。我在税收优惠屏幕中创建了一个名为 Usrapikey 的自定义字段。 此值包含一个 api 键,用于在某些自定义业务逻辑中完成的调用。 然而,自定义业务逻辑出现在税收屏幕上。 因此,在事件处理程序中,我需要从另一个屏幕访问 API 键值。我试过实例化图形并使用 linq 和 bql 但无济于事。 下面是我目前所拥有的,我的错误是:方法 'GetExtension' 没有重载需要 1 个参数

如果我以错误的方式解决这个问题,请告诉我是否有更文明的方式来做到这一点

protected virtual void _(Events.FieldUpdated<TaxRev, TaxRev.startDate> e)

   {

  var setup = PXGraph.CreateInstance<TXSetupMaint>();
  var TXSetupEX = setup.GetExtension<PX.Objects.TX.TXSetupExt>(setup);

  var rateObj = GetValues(e.Row.TaxID, TXSetupEX.Usrapikey);
  decimal rate;

  var tryRate = (Decimal.TryParse(rateObj.rate.combined_rate, out rate));
  row.TaxRate = (decimal)rate * (decimal)100;
  row.TaxBucketID = 1;

  }

非常感谢!

好吧,acumatica 支持回来了。看来如果你想访问基本页面使用:

    TXSetup txsetup = PXSetup<TXSetup>.Select(Base);

要获取扩展名,请使用:

    TXSetupExt rowExt = PXCache<TXSetup>.GetExtension<TXSetupExt>(txsetup);

然后您可以像这样访问扩展字段:

    var foo = rowExt.Usrfield;