impex中的insert_update,但仅在插入期间使用值

2020-09-03 20:28发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在尝试通过Datah...

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

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


嗨,

我正在尝试通过Datahub将数据导入Hybris,并且遇到了以下问题:我们的Hybris模型中的必填字段(电子邮件地址)之一来自另一个系统,但可由用户更改 。 因此,当首次导入用户数据时,将正确插入电子邮件地址。 但是,如果用户随后在Hybris中更改其电子邮件地址,并且该用户再次从后端系统中导出,则该电子邮件地址将被原始值覆盖。 在impex文件中,是否可以在列上指定仅在INSERT而不是UPDATE期间使用其值?

史蒂芬

PS。 我已经简化了这种情况,所以请不要讨论要求:-)

7条回答
悻福寶寶
2020-09-03 20:51

我们在语言方面也面临类似的情况。 导入新语言时,active的值是强制性的,并且首次导入时该值必须为false。 在为其他字段更新语言时,我们不希望更新active的值,因为它对于平台内的实现方案是可维护的。 如果禁止使用某种语言,则必须使用主动false来重新导入它,就像第一次一样。

解决方案是构建一个impex文件,该文件作为可选INSERT 行,然后是 UPDATE 。

请参阅beforeEach的用法,该操作会擦除数据库中已存在的行。 代码中的 line 字段是Map

  INSERT语言; isocode [unique = true];有效
  #%beforeEach:if(FlexibleSearch.getInstance()。search("从{语言}中选择{pk},在{isocode} ='" + line.get(1)+"'",de.hybris.platform.jalo中。  c2l.Language.class).getCount()> 0)line.clear();
  ; de; false
  ; en; false
  ; fr; false

  UPDATE语言; isocode [unique = true]; sapCode; name [lang = de]; name [lang = en]; name [lang = fr]
  ; de; D;" Deutsch";" German";" Allemand"
  ; en; E;"英语";"英语";"英语"
  ; fr; F;"Französisch";"法语";"Français"
  

一周热门 更多>