转换器:在importValue方法中,productItem为null。

2020-09-07 05:12发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我正在根据"产品"项的属性之一创建翻译器。 但是,当我运行impex时,我第一次将" paramItem"值设置为null。 (在这种情况下,产品最初不会出现在数据库中)。 但是,当我第二次运行impex时," paramItem"将具有价值,因为该产品是从第一次运行impex创建的。 所以,谁能告诉我,在新产品(即首次创建产品)时," paramItem"参数始终为null的情况总是这样吗? 如果是,那么如何克服这种情况,我必须在第一次运行时将值设置为" paramItem"参数,并且该值不应为null?

下面是impex和Java代码更改:

IMPEX:

$ productCatalog = ProductCatalog $ productCatalogName =产品目录

$ catalogVersion = catalogversion(catalog(id [default = $ productCatalog]),version [default ='Staged'])[unique = true,default = $ productCatalog:Staged]

INSERT_UPDATE产品;代码[unique = true]; $ catalogVersion; sapPlant(code)[translator = com.sample.example.code.events.checkTranslator]; FGH67890 ;; 0000;

Java代码:

@Override公共对象importValue(最终字符串sapPlant,最终项目paramItem)抛出JaloInvalidParameterException {

 如果(paramItem!= null)
      {
         
              如果(StringUtils.equalsIgnoreCase(****某些条件******))
              {
                  paramItem.setAttribute(" product",Boolean.valueOf(true));
              }
         
      }
      返回sapPlant;

  }
  

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


您好,我正在根据"产品"项的属性之一创建翻译器。 但是,当我运行impex时,我第一次将" paramItem"值设置为null。 (在这种情况下,产品最初不会出现在数据库中)。 但是,当我第二次运行impex时," paramItem"将具有价值,因为该产品是从第一次运行impex创建的。 所以,谁能告诉我,在新产品(即首次创建产品)时," paramItem"参数始终为null的情况总是这样吗? 如果是,那么如何克服这种情况,我必须在第一次运行时将值设置为" paramItem"参数,并且该值不应为null?

下面是impex和Java代码更改:

IMPEX:

$ productCatalog = ProductCatalog $ productCatalogName =产品目录

$ catalogVersion = catalogversion(catalog(id [default = $ productCatalog]),version [default ='Staged'])[unique = true,default = $ productCatalog:Staged]

INSERT_UPDATE产品;代码[unique = true]; $ catalogVersion; sapPlant(code)[translator = com.sample.example.code.events.checkTranslator]; FGH67890 ;; 0000;

Java代码:

@Override公共对象importValue(最终字符串sapPlant,最终项目paramItem)抛出JaloInvalidParameterException {

 如果(paramItem!= null)
      {
         
              如果(StringUtils.equalsIgnoreCase(****某些条件******))
              {
                  paramItem.setAttribute(" product",Boolean.valueOf(true));
              }
         
      }
      返回sapPlant;

  }
  
付费偷看设置
发送
4条回答
bbpeas
1楼-- · 2020-09-07 06:08

每当已有项目存在时。 即对于UPdate,它将是itemType值,如果它不在数据库中,则在第一次插入时,它将为null。

clasier
2楼-- · 2020-09-07 05:57

你好巴拉斯,

您发现问题了吗? 解决办法是什么?

我总是总是为空(第一次插入或更新现有记录)。 我的课程扩展了AbstractValueTranslator。

  @Override
  public Object importValue(final String valueExpr,final Item processingItem)引发JaloInvalidParameterException
  {
      字符串courseName = null;
      尝试
      {
          courseName = processingItem.getAttribute(" NAME")。toString();
      }
      捕获(最终JaloSecurityException e)
      {
          setError();
      }
      返回courseName +"翻译测试";
  }
  
打个大熊猫
3楼-- · 2020-09-07 06:10

我的问题是,如果有多个目录版本,如何在INSERT语句时在翻译器中获取确切的目录版本?

渐行渐远_HoldOn
4楼-- · 2020-09-07 06:04

当时解决该问题的方法:

ProductModel sourceProduct = modelService.get(processedItem.getPK()); CatalogVersionModel catalogVersion = sourceProduct.getCatalogVersion();

一周热门 更多>