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

Posted

技术标签:

【中文标题】如何访问 Acumatica 业务逻辑中的表的扩展【英文标题】:How does one access an Extension to a table in Acumatica Business Logic 【发布时间】:2021-10-04 13:20:45 【问题描述】:

如果此问题已在其他地方得到解答,我深表歉意,我无法找到有关此问题的任何资源。 场景是这样的。我在 Tax Preferences 屏幕中创建了一个名为 Usrapikey 的自定义字段。 此值保存在某些自定义业务逻辑中完成的调用的 api 键。 然而,自定义业务逻辑出现在 Taxes 屏幕上。 因此,在事件处理程序中,我需要从另一个屏幕访问该 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;

  

非常感谢!

【问题讨论】:

【参考方案1】:

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

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

获取扩展使用:

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

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

    var foo = rowExt.Usrfield;

【讨论】:

以上是关于如何访问 Acumatica 业务逻辑中的表的扩展的主要内容,如果未能解决你的问题,请参考以下文章

支付业务的数据库表的设计

ORM

如何将自定义 DB 字段保存到图形中的 DB-Acumatica

以编程方式重新计算 Acumatica 税收和折扣

事务脚本

MYSQL中的表的连接方式都有哪些,各有些啥特点?