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
相关产品推荐
相关产品推荐

