2020-08-13 18:35发布
加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)
专家们,
我们有一个独特的要求,即必须跨运行在不同应用服务器上的并行会话中运行的同一程序访问内部表。
此内部表将具有顺序填充并需要进行比较的所有会话的字段值的总和。
因为这是在增强中,所以我们也不能提交数据库登台表。
期待您的想法。
谢谢
请更具体地说明为什么您无法设置任何并行任务,并因此取决于您的要求,即所有并行任务必须同时具有对公共对象的读写权限?
当前,我可以为您提供三个选择:
重写选项:
呼叫功能'YOUR_PARALLEL_FUNCTION' 开始新任务职位名称 DESTINATION IN GROUP server_group 在任务结束时执行receive_tasks 导出" ...
Siva Paruchuri ,请继续处理您的未解决问题。 p>
如果您使用其他数据库连接,则可以使用临时数据库表
https://help.sap.com/doc/abapdocu_750_index_htm/7.50/zh-CN/abapselect_additions.htm#!ABAP_ADDITION_3@3@
Siva Paruchuri ,谢谢您接受答案。 您能否提供简短信息,说明您选择了哪个选项来解决问题?
使用自定义数据库表。 在出口处执行INSERT/DELETE,但不提交工作。尝试一下。!
这可以通过将内容存储在自定义数据库表中来实现。
只需将会话ID作为数据库表的键的一部分,这样并行线程就不会在数据库锁上彼此同步。
然后,主线程可以读取聚合的数据-然后它将等待任何线程对任何数据库的锁定。 通过在COMMIT上使用PERFORM来最小化数据库锁的时间跨度(如果增强的标准功能通过更新来写数据,则可以执行更新任务)来最小化数据库锁的时间跨度。
最多设置5个标签!
请更具体地说明为什么您无法设置任何并行任务,并因此取决于您的要求,即所有并行任务必须同时具有对公共对象的读写权限?
当前,我可以为您提供三个选择:
ABAP通道是基于ABAP通道的事件通信,使用应用程序服务器之间(以及与Internet的消息)进行通信。 AMC部分是您需要实现的部分:
ABAP消息传递渠道(AMC )是ABAP程序之间使用消息进行通信的一种方法。 使用发布和订阅机制,可以在任何AS ABAP程序之间交换消息,包括不同用户会话和应用程序服务之间的通信
共享对象是共享内存区域中的对象。共享对象是Application Server特定的。
a)创建共享 在一个特定的应用服务器上的对象A
b)为AS A创建目标
c)创建一个"暴露"共享对象的FM
如果您的程序在AS A上运行,则可以访问Shared 对象
如果您的程序在不同的AS上运行,则可以通过RFC将其访问到AS A。
您将需要进行一些工作来设置1。 2.以及用脑力找出如何处理对共享库的并发读写访问(与DB相同)
重写代码以及如何设置并行进程 最好的选择。
重写选项:
Siva Paruchuri ,请继续处理您的未解决问题。 p>
如果您使用其他数据库连接,则可以使用临时数据库表
https://help.sap.com/doc/abapdocu_750_index_htm/7.50/zh-CN/abapselect_additions.htm#!ABAP_ADDITION_3@3@
Siva Paruchuri ,谢谢您接受答案。 您能否提供简短信息,说明您选择了哪个选项来解决问题?
使用自定义数据库表。 在出口处执行INSERT/DELETE,但不提交工作。
尝试一下。!
这可以通过将内容存储在自定义数据库表中来实现。
只需将会话ID作为数据库表的键的一部分,这样并行线程就不会在数据库锁上彼此同步。
然后,主线程可以读取聚合的数据-然后它将等待任何线程对任何数据库的锁定。 通过在COMMIT上使用PERFORM来最小化数据库锁的时间跨度(如果增强的标准功能通过更新来写数据,则可以执行更新任务)来最小化数据库锁的时间跨度。
一周热门 更多>