ABAP中的标准库

ABAP中的标准库,abap,standard-library,Abap,Standard Library,是否有类似于现代ABAP(甚至可能是OO ABAP)的标准库?例如,一个精心策划的对象列表,它解决了一些最常见的编程任务,如 高级数据结构(不仅仅是普通的内部表) 使用文件路径和目录 使用文件(读取、保存等) 使用不同的文件类型(文本、csv、xml等) 正则表达式 使用环境(客户端、应用程序服务器) 我当前的工作流程是偶然发现一个问题,比如从文件名(或类似的简单文件名)获取文件扩展名。那么我有三个选择: 在SDN上翻阅大量(大部分都是旧的和缺乏的)帖子,直到我找到解决问题的方法为止 破解

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

  • 高级数据结构(不仅仅是普通的内部表)
  • 使用文件路径和目录
  • 使用文件(读取、保存等)
  • 使用不同的文件类型(文本、csv、xml等)
  • 正则表达式
  • 使用环境(客户端、应用程序服务器)
我当前的工作流程是偶然发现一个问题,比如从文件名(或类似的简单文件名)获取文件扩展名。那么我有三个选择:

  • 在SDN上翻阅大量(大部分都是旧的和缺乏的)帖子,直到我找到解决问题的方法为止
  • 破解并创建一个一次性的问题解决方案
  • 慢慢来,实施一个好的、记录良好的解决方案

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

    用于处理环境:

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

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

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

    挖掘功能模块可以查看结构、接收参数等

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

    在正则表达式的特殊情况下,SAP本机语言ABAP有用于处理它们的关键字,但SAP中还有一个名为CL_JAVA_SCRIPT的类,您可以使用该类以“JavaScript方式”进行操作

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

    这是一个在ABAP中非常复杂的操作,但在JS中很容易实现


    希望它能帮助回答您的第一个问题。不,与C、C#、Java不同,没有必要包含库,因为所有函数都对您可用,因此在这方面可能更简单。你问的是一个很好的问题,我相信你可能会在SDN中看到大量关于“是否有功能模块?”等的查询

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

    与其他语言一样,我们仍然需要知道链接到哪个库才能获得所需的函数,在ABAP中,您只需找到相关的包。希望它能帮点忙,我知道它并不完美

    SAP重用库(SE83)是最接近您所要查找的内容。它提供按层次结构分组的常见开发任务(UI控件、标准对话框、确认提示),并包含每个任务的代码段,以及常用的类/模块:

    虽然,它是不完整的,缺乏许多流行的东西


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

    我不明白。你知道吗?为什么不在点处拆分路径并读取最后一个元素?不幸的是,没有。ABAP没有库概念周期,因此不可能真正有一个标准库。Netweaver打包了许多实用程序功能模块和类,但可用的功能模块和类取决于您所使用的Netweaver版本。库/包概念是ABAP迫切需要但SAP未能提供的东西。ABAPGit和伴随的项目现在已经接近你所能得到的了()。非常感谢你的建议!不过还有一个问题-SAP系统非常庞大,而且有很多软件包。。。如何确定抽象是否过时?另一个很好的问题,不幸的是,了解它们何时过时的唯一方法是仔细查看特定函数、方法等的代码,SAP处理这一问题的方式并不一致,因此有时您会在属性描述中看到它,它会说“过时请勿使用”之类的话或者其他时候你会在他们代码的文档标题中看到它,它会说“不推荐使用新方法……”。希望有帮助。