跨程序的多个并行会话访问内部表

2020-08-13 18:35发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)专家们, 我们有一个独特的要求...

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

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


专家们,

我们有一个独特的要求,即必须跨运行在不同应用服务器上的并行会话中运行的同一程序访问内部表。

此内部表将具有顺序填充并需要进行比较的所有会话的字段值的总和。

因为这是在增强中,所以我们也不能提交数据库登台表。

期待您的想法。

谢谢

6条回答
DafaDDDa
2020-08-13 18:51 .采纳回答

请更具体地说明为什么您无法设置任何并行任务,并因此取决于您的要求,即所有并行任务必须同时具有对公共对象的读写权限?

当前,我可以为您提供三个选择:

  1. 使用ABAP频道
    ABAP通道是基于ABAP通道的事件通信,使用应用程序服务器之间(以及与Internet的消息)进行通信。 AMC部分是您需要实现的部分:
    ABAP消息传递渠道(AMC )是ABAP程序之间使用消息进行通信的一种方法。 使用发布和订阅机制,可以在任何AS ABAP程序之间交换消息,包括不同用户会话和应用程序服务之间的通信
  2. 使用共享对象
    共享对象是共享内存区域中的对象。共享对象是Application Server特定的。
    a)创建共享 在一个特定的应用服务器上的对象A
    b)为AS A创建目标
    c)创建一个"暴露"共享对象的FM
    如果您的程序在AS A上运行,则可以访问Shared 对象
    如果您的程序在不同的AS上运行,则可以通过RFC将其访问到AS A。
  3. 重写您的编码
    您将需要进行一些工作来设置1。 2.以及用脑力找出如何处理对共享库的并发读写访问(与DB相同)
    重写代码以及如何设置并行进程 最好的选择。

重写选项:

  • 设置并行任务,使他们不需要了解其他任务的任何信息,例如 也许只并行执行性能较高的部分,但将对齐部分留在主程序中
  • 如果并行任务给出的返回值需要在完成后与其他任务对齐,则只需要使用 带有选项的"呼叫功能",包括"开始新任务"和"在任务结束时执行"。
呼叫功能'YOUR_PARALLEL_FUNCTION'
         开始新任务职位名称
         DESTINATION IN GROUP server_group
         在任务结束时执行receive_tasks
      导出" ... 

一周热门 更多>