Hybris 导入impex时的AfterSaveListener类型代码问题
Hybris 6.3.0.2 我创建了一个AfterSaveListener,它在保存项目后执行一些自定义逻辑 *余波监听器-Hybris 导入impex时的AfterSaveListener类型代码问题,hybris,impex,Hybris,Impex,Hybris 6.3.0.2 我创建了一个AfterSaveListener,它在保存项目后执行一些自定义逻辑 *余波监听器- @Override public void afterSave(final Collection<AfterSaveEvent> events) { for (final AfterSaveEvent event : events) { final int type = event.getType(); if
@Override
public void afterSave(final Collection<AfterSaveEvent> events)
{
for (final AfterSaveEvent event : events)
{
final int type = event.getType();
if (AfterSaveEvent.UPDATE == type || AfterSaveEvent.CREATE == type)
{
final PK pk = event.getPk();
//The AttributeFormat Model typecode is "11001"
if (11001 == pk.getTypeCode())
{
final AttributeFormatModel attributeFormat = modelService.get(pk);
updateProductFeatureByAttributeFormat(attributeFormat);
}
}
}
}
@覆盖
公共作废afterSave(最终收集事件)
{
用于(最终余波事件:事件)
{
final int type=event.getType();
if(AfterSaveEvent.UPDATE==type | | AfterSaveEvent.CREATE==type)
{
最终PK=event.getPk();
//AttributeFormat模型类型代码为“11001”
if(11001==pk.getTypeCode())
{
final attributeformModel attributeFormat=modelService.get(主键);
通过attributeFormat(attributeFormat)更新ProductFeature;
}
}
}
}
已经创建了一个新的项目类型“AttributeFormat”,我正在根据它更新产品特征数据
如果我从backoffice更新或创建AttributeFormat,这个监听器可以正常工作,但在通过impex导入数据时,它不能按预期工作
弹劾-
INSERT_UPDATE AttributeFormat;code[unique=true];prefix[lang=$lang];suffix[lang=$lang];separator[lang=$lang];$classSystemVersion
;prefix_suffix_separator;<;change;,
插入\u更新属性格式;代码[unique=true];前缀[lang=$lang];后缀[lang=$lang];分隔符[lang=$lang]$类系统版本
;前缀\后缀\分隔符 在hybris管理控制台中检查您的模型属性FormatModel的类型代码,通常是考虑中父类的类型代码
我建议使用instanceof检查
@Override
public void afterSave(final Collection<AfterSaveEvent> events)
{
events.forEach(event -> {
if (event.getType() == AfterSaveEvent.CREATE)
{
final PK pk = event.getPk();
final Object object = getModelService().get(pk);
if (object instanceof ManageTransportOfferingForScheduleConfigurationCronJobModel)
{
final ManageTransportOfferingForScheduleConfigurationCronJobModel cronjob =
(ManageTransportOfferingForScheduleConfigurationCronJobModel) object;
cronjob.setActive(Boolean.TRUE);
getCronJobService().performCronJob(cronjob, true);
}
}
});
}
@覆盖
公共作废afterSave(最终收集事件)
{
events.forEach(事件->{
if(event.getType()==AfterSaveEvent.CREATE)
{
最终PK=event.getPk();
最终对象=getModelService().get(pk);
if(ManageTransportOfferingForScheduleConfigurationCronJobModel的对象实例)
{
时间表配置CronJobModel cronjob的最终ManageTransportOffering=
(ManageTransportOfferingForScheduleConfigurationCronJobModel)对象;
cronjob.setActive(Boolean.TRUE);
getCronJobService().performCronJob(cronjob,true);
}
}
});
}
当类型代码不起作用时,它是什么?您确定在更新案例中,您要执行此测试if(AfterSaveEvent.update==type | | | AfterSaveEvent.CREATE==type)
?@alain.janinm是的,它将进入if(AfterSaveEvent.update==type | | AfterSaveEvent.CREATE==type)
但预期的类型代码“11001”没有出现。您能否提供您获得的其他类型代码?你知道它代表哪个物体吗?