5

通过 ABAP 构造STARTING NEW TASK,我可以启动一个独立于当前运行的单独任务,例如批量执行。

我想交出一个对象实例 RFC 函数不接受这些类型的参数。是否有人也想传递一个对象实例并找到解决方法?

今天我的解决方法是传递结构化数据并在模块内重新创建对象,所以我手动进行“编组”。

也许有更好的方法来做到这一点?或者我可以在单独的后台任务中运行对象实例的方法吗?

PS我正在使用SAP R3 4.6C

4

3 回答 3

6

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

但是从 ABAP 6.20 开始,可以通过在实例类中包含接口并通过调用转换来将实例序列化为 aSTRINGXSTRING变量,如ABAP 文档的这一部分所述:IF_SERIALIZABLE_OBJECTIDCALL TRANSFORMATION

要导出引用变量引用的对象,CALL_TRANSFORMATION如果这些对象的类实现了接口,请使用该语句序列化和导出这些对象IF_SERIALIZABLE_OBJECT

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

于 2011-07-04T15:31:33.253 回答
3

我意识到这个线程大约有 5 年的历史,所以我在这里做了一些线程死灵术,但它仍然出现在“abap rfc objects”的前几首热门歌曲中,所以我希望大家原谅我。

在现代 ABAP 中执行此操作的正确方法可能是使用 IF_SERIALIZABLE_OBJECT 接口。它基本上允许您将对象转换为 XML 字符串,然后可以将其作为导入字符串参数传递到 FM 并反序列化回目标系统中的对象。

指南: https ://rvanmil.wordpress.com/2011/05/20/serialization/

于 2017-02-10T19:05:08.137 回答
-1

我不知道这是否适用于 4.6C(我使用的是更新的版本),但我会执行以下操作:

i)通过 SE11 创建结构。
ii) 结构的组件(字段)支持该TYPE REF TO选项。这意味着,您应该能够在此处指定类名。
iii) 将结构(您刚刚创建的)传递给 RFC。

希望在 4.6C 下有效。

于 2011-08-04T04:34:58.707 回答