Flow Builder Plus: the technical highlights
Flow Builder Plus, a.k.a. Flow Builder 2.0, is a new program which created as a successor of old Flow Builder (a.k.a. Flow Builder 1.0) since CE2111, and also available in OP2021 SP1 or OP2021 SP0 via Notes.
Then, what’s the improvement in Flow Builder Plus comparing to old Flow Builder?
Well, it is a big question which need be documented in business aspect and technical aspect, respectively.
See other posts which tried to document it from business aspect:
- Flow Builder Plus: the business insight, Part I | SAP Blogs
- Flow Builder Plus: the business insight, Part II | SAP Blogs
This post just highlight the technical advantages as following:
Huge Performance Improvement, and no more HANA Memory Overflow issue.
The major pain point of Old Flow Builder is the performance, including both execution time and the runtime memory consumption.
Flow Builder Plus, which targets to provide better performance and grant a zero Out-Of-Memory issue, implemented with following parts:
Firstly, Flow Builder Plus embeds ‘Packaging’ concept in all parts to avoid memory issue. Unlike old Flow Builder which using AMDP, Flow Builder Plus using purely ABAP memory which limited to 4GB per session and Flow Builder Plus ensures the memory consumption in each packaging is controllable.
Secondly, Flow Builder Plus introducing ‘Parallel Processing’ to accelerate the flows’ generation, which allows you to use your AS ABAP’s capacity to accelerate data processing.
Thirdly, Flow Builder Plus introducing new locking mechanism to allow multiple Flow Builder instances running at the same client at the same time. The new locking mechanism benefits the performance side a lot.
To process extremely large data volume, you can start several Flow Builder job with different company code, and each job using ‘Parallel Processing’.
Please be aware that Flow Builder Plus will cost longer time than older Flow Builder if Parallel Run is not enabled, the root reason is Flow Builder Plus will avoid memory OOM while old Flow Builder not.
Some figures from LABS testing.
For execution times:
- Building Liquidity Analysis flows for 158 million document items (data volume of BSEG), with parallel task set to 30, package size set to 400 000, it cost 3525 seconds (less than 1 hour).
- Building Cash Position flows for 158 million document items (data volume of BSEG), with parallel task set to 30, package size set to 400 000, it cost 338 seconds (around 5.5 min) .
For memory consumption:
- Via DB02, ‘Expensive SQL Statement’ appears when Old Flow Builder running. Now, there is zero statement with Flow Builder Plus.
- HANA Statement Limit restrict old Flow Builder. That setting won’t impact Flow Builder Plus any more.
- Depends on HANA Statement Limit setting, there could be HANA Out Of Memory exception when old Flow Builder executing.
- The maximum memory cost (ABAP Server memory not HANA memory) via SM50 we observed is around 500MB (per session).
Less Error Prone and stronger data integrity.
Both Old Flow Builder and Flow Builder Plus generate flows coming from Accounting documents and MM documents. With the complexity of document chain in accounting side as well as the real-time integration, there could be cases that Flow Builder missed flows.
That’s another pain point we received for old Flow Builder.
Flow Builder Plus, introducing a small program ‘Gap Filler’ which will try to ‘Fill the Gap’ automatically. A light-weight job will be scheduled for that purpose to provide a stronger data integrity for FI flows part.
No more meaningless snapshot Flows.
Old Flow Builder always generate snapshot flow each time if the Snapshot was switched on. With this behavior, the data volume of our kernel table FQM_FLOW increasingly dynamically. That’s the third pain point we received.
Flow Builder Plus, also put the target ‘No more meaningless snapshot flows’ in the design phrase. Unlike old Flow Builder, Flow Builder Plus will generate flows but it will compare to existing flows, and it will generate snapshot flows if and only if the generated flows are different with existing flows.
Old Flow Builder, reports ‘XXXX flows generated’;
Flow Builder Plus, reports ‘XXXX flows generated, XXX flows updated’;
If the accounting documents are the same and all relevant configuration are still, ideally Flow Builder Plus normally reports ‘XXXX flows generated, 0 flows updated’.
With respect to the complexity of the chain and the real environment, Flow Builder Plus may still update a few flows, and the updated ratio (updated flows / all generated flows) shall less than 1%.
- With Older Flow Builder, if one complex chain will generate 10 000 flows, and there will be 100 000 flows when Snapshot is on and that chain was built 10 times.
- With Flow Builder Plus, process the same complex chain, ideally there are still 10 000 flows even Snapshot is on and the chain was built 10 times. With respect to the updated ratio 1%, there could be 10 010 flows if the chain has been built 10 times.
Easier to apply Note: removed the step of Generating Loading Class.
Old Flow Builder which implemented with AMDP, and Loading Class’s regeneration is a mandatory step to support extensibility.
Flow Builder Plus, which refactored as purely ABAP, which don’t needs Loading classes’ generating. No matter apply standard Notes or reimplement your extensibility code, there is no need to generate loading class.
Flexible way to stop Flow Builder job.
Another pain point of old Flow Builder is, stop Flow Builder’s job cost times and also impacts business usage. Due to the technical job of Flow Builder, normally the job will be stopped within 1 hours. And once Flow Builder was stopped, it impacts all company codes.
Flow Builder Plus, in another hand, controlled by the content in configuration (maintenance view VFQMC_ACT_FI), where you can set the ‘Liquidity Analysis Update Mode’ as ‘Deferred – Delta Table Update’. The Flow Builder job won’t triggered for that company code.
Reduced conflicts between Manual Adjustment in CCFI and Flow Builder.
As introduced above, Flow Builder Plus introducing new locking mechanism to allow multiple Flow Builder instances running at the same client at the same time.
Old Flow Builder using the lock in client level;
Flow Builder Plus, however, using a new lock in company code level;
It will reduce the conflicts between Manual Adjustment in CCFI and Flow Builder Plus for sure.
Last but not least, Flow Builder Plus doesn’t require any data rebuild if you want to upgrade from old Flow Builder and without any business scope change. That’s another design target in Flow Builder Plus.
If you are interesting in Flow Builder Plus (currently available in OP2021 SP0 via Note and officially available in OP2021 SP1), please refer to
Any further question, drop us a mail please.