如何访问跨并行会话创建的对象?

2020-09-12 10:34发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一种情况,我需要访问在主程序中的并行会话(实现并行处理)中创建的对象。

由于RFC FM不允许将对象引用用作导出参数,因此我正在寻找另一种方法来访问在并行会话中创建的这些对象。

请向我提出有关如何实现此功能的想法。

谢谢。

干杯

Ravi。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我有一种情况,我需要访问在主程序中的并行会话(实现并行处理)中创建的对象。

由于RFC FM不允许将对象引用用作导出参数,因此我正在寻找另一种方法来访问在并行会话中创建的这些对象。

请向我提出有关如何实现此功能的想法。

谢谢。

干杯

Ravi。

付费偷看设置
发送
2条回答
悠然的二货
1楼 · 2020-09-12 10:53.采纳回答

Hello Ravi

您不能访问在并行会话中创建的对象。 但是您可以使用序列化在主会话上创建副本实例,并在RFC参数中传递其序列化数据。

请参阅接口IF_SERIALIZABLE_OBJECT及其有关如何序列化的类文档,在类上实现它(tl ; dr:调用转换。)

xfwsx85
2楼-- · 2020-09-12 11:03

调用转换只是"提取"对象的属性内容,并将它们放在xstring/string变量中(RESULT调用的参数)。 进行反向转换调用时,它将读取此变量并在新实例中恢复对象状态(属性值)。 它没有存储在共享内存中,实际上是在创建具有相同属性内容的新实例。 您可以将xstring/string变量视为文件,并且CALL TRANSFORMATION正在执行保存/加载操作。

我忘了指出一些可能导致的行为:

  • 由于使用的是对象副本,因此并行节对象中的任何状态更改都不会反映在主会话对象中(它们是两个不同的实例,但在某些时候具有相同的状态)。
  • 嵌套对象 如果您有多个应用程序服务器,则引用可能是此类编程中的一个问题(我认为接口文档中已提到该问题,或者它在CALL TRANSFORMATION F1帮助下,现在无法更改)。 如果可以,请使用没有嵌套对象引用的对象,或者确保所有嵌套对象也实现IF_SERIALIZABLE_OBJECT接口。

不幸的是,我无法指向有关序列化的文档比此文档更好,但是它在技术上和概念上都不太概念化 作品。 维基百科的文章对此进行了简要说明。

一周热门 更多>

点击此处---> EasySAP.com 一起学习S4 HANA ...

相关问答