从 impex 获取值到 InitDefaultInterceptor Hybris

get values from impex into InitDefaultInterceptor Hybris

我有一个 impex 文件(示例)

INSERT_UPDATE Subscriber;firstName[unique=false];lastName[unique=false];email[unique=true];bulk(code)[default=false]
;FirstName;lastName;email@gmail.com;true;

和一个 InitDefaultInterceptor

 public class MyInterceptor implement InitDefaultInterceptor<SubscriberModel>{

onInitDefaults(SubscriberModel model, InterceptorContext ctx)
}

如何从这个拦截器中的 impex 获取值?我尝试使用

model.getFirstName(); 
....

但是所有的方法returns“空”。我该怎么做才能获得价值?在将它们保存到数据库之前,我需要实现一个逻辑。

如果您想使用正在发送的值,您需要使用 PrepareInterceptor 而不是 InitDefaultInterceptor 拦截器。

  • InitDefaultInterceptor :当用默认值填充模型时调用 Init Defaults 拦截器。在您的情况下,这发生在创建要添加到数据库的对象的新实例时。此拦截器用于添加 default 值(在您已在 items.xml 中定义的值旁边)。此时仅插入在 items.xml 中标记的默认值。 此处未加载来自您的 impex 的数据,因为这只处理新对象的默认值,无论稍后添加的内容如何。

  • PrepareInterceptor :在将模型保存到数据库之前调用准备拦截器。在保存之前使用它向模型添加值或修改现有值。在这个拦截器中,impex 的值将填充到模型对象中。您可以根据您的用例在此处添加或修改您的数据。

有关所有类型的拦截器的更多信息,SAP 的 help 页面描述了所有拦截器。