經過大量的思考,我找不到任何合適的解決方案,除了創建我自己的處理器。下面是解
public class MediaProcessor extends DefaultImportProcessor
{
@Override
public void init(final ImpExImportReader reader)
{
super.init(reader);
}
@Override
public Item processItemData(final ValueLine valueLine) throws ImpExException
{
Item item = null;
final ValueEntry codeEntry = valueLine.getValueEntry(2);
final String mediaCode = codeEntry.getCellValue();
if (StringUtils.isNotEmpty(mediaCode))
{
item = super.processItemData(valueLine);
}
return item;
}
}
Impex公司應該是這樣..
INSERT_UPDATE Media[processor=com.hybris.core.impex.processor.MediaProcessor];mediaFormat(qualifier);code[unique=true];youtubeURL;mime[default='video/mp4'];$catalogVersion;folder(qualifier)[default=images]
這不會拯救錯誤。但它不會拋出空指針異常,因爲我在我的控制檯中得到(一個大的真的很討厭這個)。因此,如果code = null
系統將轉儲該行並繼續下一步。
UPDATE:
快速黑客解決我的問題。這是一個適當的解決方案轉儲完整的行,如果代碼= null(按照我的要求)
一行使一切工作像一個魅力!
valueLine.resolve(item, Collections.EMPTY_LIST);
全碼
public class MediaProcessor extends DefaultImportProcessor
{
@Override
public void init(final ImpExImportReader reader)
{
super.init(reader);
}
@Override
public Item processItemData(final ValueLine valueLine) throws ImpExException
{
Item item = null;
final ValueEntry codeEntry = valueLine.getValueEntry(2);
final String mediaCode = codeEntry.getCellValue();
if (StringUtils.isNotEmpty(mediaCode))
{
item = super.processItemData(valueLine);
}
else
{
valueLine.resolve(item, Collections.EMPTY_LIST);
}
return item;
}
}
我們能不能做一些usign BeanShell的? – 2014-09-01 18:21:49