删除"不可编辑"的EnumerationValues

2020-09-04 04:09发布

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

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

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


我正在尝试更新RefundReason枚举值列表,以供CS座舱和前端使用,包括删除在basecommerce中定义的值。 例如,不需要" DamagedInTransit"和" PriceMatch"之类的值。

我的问题是,如何配置我的系统,使我拥有一个RefundReason枚举,该枚举仅包含自定义值,而不包含在basecommerce中定义的值?

在扩展程序的items.xml中声明RefundReason枚举类型可让我们添加值,但不能删除它们。 论坛上讨论的方法是在系统更新期间通过impex或TypeService/ModelService API以编程方式删除现有值-由于出现错误,我无法使这种方法起作用:

无法删除不可编辑的EnumerationValue DamagedInTransit

如果我只是尝试通过hMC删除此值,也会收到此错误,因此我看不到删除现有值的方法。 有什么建议?

12条回答
hongfeng1314
2020-09-04 04:25

这是我们用来解决此问题的ImpEx脚本

 #%impex.enableCodeExecution(true);
 
  "#%
  导入de.hybris.platform.core.Registry;
  导入de.hybris.platform.util.Config;
  导入java.sql.DriverManager;
 
  url = Config.getParameter("" db.url"");
  driver = Config.getParameter("" db.driver"");
  userName = Config.getParameter("" db.username"");
  密码= Config.getParameter("" db.password"");
  尝试
  {
      print(""正在从YourEnumType枚举中删除'您的ENUM VALUE'值..."");
      c = getClass(驱动程序);
      连接= DriverManager.getConnection(URL,用户名,密码);
      语句= connection.createStatement();
      sql =""从枚举值中删除" WHERE代码"为"您的枚举值"并且TypePkString =(选择类型。PKFROM组成类型为WHERE类型。
      print(statement.executeUpdate(sql)+""的行已被删除。"");
      Registry.getCurrentTenant()。getCache()。clear();
  }
  抓住(e)
  {
      print(""删除'ENUM VALUE'值时引发错误。\ n"" + e);
  }
  "
  

一周热门 更多>