Abap 如何根据当前客户端/命令编写不同的代码?

Abap 如何根据当前客户端/命令编写不同的代码?,abap,Abap,我们目前有一个SAP系统,使用两个不同的客户端002和004。我的任务是在ABAP中编写一个程序来创建关于用户分配的报告。报告在两个客户端上的作用基本相同,但我必须在两个客户端上选择不同的表 有没有一种方法可以在不同的客户端之间区分ABAP代码,例如: IF client = 002. * dothis. ELSE. * dothatdifferentthing. ENDIF. 提前感谢。当前客户端可在字段sy mandt中找到 例如: IF sy-mandt = '002'. *dothis

我们目前有一个SAP系统,使用两个不同的客户端002和004。我的任务是在ABAP中编写一个程序来创建关于用户分配的报告。报告在两个客户端上的作用基本相同,但我必须在两个客户端上选择不同的表

有没有一种方法可以在不同的客户端之间区分ABAP代码,例如:

IF client = 002.
* dothis.
ELSE.
* dothatdifferentthing.
ENDIF.

提前感谢。

当前客户端可在字段sy mandt中找到

例如:

IF sy-mandt = '002'.
*dothis.
ELSE.
*dothatdifferentthing.
ENDIF.

另外一个建议——尝试用面向对象的方法来实现这一点,将所有公共代码填充到一个抽象超类中,并创建两个子类,其中只包含依赖于客户端的代码。然后,基于SY-MANDT,实例化其中任何一个子类。这可能有助于减少重复代码…

谢谢。有时候我不容易。好像我用了错误的关键字搜索。99%的SAP表在其键中包含字段mandt或client(不包含它的表是独立于客户端的),因此您可以使代码依赖于客户端(避免代码重复),在每次数据库访问(读取、更新、删除…)时添加“client=sy mandt”或“mandt=sy mandt”和“client SPECIFIED”请参阅sap帮助中的FROM语句系统会自动将约束应用于SQL查询,因此默认情况下,您只能在
mandt=sy mandt