Asynchronous 在不使用函数模块调用的情况下启动新线程

Asynchronous 在不使用函数模块调用的情况下启动新线程,asynchronous,abap,saprfc,function-module,Asynchronous,Abap,Saprfc,Function Module,我知道,一个人可以开始一个新的线程 CALL FUNCTION 'ZTEST_RFC' STARTING NEW TASK 'ABC'. 但是,当我在ABAP中编写web应用程序时,让我的OO处理程序解析http调用,获取请求数据,然后调用旧的Skool函数模块,然后再让FM调用一个包含所有应用程序逻辑的OO对象,感觉非常错误 有什么方法可以提供一个对象和方法来启动一个新任务吗?没有。我理解这感觉是错误的,但是启动新任务使用了很多基本的RFC机制,而且由于类从未真正启用过RFC(尽管您可以在

我知道,一个人可以开始一个新的线程

CALL FUNCTION 'ZTEST_RFC' 
STARTING NEW TASK 'ABC'.
但是,当我在ABAP中编写web应用程序时,让我的OO处理程序解析http调用,获取请求数据,然后调用旧的Skool函数模块,然后再让FM调用一个包含所有应用程序逻辑的OO对象,感觉非常错误


有什么方法可以提供一个对象和方法来启动一个新任务吗?

没有。我理解这感觉是错误的,但是
启动新任务
使用了很多基本的RFC机制,而且由于类从未真正启用过RFC(尽管您可以在一些内部细节中看到,至少有人为此做了一些规定),您仍然必须依赖于基本的过程编程。另一方面,我很少看到在ABAP中使用并行处理的合适方法…

从web前端上传带有交付计划的文件,响应时间可能是几分钟,因此需要单独处理。我仍然不明白-您不是要发布到单独的web服务吗?为什么要为此使用两个ABAP对话进程?第一个ABAP对话进程退出并返回将要处理的文件(即在验证数据是否正常之后)。第二个过程会持续更长的时间,并完成实际工作。为此启动一个后台工作怎么样?这样,您甚至可以将处理负载分散到不同的服务器上。第一个进程使用GUID将二进制文件填充到数据库中,生成变量并使用
SIMPLE\u BATCH\u JOB\u SUBMIT
启动后台作业。