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

Abap 将对象实例传递给RFC功能模块,abap,saprfc,bapi,function-module,Abap,Saprfc,Bapi,Function Module,使用ABAP construction启动新任务我可以启动独立于当前任务运行的单独任务,例如批处理执行 我想交一个对象实例,RFC函数不接受此类参数。是否有人也想传递一个对象实例并找到解决方法 今天,我的解决方法是传递结构化数据并在模块内重新创建对象,所以我手工进行“编组” 也许有更好的方法?或者我可以在单独的后台任务中运行对象实例的方法吗 另外,我在4.6C中使用SAP R3 4.6C,没有将实例传递给启用RFC的功能模块的解决方案。只能在功能模块内部从头开始重新实例化它 但是在ABAP 6.

使用ABAP construction
启动新任务
我可以启动独立于当前任务运行的单独任务,例如批处理执行

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

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

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


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

但是在ABAP 6.20中,可以将实例序列化为
STRING
XSTRING
变量,方法是将接口包含在实例类中,并通过调用
ID
转换,如本部分所述:

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


通过这种方式,您可以通过类型为
STRING
XSTRING
的参数将序列化实例传递给启用RFC的功能模块。我不知道这在4.6C中是否有效(我使用的是更新的版本),但我会执行以下操作:

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


希望它能在4.6C中工作。

我意识到这个线程大约有5年了,所以我在这里做了一点线程死灵术,但它仍然出现在“abap rfc对象”的前几次点击中,所以我希望大家都原谅我

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

指南:

如果我没记错的话,这只在Basis发行版2004s中才提供(是ECC5吗?),但值得一试。我会尽快尝试一下-谢谢你的回答!不幸的是,4.6CHello Hartmut中没有调用转换,只是出于兴趣:这是您正在运行的评估版本,还是实际的客户机仍在使用4.6C?这确实是4.6C-非常旧,但运行起来很有魅力-我没有使用评估版本Hey Guven我真的希望这会起作用,但它没有+1出于自愿……不正确,RFC模块中仍然不允许引用类型,即使是内部结构,只是在最新的7.52系统上检查了我在mydoghasworms的答案中包含了关于
字符串
参数的答案部分(其中已经包含重要的
IF_SERIALIZABLE_对象