是否有可能从应用服务器上的文件加载动态共享对象/库,并从ABAP加载它的函数(即外部函数接口)?
我知道你可以用call语句调用内核函数,但也许内核中有支持加载库和调用其函数的函数?
我不知道有哪个内核函数可以让您这样做。可能有,但是内核函数肯定没有公开文档,所以您需要自己研究disp+work
可执行文件,看看是否存在。而如果找到一个,那么您需要确定参数是什么。这不是一件容易的事。如果你想探索,我可能会在Linux系统上使用objdump
和elfsh
作为我的开始工具集。
如果我想实现你所描述的东西,我会用C语言写一个通用的"库加载器"RFC服务器,使用NetWeaver RFC SDK。我将使用C语言,因为它将提供最大的灵活性加载外部库。您需要处理加载库的特定操作系统部分(例如,在Unix系统上使用dlopen()
,在Windows上使用LoadLibrary()
/LoadLibraryEx
),但是您可以将库函数包装在通用函数模块调用中(ala, RFC_READ_TABLE
)并动态调用它们。