我知道 !读取 STXL.CLUSTD 的“正确”方式是通过 SAP ABAP 函数。但我很抱歉,我们正遭受性能问题的严重影响。我们已经决定直接访问数据库 (Oracle),而且我们还没有任何计划来恢复我们的决定,因为到目前为止一切都好得多。
但是,我们遇到了这个问题。STXL.CLUSTD 字段中的文本以难以理解的格式存储。我们无法通过 google 找到有关其编码格式的任何信息。任何人都可以提示我如何从 STXL.CLUSTD 解码文本?
谢谢
我知道 !读取 STXL.CLUSTD 的“正确”方式是通过 SAP ABAP 函数。但我很抱歉,我们正遭受性能问题的严重影响。我们已经决定直接访问数据库 (Oracle),而且我们还没有任何计划来恢复我们的决定,因为到目前为止一切都好得多。
但是,我们遇到了这个问题。STXL.CLUSTD 字段中的文本以难以理解的格式存储。我们无法通过 google 找到有关其编码格式的任何信息。任何人都可以提示我如何从 STXL.CLUSTD 解码文本?
谢谢
简短版:你没有。使用功能模块 READ_TEXT。
长版:您正在查看所谓的集群表。有关详细信息,请参阅http://help.sap.com/saphelp_47x200/helpdata/en/fc/eb3bf8358411d1829f0000e829fbfe/frameset.htm。您看到的数据是文本的内部表示,某种程度上与 ABAP 内核在内部处理数据的方式有关。没有元数据,这些数据没有任何意义。如果以不兼容的方式更改原始结构,则无法再读取数据。哦,我有没有提到数据不包含对元数据的引用?在读取这些表的内容时,即使是在ABAP中,也需要知道原始的源数据结构,否则就完蛋了。如果没有元数据和内核如何在运行时处理这些数据类型的知识,您将很难破译内容。
个人观点:直接访问 SAP R/3 系统下面的数据库是一个非常糟糕的主意,因为这不仅绕过了所有的安全措施,而且还使您非常容易受到数据库的所有结构更改的影响。直接访问数据库的唯一真正原因不是缺乏性能,而是缺乏(ABAP)知识,这应该是可以治愈的:-)
您绝对可以在不运行任何 ABAP 代码或调用 RFC 或 BAPI 等的情况下读取集群和池。这是一种非常好的方法,高性能且易于使用。
我不喜欢人们在 StackOverflow 中鞭打他们的产品,但是您必须使用 ABAP 访问 SAP 数据的信息已经过时了 7 年多。
谢谢,
比尔·麦克莱恩