ABAP 中的标准库

Standard library in ABAP

是否有类似于现代 ABAP(甚至可能是 OO-Abap)的标准库?例如,一个精选的对象列表可以解决一些最常见的编程任务,例如

我目前的工作流程是偶然发现一个问题,例如从文件名(或相当相似且简单的东西)获取文件的扩展名。那么我有三个选择:

  1. 在 SDN 上挖掘大量(大部分是旧的和缺乏的)帖子,直到我找到解决问题的指针
  2. 破解并为问题创建一次性解决方案
  3. 花点时间实施一个好的、有据可查的解决方案

很多时候觉得有点失落。许多可用的信息是旧的、坏的或两者兼而有之。是否有更结构化的方法来解决在 ABAP 世界中找到合适的抽象的问题?

对于环境的处理:

如果您有权访问 SAP,则有一个名为 BAPI 的事务代码

在这里您可以找到 SAP 中所有主要对象的分层列表(即 Material、采购订单等)

在此列表中,您可以找到文档、用于对象的功能模块(即 créate/get detail/update 等)

深入功能模块可以看看结构、接收参数等

其他问题有点复杂,我不知道有任何全面的列表,但深入研究 SCN 通常很容易找到处理文件等最常见问题的解决方案

在正则表达式的特殊情况下,SAP 本机语言 ABAP 具有用于处理它们的关键字,但您在 SAP 中也有一个名为 CL_JAVA_SCRIPT 的 class,您可以使用它来执行这些操作在 "JavaScript way"

例如,我过去使用这个 class 来评估字符串中提供的一个简单公式(即 3 + 2 * 5 )

这个操作在 ABAP 中确实很复杂,但在 JS 中很容易。

希望对你有帮助

要回答您的第一个问题,否,与 C、C# 不同,Java 不需要包含一个库,因为您始终可以使用所有函数,因此在这方面它可能更简单。虽然你问的是一个很好的问题,但我相信你可能会在 SDN 中看到大量关于 "Is there a Function module for?" 等的查询。

没有一个简单的答案,但在 SAP ABAP 中,我认为最简单的方法可能是通过查看包来找到它。类似于图书馆,通过查看您正在寻找的功能类型的包可能会让您到达那里。例如,如果我正在寻找处理文件,我可能会寻找控制框架包,在那里我可以看到与前端 controls/file 处理等相关的所有可用 functions/classes/methods/BAPIs 等,并且可能能够找到我要找的东西。请注意,它并不完美,因为包的使用方式不时发生变化,因此它实际上更适合查找与采购或销售等相关的功能,但它是我们使用的一种方式。

与其他语言一样,我们仍然需要知道 link 在哪个库中才能获得所需的功能,在 ABAP 中,您只需找到相关的包即可。希望它能有所帮助,我知道它并不完美。 Example package for front end controls

SAP Reuse Library (SE83) 是最接近您正在寻找的东西。它提供按层次结构分组的常见开发任务(UI 控件、标准对话框、确认提示)并包含每个常用 classes/modules:

的代码片段

虽然不完整,缺少很多流行的东西。

还要考虑 this link 中的 DWDM、BIBS、LIBS 事务和其他包。