首页 > 解决方案 > Pick Ticket 上的 UOM 和 UOM 比率不正确

问题描述

我们在这个客户使用 UOM 转换。我们在 Eaches 中存货并在 Cases 中出售。我们在 Pick 票据中遇到的问题是要拣货的数量和要拣货的 UOM 都是库存单位而不是销售单位。例如,客户订购了 73 箱(每箱 12 件)。选票每张打印 876 张。这需要仓库人员查找每个项目以确定是否有销售计量单位和比率,然后手动将 876 个每个转换为 73 个案例。

显然,拣货单应该打印 73 箱。但我找不到办法做到这一点。这些项目是分批的,73 箱的订单可能有 50 箱 A 和 23 箱 B。这在 SOShipLineSplit 表中表示。此表中的数量和 UOM 基于库存单位。

理想情况下,我可以将 INUnits 表加入到 SOSHipLine 和 SOShipLineSPlit 表中。见下文。

Select  case when isnull(U.UnitRate,0) = 0 then S.Qty else S.Qty/U.Unitrate end as ShipQty
,case when isnull(U.UnitRate,0) = 0 then s.uom else U.FromUnit end as UOM
from SOShipLineSplit S 
inner join SOShipLine SL
ON S.CompanyID = SL.CompanyID and s.ShipmentNbr = SL.ShipmentNbr and  S.LineNbr = SL.LineNbr and S.InventoryID = SL.InventoryID
Left Outer Join INUnit U
On S.CompanyID = U.CompanyID and S.InventoryID = U.InventoryID and s.UOm = U.ToUnit and SL.UOM = U.FromUnit
where S.ShipmentNbr = '000161' and S.CompanyId = 4

问题是 Acumatica 报告编写器不支持与多个表的联接。

Left Outer Join INUnit U
On S.CompanyID = U.CompanyID and S.InventoryID = U.InventoryID and s.UOm = U.ToUnit and SL.UOM = U.FromUnit

我相信我一定错过了什么。这不是唯一使用销售计量单位的 Acumatica 客户。我是否可以使用另一个表格来包含已为此订单转换为销售单位的数量和 UOM?

还是另一种解决方案?

提前致谢。拍

标签: acumatica

解决方案


编辑:

如果目标是在转换之前/之后显示准确的数量,则不能使用 INUnit DAC。它不存储历史数据,您可以在订单完成后更改 INUnit 值,因此重新使用它来计算数量不会产生准确的结果。

对于这种情况,您需要使用带有Base前缀的历史数据字段,例如 ShippedQuantity/BaseShippedQuantity。如果您需要存储更多历史数据,您需要添加一个自定义字段来保存这些值并在创建/修改货件时更新它们。


主要问题似乎是需求中的逻辑错误:

问题是 INUnit 表必须连接到 SOShipLine 和 SOShipLineSplit 表。

INUnit DAC 有一个单亲,而不是 2,因此您需要更改您的要求以反映该约束。

如果 SOShipLine 和 SOShipLineSplit 值不同,那么您将永远不会获得任何记录。

如果它们相同,则无需加入两者,因为它们具有相同的值。


我建议添加 2 个连接,一个用于 SOShipLine,另一个用于 SOShipLineSplit。在报告中,您可以选择显示哪一个(第一个、第二个或两者)。如果您想处理空值错误检查以用于显示目的,您还可以在报告中添加可见性条件或 IIF 公式条件。

使用架构生成器中的子别名属性将同一个表连接 2 次而不会发生名称冲突。在报告公式中(显示字段或公式条件)也使用子别名表名称。

例子: 在此处输入图像描述


推荐阅读