tobiashofmann / sap-dev-tech-radar

Tech radar for SAP Devs. Visualizing the SAP developer technology choices.
https://tobiashofmann.github.io/sap-dev-tech-radar/
Apache License 2.0
28 stars 4 forks source link

BRF+ ? Is it ABAP Cloud Programming model compatible #16

Open larshp opened 4 months ago

larshp commented 4 months ago

Hi, I dont think BRF+ is released for ABAP Cloud Programming model? So I suggest moving it to HOLD if that is the case

tobiashofmann commented 4 months ago

Moving it to hold can be discussed or proposed.

When I added it I was thinking between USE and HOLD. I decided against HOLD as it is available for S/4HANA on premise / private cloud systems. For an on premise developer it is available and I think there is no EOL announced. It was once hyped, therefore usage is still significant. It is also used by SAP standard. Yet, BRF+ is not available in the cloud. Maybe the future of BRF+ is already written and it won't survive 2040?

Jelena-P commented 3 months ago

I'd also vote for moving it to HOLD. Even though there seem to be no official announcements, there is also clearly no future for it. And I wouldn't encourage anyone to use it in new development or even learn about it (unless there is a very specific practical need). I think the idea behind it was good but it was killed by the clunky implementation.

pokrakam commented 3 months ago

There's a fair bit of official and unofficial info out there that backs up keeping it at USE. If the scenario is contained within a single ABAP instance then go with BRFplus. If multiple ABAP systems are involved then consider DSM or BTP Business Rules Service, if multiple ABAP and non-ABAP / Cloud systems are involved then BTP Business Rules Service.

Both BRFplus and BTP Rules follow the same principles that are broadly compatible, and a migration path is available. See note 2509401 - Guidance to Transition BRFplus to SAP Enterprise Rule Model standard using SAP Business Rules service I saw some info somewhere about migration tools too but that was some time ago and may not have happened.

My own experience is also still pro BRFplus: BTP is a faff for pure on-prem or Private Cloud implementations. With BRFplus you have better integration and faster development. e.g. you can use dictionary objects and automatically get F4 helps in BRFplus - for the same you need services to provision F4 help to BTP rules, and then service calls from ABAP out to the cloud to evaluate the rules. Overkill.

The situation is the same as with Flexible Workflow vs BTP Workflow: If the use case is contained within a single ABAP system then stick to Flex WF, if multiple systems are involved then go with BTP.

larshp commented 3 months ago

keep logic close to the data => makes everything easier and faster

Jelena-P commented 3 months ago

I guess this begets the question then where exactly is the line between HOLD and USE. It says "Technologies that are currently recommended". Would I recommend anyone to design something new around BRF+? Not if it can be avoided. @pokrakam I agree with your assessment but that what also makes me lean towards not investing into either of these frameworks. One might be better off with a bunch of "IF" statements, tbh.

It's just looking at other stuff in the same category: would I recommend BRF+ like ABAP RAP? Probably not. If you need to use it, then sure, use it. But that's the big disclaimer that goes around the whole "radar". I seriously doubt people will stop using reports any time soon.

Anyways, it's not the hill I'd die on but just pointing out it raises other questions. Thank you!

pokrakam commented 3 months ago

@Jelena-P I always value your opinions and agree most of the time but not on this occasion :) BRFplus is the de facto rules engine for on premise & Private Cloud so is definitely recommended. There is no EOL either, BRFplus lives as long as On-Premise. BTP Rules(*) is the successor in the same way that BTP ABAP is the successor to on-prem ABAP.

Yes you can accomplish anything in code, but let's take a step back and look at why we use a rules engine in first place: It's all about changeability and rate of change.

So the question of investing into a framework is not a technology question, but about whether to use a BRMS or not. A Rule Engine decouples business rules from application logic and allows independent maintenance plus a host of other benefits. In many instances where the first reaction is to create one or more Z-config-tables with SM30 maintenance, a BRMS is often a better choice. The question of whether to use a BRMS is not really in the scope for the tech radar, but if we are going to use one, the relevant question is which one? And here I'm suggesting BRFplus for on premise / Private Cloud, and BTP Rules if it involves BTP.

Since you mention IF statements, I'll let you into a little secret: BRFplus rules compile down to IF statements anyway 😄
BRFplus is very different to a bunch of IF statement though: you don't need a developer to change them, you have fine-grained versioning and audit, they can be transported as customising or maintained in production, you can simulate rules, even at a specific point in time if you have versioning enabled. BRFplus can compact rules too. I once migrated a customising Z-table with over 25k entries into BRFplus and the automatic merge reduced the whole thing to a decision table with a little over 200 entries (technically that's 200 IF statements to replace a DB roundtrip).

*: Yes I know it's an old link, but SAP Help combined with constant renaming of stuff makes finding stuff a challenge I'm leaving for another day

DerGuteWolf commented 3 weeks ago

Isn't also the option to model with the business rules service and then deploy to S/4HANA (cloud/onpremise) for local BRFplus execution still available? Wouldn't this combination be the USE recommendation?