You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Acumatica Kit Assembly导入场景:默认位置重复显示问题解决求助

解决Acumatica套件导入时默认位置与导入位置重复的问题

我来帮你搞定这个Acumatica导入套件时出现双位置的问题!这种情况通常是因为系统默认会自动填充套件组装的主位置,即使你已经通过导入指定了目标位置,下面是几个可行的解决办法:

方法1:调整导入场景的字段映射设置

  • 打开你的导入场景,找到套件组装相关的Location字段映射项,确保勾选了覆盖默认值的选项(不同版本的Acumatica表述略有不同,核心是让导入的值替代系统自动生成的默认值,而非追加)。
  • 检查场景中是否包含隐藏的默认位置相关字段(比如DefaultLocationID),如果有,将其映射设置为导入文件中的Location值,或者直接设置为空,避免系统自动填充默认位置行。

方法2:通过图形扩展(Graph Extension)移除默认位置行

如果导入场景的配置无法满足需求,可以写一个简单的C#图形扩展,在套件组装记录导入前自动清除系统添加的默认位置条目:

public class KitAssemblyEntryExtension : PXGraphExtension<KitAssemblyEntry>
{
    public override void Initialize()
    {
        base.Initialize();
        Base.KitAssemblyItems.RowInserting += KitAssemblyItems_RowInserting;
    }

    private void KitAssemblyItems_RowInserting(PXCache cache, PXRowInsertingEventArgs e)
    {
        var item = e.Row as KitAssemblyItem;
        if (item != null && !string.IsNullOrEmpty(item.LocationID))
        {
            // 查找并删除系统自动添加的默认位置行
            var defaultLocation = Base.Inventory.Current?.DefaultLocationID;
            if (!string.IsNullOrEmpty(defaultLocation))
            {
                var defaultItem = Base.KitAssemblyItems.SelectSingle(x => x.LocationID == defaultLocation);
                if (defaultItem != null)
                {
                    Base.KitAssemblyItems.Delete(defaultItem);
                }
            }
        }
    }
}

将这个扩展部署到你的Acumatica环境后,再执行导入操作,系统就会自动移除默认位置的条目,只保留你导入的指定位置。

方法3:检查库存项目的默认位置配置

  • 进入该Inventory Item的库存维护页面,查看是否设置了默认位置。如果允许临时调整,可以在导入前取消默认位置的设置,完成导入后再恢复。不过这个方法比较繁琐,更适合临时批量导入的场景。

方法4:验证导入文件与场景模式

  • 确保导入文件中没有空的Location字段行,空值可能会触发系统填充默认位置。
  • 检查导入场景的目标模式:如果是插入模式,确认不会追加默认行;如果是更新模式,要明确设置为覆盖现有位置条目,而非追加。

内容的提问来源于stack exchange,提问作者C.J. Hope

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 04:58:19