点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在尝试在凭证扩展名下...
点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)嗨, 我正在尝试在凭证扩展名下...
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
嗨,
我正在尝试在凭证扩展名下覆盖Voucher jalo的getDiscountValue方法。
即使我按照以下教程进行操作:
https://wiki.hybris.com/display/release4/Jalo+Layer
它不会在我新创建的jalo中运行代码。
重写Jalo类的正确方法是什么?
嗨Emre,
首先,您添加的链接来自版本4,除非您正在使用此版本,否则我建议您参考新版本:
https://wiki.hybris.com/display/release5/Jalo+Layer
然后是Jalo 层已弃用,并且使用起来不是很友好。 无法正确覆盖Voucher类的方法,但是您有两个选择:
第一种可能性是创建在 -items.xml 中声明的您自己的类型,例如
MyVoucher
,从原始的Voucher扩展到代码>类型。 然后,在生成的
MyVoucher.java
类中,您应该实现新的逻辑。 然后,无论您在哪里创建凭证,都应改为创建MyVoucher
实例,在这种情况下,可以从hmc或使用impex文件将Voucher
的插入替换为MyVoucher
。 在凭证示例中,此解决方案可能有效并且最简单,但并非总是可以根据需要控制对象的创建,在这种情况下,您可以选择第二种方法:第二种可能性是使用面向方面的编程,如果您不熟悉它,这将不简单。 AOP允许您拦截任何类的任何方法的执行并应用自己的逻辑。
例如,如果您要推断hybris默认
PromotionOrderChangeDeliveryModeAction
的evaluate()
方法,则需要创建文件 aop.xml 位于 myextension/resources/META-INF 中(如果不存在,请创建它),它应该像这样:weaver内的
include
标记表示将被扫描以查找要拦截的方法的包或类,在这种情况下,默认的hybris是PromotionOrderChangeDeliveryModeAction
。 在第二部分中,声明了实际的方面,它是类似于以下内容的java类:在此类中,我们指定要拦截的方法(@Pointcut批注),并拦截
@Around
。 之前或之后,还有其他可能性,以及采用方法参数或类实例本身的更为复杂的情况。我希望这有助于指导如何覆盖jalo方法,因为关于该方法的信息不多
问候,胡安
一周热门 更多>