External Entity and BAPI function, Which is more efficient?

I wonder about what i wrote in the title. So far, based on my knowldege, We can retrieve data from sap with two methods. First, External entity: We can add odata info to data hub and retrieve through external entity. Second, BAPI function: We can use Bapi connector in marketplace and also can retrieve datas   Which is the most efficient way to retrieve data from SAP
1 answers

Hi HyunKyu Chang,



  • SAP-proprietary
  • Based on RFC, an SAP-proprietary protocol
  • Fixed input structure (no URL with flexible query parameters) 
  • Fixed output structure (structures, tables, but not a dynamic number of each)
  • Manual documentation describes the service's structure for humans only
    Conclusion: Good for inter-connecting SAP systems or back-end type connections


  • Open Standard
  • Based on REST, the web's de facto standard protocol for app integration
  • Flexible query language (filter, sort, expand, associate, search)
  • Flexible output (entity, entity set, expanded entity)
  • Metadata document explains service structure in machine-readable format
    Conclusion: Good for connecting SAP systems to Mendix (Client)

The main thing OData gains over BAPIs are flexibility, open standards, and machine-readability. This may come at the price of speed. (It is possible to emulate OData over a BAPI interface: (URL query) string in, (JSON result) string out according to some posts).


BAPI’s are longer present in SAP and it could be the case that you have only that option for some objects.


Go Make It