将Acumatica 2018R1自定义发布到2022R2时遇空键错误求助
Acumatica 2018R1自定义迁移到2022R2出现"Value cannot be null. Parameter name: key"错误排查方案
错误日志:
Value cannot be null.
Parameter name: key
描述:当前Web请求执行期间发生未处理的异常,请查看堆栈跟踪以了解错误详情及代码来源。
- 检查DAC字段属性变更:2022R2对DAC字段的属性校验更严格,比如
PXDBFieldAttribute的Key属性如果引用了不存在的字段,或者字段名拼写错误,会触发空key错误。核对自定义DAC中所有带Key标记的属性,确保关联字段存在且名称正确。 - 验证缓存依赖与键值引用:自定义代码中如果使用
PXCache.GetValue、PXCache.SetValue或直接操作缓存字典时,传入的键(字段名)可能在新版本中被重命名或移除。检查所有缓存操作的字段参数,确认字段在2022R2的基础DAC中仍存在。 - 排查自定义图形中的视图关联:如果自定义图形里的视图(如
SelectFrom)关联了已更改主键的基础表,或者使用了过时的连接条件,会导致查询时出现空键。对比2018R1和2022R2的基础表结构,修正视图的关联字段。 - 检查自定义插件或事件订阅:新版本中某些基础事件的参数结构可能调整,比如
FieldUpdated或RowSelected事件中,若代码依赖旧版事件参数的键值对,可能因参数变更导致空key异常。逐行检查事件处理代码,确保所有引用的键存在于新版参数中。 - 验证自定义报表与GI的数据源:自定义报表或通用查询(GI)如果引用了已修改的字段作为分组、筛选键,在2022R2中可能无法找到对应字段,触发错误。重新检查报表和GI的数据源配置,更新字段引用。
内容的提问来源于stack exchange,提问作者vannak
相关产品推荐
相关产品推荐

