【问题标题】:Acumatica Customization: Add PO Nbr column to SO LineAcumatica 定制:将 PO Nbr 列添加到 SO 行
【发布时间】:2021-11-07 08:35:34
【问题描述】:

我正在尝试创建自定义项,以将 PO 链接图中关联的 PO Nbr 添加到 SO 行中的列。我知道链接是在 SOLineSplit 表中创建的,但我正在努力解决如何在 SO Line 中实际显示该字段。我为 PO Nbr 创建了一个自定义 Usr 字段,但不确定我应该在属性中输入什么(或 DAC 扩展,无论是最佳方式),以便显示 SOLineSplit 表中的 PO Nbr 数据。

【问题讨论】:

    标签: field customization acumatica dac


    【解决方案1】:

    我记得我很早就为此苦苦挣扎,所以这是一个很好的问题。挑战在于您提到从 SO LINE 到达 PO,但 SO Line 可以拆分为多个 PO。这就是为什么你最终不得不深入研究 SOLineSplit 的链接。我们来看看 SOLineSplit 到 PO 的链接...

    当您查看 SOOrderEntry 图表时,有几种可能性。以下代码 sn-ps 显示关系。您的 SOLineSplit 可能直接引用 PO/POLine,如下所示:

    PXSelectBase<POLine> selectlinkedDropShips = new PXSelectJoin<POLine,
        InnerJoin<SOLineSplit, On<SOLineSplit.pOType, Equal<POLine.orderType>,
            And<SOLineSplit.pONbr, Equal<POLine.orderNbr>, 
            And<SOLineSplit.pOLineNbr, Equal<POLine.lineNbr>>>>>,
        Where<SOLineSplit.orderType, Equal<Current<SOOrder.orderType>>,
        And<SOLineSplit.orderNbr, Equal<Current<SOOrder.orderNbr>>,
        And<POLine.orderType, Equal<POOrderType.dropShip>>>>>(this);
    

    如果那个简单的路径不能让您到达那里,SO 到 PO 的更详细路径位于 INItemPlan 中,反映 SOLineSplit 的需求(通过 PlanID),然后通过 POLine.PlanID = INItemPlan 绑定到 POLine .SupplyPlanID如下sn-p所示。

    foreach (PXResult<POLine, POOrder, INItemPlan, SOLineSplit> res in PXSelectJoin<POLine,
            InnerJoin<POOrder, On<POLine.FK.Order>,
            InnerJoin<INItemPlan, On<INItemPlan.supplyPlanID, Equal<POLine.planID>>,
            InnerJoin<SOLineSplit, On<SOLineSplit.planID, Equal<INItemPlan.planID>,
               And<SOLineSplit.pOType, Equal<POLine.orderType>,
               And<SOLineSplit.pONbr, Equal<POLine.orderNbr>,
               And<SOLineSplit.pOLineNbr, Equal<POLine.lineNbr>>>>>>>>,
            Where<POLine.orderType, Equal<Required<POLine.orderType>>,
                And<POLine.orderNbr, Equal<Required<POLine.orderNbr>>,
                And2<Where<POLine.cancelled, Equal<boolTrue>,
                       Or<POLine.completed, Equal<boolTrue>>>,
                And2<Where<POOrder.orderType, NotEqual<POOrderType.dropShip>,
                       Or<POOrder.isLegacyDropShip, Equal<True>>>,
            And<SOLineSplit.receivedQty, Less<SOLineSplit.qty>,
            And<SOLineSplit.pOCancelled, NotEqual<boolTrue>,
            And<SOLineSplit.completed, NotEqual<boolTrue>>>>>>>>>
            .Select(graph, poOrder.OrderType, poOrder.OrderNbr))
        {...
    

    您可以想象,您必须设置一些规则来将 SO Line 限制为单个 PO,但老实说,这将比它的价值更麻烦,因为标准功能在更强大方面很有价值。我建议将您的链接放在分配列表中(或在最新版本的 Acumatica ERP 中行详细信息)或生成一个智能面板弹出窗口以显示当前 SO 行的每个拆分的所有 PO 链接。

    【讨论】:

      猜你喜欢
      • 2020-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-11-18
      • 2018-02-03
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多