在ABAP的帮助下
call function 'functionname'
starting new task 'taskname'
exporting ... tables ...
Run Code Online (Sandbox Code Playgroud)
在必须将功能标记为RFC的情况下,我可以启动独立于当前运行的单独任务,例如用于批处理执行。
我想移交一个Object实例,但是默认情况下,RFC函数不接受此类参数。
那里有人也想传递对象实例并找到解决方法吗?
今天,我的解决方法是:传递工作区/结构化数据,并在调用的函数中,重新创建对象并将数据提供给它们,然后手工执行“编组”。
也许有更好的方法可以做到这一点?
或者-作为替代方案-我可以在单独的后台任务中运行对象实例的方法吗?
我正在使用SAP R3 4.6C
在4.6C中,没有解决方案将实例传递给启用RFC的功能模块。只能从头开始在功能模块中重新实例化它。
但是从ABAP 6.20起,可以通过将实例序列化为STRING或XSTRING变量来实现实例化,方法是IF_SERIALIZABLE_OBJECT在实例类中包含接口,并通过调用ID转换CALL TRANSFORMATION,如ABAP文档这一部分所述:
要导出引用变量引用的对象,请使用以下语句
CALL_TRANSFORMATION对这些对象进行序列化和导出(如果这些对象的类实现了interface)IF_SERIALIZABLE_OBJECT。
这样,您可以通过类型STRING或参数将序列化的实例传递给启用RFC的功能模块XSTRING。