点击此处---> 群内免费提供SAP练习系统(在群公告中)
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
早上好专家!
在我工作的客户端中,SAP的用户出口存在很大问题。 我尝试解释一下,客户端有多个同时开发的项目,因此当一个项目需要(例如)用户退出ZXQQMU20时,第二个项目由于锁定对象而被延迟到第一个项目结束。 还有一个问题是,如果存在生产错误,并且有一个项目正在修改用户出口,则该项目必须停止,生产版本必须恢复并重新启动。
我一直在考虑哪种方法可以更好地解决此锁定问题,并且我在ZXQQMU20内部创建了多个用于插入代码的包含项...
您认为这可能是解决此问题的最佳解决方案? 您认为新包含的想法可能是一个好的解决方案吗?
非常感谢您。
此致
丽贝卡
在我当前的项目中,我们已经通过使用装饰器设计模式彻底解决了这个问题。
基本上,我们将每个用户出口都转换为Z-BADI。
以下是其中涉及的步骤:
如果您这样做:
这是基本思想。
在我当前的项目中,我们甚至没有针对每个用户出口的独特界面。 相反,我创建了一个通用接口和所有用户共享的Z表,并且参数通过容器对象传递(属性容器设计模式)。
但是如果那太复杂了,也可以为每个用户出口创建一个不同的界面(如上所述)。
Rebeca-我在2017年对SAPMV45A中的VA01增强提出了类似的问题,该线程中的讨论也可能对您的问题有所帮助:
什么是允许多个开发人员更改SAPMV45A增强功能的最佳实践? br>
坏消息是,我们希望在这方面还没有取得任何进展,而且情况仍然像3年前一样,甚至还有更多的线索 代码全部告诉了...。
干杯
Bärbel
"包含"方法的典型问题是; 最终,有人会写CHECK或RETURN并阻止其他包含物中的代码执行。
显然,如果您不使用包含,该风险也存在。
我的基于类的方法(上述)也可以防止这种风险。
尝试创建BADI,在用户出口中调用该BADI。 BADI提供接口,多种实现方式,并且取决于过滤器。 因此,只要有需要,就可以像任何标准BADI一样为自定义BADI创建实现。
正如您提到的,有多个项目正在运行,因此请在用户出口和内部创建隐式增强功能。 叫这个巴迪。 您可以随时删除它,并在它退出当前锁定的传输方式后在用户出口内直接调用它。
-Mahesh
教他们...我不会让我的团队在特斯拉的汽车在车库里集尘时坚持骑自行车;)但是,如上所述,一位具有扎实的OO-ABAP和设计模式知识的经验丰富的建筑师应该带领他们。 否则,可能会出现事故/反模式。
丽贝卡。,
< p>是的,您可以在多个include中包含每个内容,并在每个include中编写满足各自情况的必要检查。还要在编写包含include的代码时使用IF FOUND关键字,以使每个开发项目不会干扰其他开发项目
您可以点击以下链接以包含SYNTAX。
已加入
致谢!
一周热门 更多>