Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

When no BAPI available. Better use BDC or Not Released FM?

suwandi_cahyadi
Contributor
449

Hi,

When a functionality is not available from BAPIs, some time there are other FMs that can be used to fulfill our requirement. But in case the FM is not released (AFAIK, usage of not released FM will not supported by SAP), is it better to go for BDC or go with the not released FM?

Thank you.

1 ACCEPTED SOLUTION

DominikTylczyn
Active Contributor
244

Hi Suwandi, that's a great question and I'm quite sure that every seasoned SAP professional has their own view here.

I'd say that BDC is the safest approach if you don't have officially released BAPI. When you call a transaction with BDC there is just no way you get your data inconsistent. Of course many transactions are no BDC-friendly and there is a question of performance as there is screen processing overhead in BDC processing. Therefore you should cautious when mass processing with BDC.

In my view using non-released functions is the least favorable approach as you can never tell for sure how these functions work and interact. You can only try and guess. Sometimes it's good enough but the risk is still there. Also SAP might change the behavior of these functions without any notice and your solution might get corrupted without any of your knowledge. I'm quite sure hardly anybody does full regression test after SAP system update.

The bottom line, I'd recommend the following order:

  1. BAPI or another SAP-released interface
  2. BDC processing of SAP standard transaction
  3. Non-released function modules

Dominik Tylczynski

3 REPLIES 3

Sandra_Rossi
Active Contributor
244

So, you are asking for the pros and cons of the two technologies. Don't you know them?

With the list of pros and cons, you have to compare them to your own requirements (acceptable performance versus acceptable technical debt = IT independence from SAP support versus etc.), and you choose between the two.

DominikTylczyn
Active Contributor
245

Hi Suwandi, that's a great question and I'm quite sure that every seasoned SAP professional has their own view here.

I'd say that BDC is the safest approach if you don't have officially released BAPI. When you call a transaction with BDC there is just no way you get your data inconsistent. Of course many transactions are no BDC-friendly and there is a question of performance as there is screen processing overhead in BDC processing. Therefore you should cautious when mass processing with BDC.

In my view using non-released functions is the least favorable approach as you can never tell for sure how these functions work and interact. You can only try and guess. Sometimes it's good enough but the risk is still there. Also SAP might change the behavior of these functions without any notice and your solution might get corrupted without any of your knowledge. I'm quite sure hardly anybody does full regression test after SAP system update.

The bottom line, I'd recommend the following order:

  1. BAPI or another SAP-released interface
  2. BDC processing of SAP standard transaction
  3. Non-released function modules

Dominik Tylczynski

suwandi_cahyadi
Contributor
0 Kudos
244

Hi,

Sometime the limitation of the BAPI is as that the field that we want to update is not available in the BAPI's parameter. But this some time can have a work around by passing the parameter in some way, then at the correct point inside the BAPI (hopefully there's a BADI) create an implicit enhancement to get the parameter and update to the internal structure of the BAPI. I wonder how is the support of SAP if we are using this way.

Thank you.