从功能组自动生成ABAP类?

2020-09-01 17:45发布

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

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


嘿,

有没有一种方法可以通过提供一个现有的功能组来使(SE24)-ABAP类生成异常?

我认为,以下映射范围是 可能的::

-函数组是类

-其功能模块是公共(静态)方法

-任何形式例程都是私有方法

...

->我不想自己做这些无聊的工作,某些工具应该可以做到这一点,对吗? 那么,有没有这样的工具?

谢谢

Joachim

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

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


嘿,

有没有一种方法可以通过提供一个现有的功能组来使(SE24)-ABAP类生成异常?

我认为,以下映射范围是 可能的::

-函数组是类

-其功能模块是公共(静态)方法

-任何形式例程都是私有方法

...

->我不想自己做这些无聊的工作,某些工具应该可以做到这一点,对吗? 那么,有没有这样的工具?

谢谢

Joachim

付费偷看设置
发送
5条回答
callcenter油条
1楼 · 2020-09-01 18:15.采纳回答

好的,谢谢您的输入!

答案似乎是:"不,没有这样的东西"。

(所以我将不得不手动转换它或只是坚持使用我的功能模块)

lukcy2020
2楼-- · 2020-09-01 18:01

抱歉,听起来好像只有两个回答的人不知道 这样的工具...

还有另外一点,我一开始没有想到。 使用ABAP OO,您还将拥有更严格的语法和更多过时的语句变体,因此无法使用。 这是编写这种工具的另一个障碍(但是当然不是不可能,我只是怀疑任何一个合理的程序员都会写这种东西)。

无论如何,我从来不理解SAP为什么如此推崇OO(将所有非OO声明为过时的),甚至还包括对OO实施更严格的语法检查。 在我看来,一个更好的选择是实现一些标志,以开启更严格的语法检查,类似于它们引入的Unicode检查。 OO编码或非OO编码都有其用途。 作为一般建议,即使在OO无法正常工作的情况下,SAP的规则也可以对OO中的所有内容进行编码,这似乎很愚蠢: 如果我必须编写一个RFC模块,为什么我要通过引入一个实现该功能的类来使我的代码膨胀,以使RFC只是该类的包装器(除非附加类为我提供了一些 real 收益)?

尽管我很欣赏使用SAP提供的OO类,但是我经常很难看到必须编写代码的需求中的对象(这当然可能反映了我的编程技能)。 仅有一些静态方法的类通常表示OO设计不佳,即没有合理/有形的对象,而您所拥有的只是一个具有各种方法集合的实用程序类。 对我来说,重要的一点是,代码要具有良好的结构,没有任何副作用等。这可以通过非OO编码以及OO来实现,但是从非OO切换到OO并不能完全保证 代码会更好。

最后,如果您只有一个功能组,建议您手动进行翻译,并尝试应用良好的OO设计原则(而不是简单的一对一翻译)。 例如。 对于只具有静态方法的类(我希望可以得到自动翻译结果),可能想看看[singletons is evil | http://www.c2.com/cgi/wiki?SingletonsAreEvil ]与[singletons很好| http://www.c2.com/cgi/wiki?SingletonsAreGood ]。 如果您是经验丰富的OO程序员,我知道这是愚蠢的建议。 但是,如果没有,我认为通过考虑设计然后再应用它,而不是使用一些自动化工具,而以后您不得不以某种方式进行重构,则可以花更多的时间...

暮风yp
3楼-- · 2020-09-01 18:12

我认为没有工具可以将功能组自动转移到类中

您的问题是什么?

Max

灬番茄
4楼-- · 2020-09-01 18:01

Max, Harald,

非常感谢您的输入;

我的问题是:

我使用功能模块(在功能组中)实现了某些功能 )与int中的一些Perform-Call。

完成后,我意识到我宁愿有一个静态方法(在全局类中),并在其中带有一些方法调用。

(做同样的事情 ;我只是出于习惯使用了"旧"技术)。

我知道有一些"迁移工具"可以将SapScript-Forms转换为Smartforms(我认为不是很有用,但它们存在),所以我认为" Function Group to Class"(功能组到类)可能有类似的东西( 正如我所指出的那样,从技术上讲应该是可能的(也许有例外)-不要有一个完成的,100%的工作和完美设计的班级,而是要节省手工工作,这种过渡将需要"手工"完成。

因此,Harald,您几乎明白了这一点:我只想要看起来像" OOish"的东西,做我的功能模块要做的事情!

me_for_i
5楼-- · 2020-09-01 18:09

我也怀疑像Max这样的工具。 除了通用翻译的技术上的困难外(例如,我马上想到的是全局函数接口,即所有参数都是全局的),我不明白为什么要使用这种工具,因为这似乎有点 傻...

我不太明白这种翻译会带来什么好处,特别是考虑到大多数功能组可能实际上并不代表任何类/对象这一事实。 因此,我希望这样的自动翻译会导致(在大多数情况下)不良的OO设计。 对于频繁使用的功能组尤其如此,因为在这种情况下,自动转换很可能仅会创建静态方法/属性(以支持用方法调用轻松且可能自动地替换函数调用)。

无论如何,我很难理解为什么要这样做。 我的疯狂猜测是,您正在为某个因SAP的ABAP OO狂潮而迷恋的客户工作,该狂热将任何非OO ABAP标记为过时(除了某些特殊情况,例如RFC,经典dynpro编程等)。 我认为这样做不合适,因为好的设计不一定需要OOP。 因此,如果这是引发您的问题的原因,我认为最好向客户解释一些有关良好的开发/设计原则的信息。 我为此小道歉,但我无法抗拒-也许其他人针对您的原始问题发布了更有用的内容...????

干杯,哈拉德

一周热门 更多>