将对象实例传递到RFC功能模块

Har*_* P. 4 sap abap

在ABAP的帮助下

call function 'functionname' 
  starting new task 'taskname' 
  exporting ... tables ...
Run Code Online (Sandbox Code Playgroud)

在必须将功能标记为RFC的情况下,我可以启动独立于当前运行的单独任务,例如用于批处理执行。

我想移交一个Object实例,但是默认情况下,RFC函数不接受此类参数。

那里有人也想传递对象实例并找到解决方法吗?

今天,我的解决方法是:传递工作区/结构化数据,并在调用的函数中,重新创建对象并将数据提供给它们,然后手工执行“编组”。

也许有更好的方法可以做到这一点?

或者-作为替代方案-我可以在单独的后台任务中运行对象实例的方法吗?

我正在使用SAP R3 4.6C

myd*_*rms 5

在4.6C中,没有解决方案将实例传递给启用RFC的功能模块。只能从头开始在功能模块中重新实例化它。

但是从ABAP 6.20起,可以通过将实例序列化为STRINGXSTRING变量来实现实例化,方法是IF_SERIALIZABLE_OBJECT在实例类中包含接口,并通过调用ID转换CALL TRANSFORMATION,如ABAP文档这一部分所述:

要导出引用变量引用的对象,请使用以下语句CALL_TRANSFORMATION对这些对象进行序列化和导出(如果这些对象的类实现了interface)IF_SERIALIZABLE_OBJECT

这样,您可以通过类型STRING或参数将序列化的实例传递给启用RFC的功能模块XSTRING