从 Impex 导入数据时未调用 ValidateInterceptor

ValidateInterceptor is not getting invoked when importing data from Impex

我创建了一个拦截器来验证数据,当我从 HMC 创建新对象时,我可以看到数据正在验证并为错误数据抛出异常,但是当我尝试从 Imp-ex 导入错误数据时它没有得到验证和成功导入。旧版模式已关闭。

impex.legacy.mode=false

$canadasalesArea=salesArea(salesOrg(uid),distributionChannel(uid[default=00]),division(uid[default=00]))
$canadastoreConfig=CanadaStoreConfiguration
insert_update BooleanConfigType;configuration(name);salesDistrict(name,uid)[unique=true];soldTo(uid)[unique=true];name(code,itemtype(code))[unique=true,allownull=true];value;$canadasalesArea[unique=true,allownull=true]
;$canadastoreConfig;;11001859;enableEndecaBasedAPI:ConfigTypeName;true

如果 impex 包含某些东西(例如 [forceWrite = true][allownull=true]),即使是传统模式设置为假, 将使用Legacy模式导入,拦截器不会干预。

决定是否使用遗留模式的整个逻辑可以在 DefaultImportProcessor#getHandlerForLine 调用它。enableLegacyFlagWhenLineIsUsingJaloOnlyFeatures 调用 ValueLine#isUsingJaloOnlyFeatures 可以 return true 即使 impex.legacy.mode=假

我通过从 impex [forceWrite = true] 中排除我的一个专栏解决了一个类似的问题 Hybris 5.5.1.0

如果从 hac(hybris 管理控制台)执行导入,还要确保未选中旧模式(设置)