删除"不可编辑"的EnumerationValues

2020-09-04 04:09发布

         点击此处--->   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删除此值,也会收到此错误,因此我看不到删除现有值的方法。 有什么建议?

         点击此处--->   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条回答
spaceman01
1楼 · 2020-09-04 04:26.采纳回答

嗨, 我想出了一个对我有用的解决方案, 您必须使用SQL查询从hac

中删除
 从枚举值item_t0中删除(item_t0.code ='yourenumValue')
 
 




  
宇峰Kouji
2楼-- · 2020-09-04 04:38

嗨,Shubham静态使用EditorHelper,您如何扩展它以覆盖getAvaiableValues?

大简至美
3楼-- · 2020-09-04 04:37

任何解决此问题的方法?

我有类似的情况。 我们添加了一个枚举值,但是现在由于"无法删除无法编辑的EnumerationValue"错误而无法将其删除。

  
      
  
  
compass1988
4楼-- · 2020-09-04 04:40

因为"枚举值"已经写入数据库。 您可以从basecommerce-items.xml中将其删除并进行ant初始化。 之后,您会发现"枚举值"已被删除。 但是当您在扩展名中重新定义枚举时,我不知道它是否有效,您可以尝试一下。

吹牛啤
5楼-- · 2020-09-04 04:20

我也遇到过同样的问题,因此在大量发现之后,我发现了Hybris提供的OOTB:

在 renderSingleEditor()的EditorHelper类中,它检查编辑器类型,如果Editor是ListUIEditor的instance,则它调用setAvailableValuesInListEditor(),后者进一步调用EditorHelper类的getAvailableValues()。 getAvailableValues()使用xml中的属性检查参数名称allowedValuesList。 allowValuesList的值是Spring bean类的名称,该类实现了AvailableValueProvider接口并覆盖了 it.In 类中的getAvailableValues()。 可以过滤出要在cscockpit中显示的任何枚举值。

  







  
当学会了学习
6楼-- · 2020-09-04 04:37

上述解决方案对我不起作用。 当我尝试直接从数据库中删除包含enumerationvalues表中的enum值的行时,它也不起作用。 但是我可以从hac-> maintenance-> cleanup中删除枚举类型,因为我不再在任何地方使用它了。 也许您可以尝试先删除依赖于该枚举类型的其他属性。 此枚举类型将成为孤立类型。 您可以将其从清理中删除,包括所有值。 然后将定义和需要的值再次添加到项目中。

一周热门 更多>