Acumatica Excel导入无数据显示:如何排查问题?
Acumatica Excel导入无数据问题排查与解决
问题描述
在Acumatica中配置Excel导入功能时,导入按钮正常显示,可弹出导入对话框,完成表单选择、字段映射等步骤后,网格中无任何数据导入。
当前配置
- 已声明
PXImport属性,关联基础图的主视图SOShipment(未重定义) - 已设置Grid的
AllowUpload="True" - 表单选择、字段映射对话框正常显示
- 完成导入流程后网格仍为空
已尝试操作
- 修改
PXImport指向DAC名称,无变化 - 将Grid的
DataKeyNames改为导入的LotSerialNbr,无变化
相关代码片段
Graph扩展代码
[PXCopyPasteHiddenView] [PXImport(typeof(SOShipment))] public PXSelect<MQMJSOShipmentEntryExtScanLabel> MQMJSOShipmentEntryExtScanLabels;
DAC代码(虚拟表)
public class MQMJSOShipmentEntryExtScanLabel : PX.Data.IBqlTable { #region LineNbr public abstract class lineNbr : PX.Data.IBqlField { } protected Guid? _LineNbr; [PXGuid(IsKey = true)] public virtual Guid? LineNbr { get => _LineNbr; set => _LineNbr = value; } #endregion LineNbr #region LotSerialNbr public abstract class lotSerialNbr : PX.Data.IBqlField { } protected string _LotSerialNbr; [PXDBString(100, IsUnicode = true)] [PXDefault("", PersistingCheck = PXPersistingCheck.Nothing)] [PXUIField(DisplayName = "Lot Serial Number")] [PXSelector(typeof(Search5<INLotSerialStatus.lotSerialNbr, InnerJoin<SOShipLine, On<SOShipLine.inventoryID,Equal<INLotSerialStatus.inventoryID>, And<SOShipLine.locationID,Equal<INLotSerialStatus.locationID>>>>, Where<INLotSerialStatus.qtyOnHand, Greater<decimal0>, And<SOShipLine.shipmentNbr, Equal<Current<SOShipment.shipmentNbr>> >>,Aggregate<GroupBy<INLotSerialStatus.lotSerialNbr, Max<INLotSerialStatus.qtyAvail>>>>), new Type[] { typeof(INLotSerialStatus.lotSerialNbr), typeof(INLotSerialStatus.qtyAvail) })] public virtual string LotSerialNbr { get => _LotSerialNbr; set => _LotSerialNbr = value; } #endregion LotSerialNbr }
页面代码
<px:PXSmartPanel runat="server" ID="MQMJSOShipmentEntryExtScanLabelPopup" DesignView="Content" TabIndex="13700" Width="800px" LoadOnDemand="True" CreateOnDemand="True" AutoReload="True" AutoRepaint="True" CaptionVisible="True" Caption="Scan Labels to Ship" AlreadyLocalized="False" Key="MQMJSOShipmentEntryExtScanLabels"> <px:PXGrid ID="PXGridMQMJSOShipmentEntryExtScanLabel" runat="server" Width="100%" DataSourceID="ds" AutoAdjustColumns="true" Caption="Shipped Items" Height="240px" AllowFilter="False" SkinID="Details" CaptionVisible="False" AllowPaging="True" AllowSearch="True" AdjustPageSize="Auto" SyncPosition="true"> <Mode AllowUpload="True" InitNewRow="false"/> <Levels> <px:PXGridLevel DataMember="MQMJSOShipmentEntryExtScanLabels" DataKeyNames="LotSerialNbr"> <Columns> <px:PXGridColumn DataField="LotSerialNbr" AutoCallBack="true"/> <px:PXGridColumn DataField="InventoryID" AutoCallBack="true"/> <px:PXGridColumn DataField="InventoryID_InventoryItem_Descr" AutoCallBack="true"/> <px:PXGridColumn DataField="QtyShip" AutoCallBack="true"/> </Columns> </px:PXGridLevel> </Levels> </px:PXGrid> <px:PXPanel runat="server" ID="PXPanel43A57822CF0444CF5ABE29C6CBD06F100" SkinID="Buttons" Height="50px"> <px:PXButton runat="server" ID="PXButton43A57822CF0444CF5ABE29C6CBD06F100" Text="Ship" DialogResult="OK"> <AutoCallBack Target="ds" Command="Commit"> <Behavior CommitChanges="True" PostData="Content"/> </AutoCallBack> </px:PXButton> <px:PXButton runat="server" ID="PXButton53A57822CF0444CF5ABE29C6CBD06F100" Text="Cancel" DialogResult="Cancel"/> </px:PXPanel> </px:PXSmartPanel>
排查与解决步骤
修正主键字段的自动生成配置
DAC的LineNbr作为主键,导入时Excel无法提供Guid值,需设置自动生成:[PXGuid(IsKey = true, AutoGenerate = true)]这样系统在导入时会自动为每条记录生成唯一Guid,避免主键缺失导致数据无法存入缓存。
对齐Grid的DataKeyNames与DAC主键
Grid的DataKeyNames必须指向DAC的主键字段,而非业务字段,修改页面代码:<px:PXGridLevel DataMember="MQMJSOShipmentEntryExtScanLabels" DataKeyNames="LineNbr">确保Acumatica能正确识别导入的每条记录的唯一标识。
检查DAC字段属性与内存表适配性
由于该表是永不写入的虚拟表,将数据库绑定属性PXDBString改为内存字段属性PXString,避免数据库层面的验证干扰:[PXString(100, IsUnicode = true)]验证导入字段映射的完整性
- 确保Excel中的列与DAC字段正确映射,尤其是
LotSerialNbr、InventoryID、QtyShip等必填字段 - 若Excel列名与DAC字段名不一致,需手动在导入对话框中完成映射,避免字段匹配失败
- 确保Excel中的列与DAC字段正确映射,尤其是
启用系统Trace日志排查隐藏错误
在Acumatica中开启Trace日志(系统管理 > 系统维护 > 跟踪),执行导入操作后查看日志,检查是否存在字段验证失败、缓存未更新或主键冲突等错误信息。确保主视图Current值有效
PXImport(typeof(SOShipment))要求当前主视图(SOShipment)有选中的记录,导入时子记录会关联到该主记录。验证导入时Shipment记录已正确加载,Current<SOShipment.shipmentNbr>有有效值。
内容的提问来源于stack exchange,提问作者user3708398
相关产品推荐
相关产品推荐

