繁体   English   中英

尝试通过impex将defaltValue插入列中,但出现错误,无法在null位置插入默认值

[英]Trying to insert defaltValue to a column through impex but getting error unable to insert default value in the place of null

第二栏中的空值(传入的CSV文件):->
输入CSV:10512、10513、12345,

impex:

INSERT_UPDATE Product;code[unique=true];vendors(code)[translator=ca.batch.converter.StiboSetDefaultVendorIfNullTranslator];...

码:

扩展de.hybris.platform.impex.jalo.translators.AbstractValueTranslator;

private final String defaultVendorCode = "000000";

@Override
public Object importValue(String valueExpr, final Item item)
        throws JaloInvalidParameterException {

    if (valueExpr == null || StringUtils.isEmpty(valueExpr)) {

        LOG.debug("Current attribute value is null so inserting "
                + defaultVendorCode);
        valueExpr = defaultVendorCode;

    }

    return valueExpr;
}

对于12345,在这里也得到相同的错误,但最终的impex转换行具有数字(impex行-> 10153; 12345)

由于参数不匹配,试图为属性de.hybris.platform.jalo.product.Product.vendors设置值“ 000000”(get java.lang.String,应为de.h ybris.platform.jalo.product.Product)。,

(impex行-> 10153 ;;)

您应该尝试这样:[allownull = true]属性修饰符; 您的展示次数应如下所示:

INSERT_UPDATE Product;code[unique=true];vendors(code)[allownull=true]

仅导入true / false默认值:false如果设置为true,则此修饰符明确允许列值使用空值。 如果没有阻止空值的业务代码,则此修饰符甚至允许在强制属性(例如Media类型的catalogVersion属性)中使用空值。 示例:[allownull = true]提示在服务层模式下,如果设置了allownull,则导入可能会失败。 从hybris Commerce Suite版本5.1.1开始,如果导入遇到此参数,它将动态切换到旧模式。 处理给定的行后,导入将切换回SL模式。

我认为此错误消息非常清楚:

(got java.lang.String, expected de.h ybris.platform.jalo.product.Product).,

对于翻译器,您必须查找实际的默认供应商对象,而不是返回默认供应商代码。

我认为最简单的解决方案是使用Decorator代替,然后返回“ vendors”属性的代码值。 您可以在此处找到详细说明: https : //wiki.hybris.com/display/release5/ImpEx+API#ImpExAPI-WritingOwnCellDecorator

但基本上是这样的:

public class MyDecorator implements CSVCellDecorator
{
   public String decorate( int position, Map<Integer, String> srcLine )
   {
      // here add your custom logic to check and if applies return your default vendor code, otherwise return the given input value
      //String parsedValue=srcLine.get(position);
      //return parsedValue+"modified"; // some decoration stuff
   }
}

希望那有所帮助 :)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM