Learn and share on deeper, cross technology development topics such as integration and connectivity, automation, cloud extensibility, developing at scale, and security.
Auto-suggest helps you quickly narrow down your search results by suggesting possible matches as you type.
Showing results for
Search instead for
Did you mean:
Success! Subscription added.
We have launched new Developer forums/groups in the SAP Community. If you are here to publish developer- or SAP-technology related blog posts, please check out our new groups instead. You can find more information about the developer forums in this What's New post.
I'm quite confused what is the use of this program. It reads 200k records from VBAK, then calls BAPI 200k times and then what? What would this achieve?
This "poor man's parallel processing" is usually used not for reading data but rather for posting / updating something. In the old systems like ECC, some postings required very long time. 3 seconds to post a document (unusual when BDC is involved) results in hours and even days when you need to post massive amount of them. So that's where you'd start spinning off multiple background jobs. Such activities would happen typically at the end of the month, during migration, initial data upload, etc.
Just to read the data we can obviously start multiple jobs too, but I don't see what purpose this could possibly serve. What would you do with the data in the end? How would you collect it from the multiple jobs?
There also don't seem to be any safeguards in place to prevent too many jobs from being generated. Basis folks won't be happy about this. 🙂 Sorry, I think this example choice is just not good. And the code is... not great either, sorry. You might want to check out Clean ABAP when you have time.
And one important correction. It says "Unlike a single process that might fail and cause a dump, background jobs run independently[...]". What caused a dump was not just a "single process", it was a dialog process. If you just ran the same thing as 1 job vs N jobs, it'd take more time but wouldn't cause a time-out dump.
Actually, the purpose of the program is to demonstrate how parallel processing can be used for long-running operations (such as record creation, data updates, etc.). Here, I simply presented the method; it is entirely up to the users to determine how and in which scenarios they will use it.
Of course, parallel processing may not be necessary for data reading alone. However, in scenarios involving large-scale data processing, document creation, or updates, this method can be highly beneficial for improving performance. At this point, to minimize the impact of spawning too many jobs on system performance, precautions such as job limits or queue management can be implemented.