用户出口因多项开发而被锁定时该怎么办

2020-08-23 20:45发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)早上好专家! 在我工作的客户端...

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

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


早上好专家!

在我工作的客户端中,SAP的用户出口存在很大问题。 我尝试解释一下,客户端有多个同时开发的项目,因此当一个项目需要(例如)用户退出ZXQQMU20时,第二个项目由于锁定对象而被延迟到第一个项目结束。 还有一个问题是,如果存在生产错误,并且有一个项目正在修改用户出口,则该项目必须停止,生产版本必须恢复并重新启动。

我一直在考虑哪种方法可以更好地解决此锁定问题,并且我在ZXQQMU20内部创建了多个用于插入代码的包含项...

您认为这可能是解决此问题的最佳解决方案? 您认为新包含的想法可能是一个好的解决方案吗?

非常感谢您。

此致

丽贝卡

10条回答
Violet凡
2020-08-23 20:56

在我当前的项目中,我们已经通过使用装饰器设计模式彻底解决了这个问题。

基本上,我们将每个用户出口都转换为Z-BADI。

以下是其中涉及的步骤:

  • 使用单个EXECUTE方法为有问题的用户出口(SE24)创建一个接口,该方法可以导入/导出出口本身的参数。
  • 创建一个自定义的Z表以征集要从用户出口调用的类。 该表不应包含MANDT字段,因此您可以将定义放入工作台请求中。
  • 对于每个不同的功能需求,创建一个实现接口的类(SE24),然后在其中编写您的功能ABAP代码+将您的类放入Z表中。
  • 用户出口本身应该从Z-Table中进行SELECT *,为每个类动态创建一个对象,强制转换为接口并调用EXECUTE方法。

如果您这样做:

  • 您可以将用户出口+ Z表和界面立即发送到实时系统。
  • 对于每个不同的功能需求,创建一个类,在Z表中进行定义,并将其放入相同的请求中。
  • 由于实施请求是分开的,因此您可以在不同的时间点将它们发送到实时系统,而不会互相影响。

这是基本思想。

在我当前的项目中,我们甚至没有针对每个用户出口的独特界面。 相反,我创建了一个通用接口和所有用户共享的Z表,并且参数通过容器对象传递(属性容器设计模式)。

但是如果那太复杂了,也可以为每个用户出口创建一个不同的界面(如上所述)。

一周热门 更多>