启动新任务的并行处理 - 前端屏幕超时 [英] Parallel Processing with Starting New Task - front end screen timeout

查看:26
本文介绍了启动新任务的并行处理 - 前端屏幕超时的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在运行一个 ABAP 程序来处理大量数据.SAP 文档提供了我应该使用的信息远程功能模块,添加了 STARTING NEW TASK 来处理数据.

I am running an ABAP program to work with a huge amount of data. The SAP documentation gives the information that I should use Remote Function Modules with the addition STARTING NEW TASK to process the data.

所以我的程序首先选择了所有的数据,将数据分解成包,并调用带有数据包的功能模块进行进一步处理.

So my program first selects all the data, breaks the data into packages and calls a function module with a package of data for further processing.

这是我的伪代码:

Select KEYFIELD from MYSAP_TABLE into table KEY_TABLE package size 500.

 append KEY_TABLE to ALL_KEYS_TABLE.

Endselect.


Loop at ALL_KEYS_TABLE assigning <fs_table> .

  call function 'Z_MASS_PROCESSING'
     starting new TASK 'TEST' destination in group default
       exporting
           IT_DATA = <fs_table> .

Endloop .

但是我很惊讶地发现我使用对话进程而不是后台进程来调用我的功能模块.

But I am surprised to see that I am using Dialog Processes instead of Background Process for the call of my function module.

所以现在我遇到了一个问题,因为超时,我的一个对话进程在 60 分钟后被杀死了.

So now I encountered the problem that one of my Dialog Processes were killed after 60 Minutes because of Timeout.

对我来说,STARTING NEW TASK 似乎不是并行处理海量数据的正确解决方案.

For me, it seems that STARTING NEW TASK is not the right solution for parallel processing of mass data.

替代方案是什么?

推荐答案

我认为,SAP 中并行处理的最佳方式是 Jagger 提到的银行并行处理框架.不幸的是,它在任何资源中都很少被提及,并且没有很好的记录.实际上,我找到的最好的文档在这本书中

I think, best way for parallel processing in SAP is Bank Parallel Processing framework as Jagger mentioned. Unfortunently its rarerly mentioned in any resource and its not documented well. Actually, best documentation I found was in this book

https://www.sap-press.com/abap-performance-Tuning_2092/

是的,这很棘手.我花了大约 5 到 6 天的时间来强迫它进行.但结果很好.

Yes, it's tricky. It costed me about 5 or 6 days to force it going. But results were good.

所有东西都位于包 BANK_PP_JOBCTRL 中,您可以使用它的名称进行谷歌搜索.

All stuff is situated in package BANK_PP_JOBCTRL and you can use its name for googling.

主要思想是将您的所有工作分成几个步骤(简化):

Main idea there is to divide all your work into steps (simplified):

  1. 准备

并行处理

2.1.加工准备

2.2.加工(其实还有更多的步骤)

2.2. Processing (Actually there are more steps there)

第一步不是平行的.在这里,您应该为并行处理准备所有数据,并将其分成将并行处理的片段".片段的内容又可以是 ID 或预加载的数据.之后,您可以在并行处理中运行步骤 2.所有这一切的一大好处是,一项并行工作中的错误不会导致您的所有处理崩溃.我建议您在功能组 BANK_API_PP_DEMO

First step is not paralleized. Here you should prepare all you data for parallel processing and devide it into 'piece' which will be processed in parallel. Content of pieces, in turn, can be ID or preloaded data as well. After that, you can run step 2 in parallel processing. Great benefit of all this is that error in one piece of parallel work won't lead to crash of all your processing. I recomend you check demo in function group BANK_API_PP_DEMO

这篇关于启动新任务的并行处理 - 前端屏幕超时的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆