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

Acumatica 22.207:InventoryItemCurySettings自定义字段无法更新求助

问题:InventoryItemCurySettings自定义字段无法通过ItemClassID更新

版本:22.207
我为InventoryItemCurySettings表添加了一个自定义字段,希望根据所选的Item Class对其进行更新。为此,我在InventoryItemMaint图扩展中添加了FieldUpdated事件重写,但自定义字段始终无法更新。已确认settings变量存在记录,尝试了Update()方法以及SetValue()、SetValueExt()方法,均未成功。

代码实现

public class MyInventoryItemMaintExt : PXGraphExtension<InventoryItemMaint>
{
    public void _(Events.FieldUpdated<InventoryItem, InventoryItem.itemClassID> e, PXFieldUpdated baseMethod)
    {
        
        baseMethod(e.Cache, e.Args);
        
        if (e.Row == null) return;

        InventoryItemCurySettings settings = Base.ItemCurySettings.Current; 
        Base.ItemCurySettings.Cache.SetValue<InventoryItemCurySettingsExt.usrCustom>(settings, "Test");

        //InventoryItemCurySettingsExt settingsExt = settings.GetExtension<InventoryItemCurySettingsExt>();
        //settingsExt.UsrCustom = "Test";
        //Base.ItemCurySettings.Update(settings);

        
    }
 
}

解决思路

  • 检查缓存状态:调用Base.ItemCurySettings.Cache.IsDirty查看记录是否标记为脏数据,若未标记,可手动调用Cache.SetStatus(settings, PXEntryStatus.Updated)将记录状态设为已更新。
  • 强制持久化与刷新:修改字段后,先执行Base.ItemCurySettings.Update(settings),再调用Base.ItemCurySettings.Cache.Persist(PXDBOperation.Update)强制保存,或者用Base.ItemCurySettings.View.RequestRefresh()刷新视图。
  • 验证字段扩展定义:确认InventoryItemCurySettingsExt中usrCustom字段的属性配置,比如是否误设了ReadOnly = true,或者字段数据类型是否与赋值内容匹配。
  • 确认操作时机:基类的baseMethod可能会重置ItemCurySettings的缓存,可尝试将自定义字段更新逻辑放在baseMethod调用前,或者通过PXCache的FieldUpdated事件单独绑定,避免被基类逻辑覆盖。
  • 检查权限设置:在Acumatica系统中确认当前用户对usrCustom字段拥有编辑权限,避免权限限制导致字段无法修改。

内容的提问来源于stack exchange,提问作者MikeNIke

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 18:45:30