Technology Blogs by Members
Explore a vibrant mix of technical expertise, industry insights, and tech buzz in member blogs covering SAP products, technology, and events. Get in the mix!
cancel
Showing results for 
Search instead for 
Did you mean: 
larshp
Active Contributor
As noted in the last section of ABAP & Excel, why can’t we just have something nice? its not only Excel that is a challenge, its the same with JSON and http. This blog post focuses on http, which is difficult to get working everywhere.

As noted by martin-pankraz in SAP S/4HANA Cloud ABAP Environment integration journey with Microsoft – Part 1 – Microsoft Teams app..., there is currently no http client released in S/4 HANA Private Cloud.

It is, however, possible to do a wrapper as per Enable HTTP Communication in Your ABAP Code

Released APIs?


Until now, I've assumed that logic implemented in ABAP Cloud in SAP BTP ABAP Environment would automatically be compatible with S/4 HANA Cloud Public Edition and S/4 HANA Private Edition, assuming its the same quarterly/yearly/bi-yearly release. But looks like the picture is more like,


With CL_HTTP_CLIENT not released, and CL_HTTP_DESTINATION_PROVIDER released in ABAP Cloud in SAP BTP ABAP Environment and S/4HANA Cloud Public Edition.

The diagram might be incorrect, but there is no transparency was to what is released when/where. api.sap.com only includes a subset of the released objects, and it's not versioned or machine readable. As noted in 2020 this is a challenge to the ABAP ecosystem, making it difficult for partners and customers to write future compatible code.

Lets do it?


So what's the fix? CL_HTTP_CLIENT and CL_HTTP_DESTINATION_PROVIDER has small differences to the method signatures making them incompatible seen from a consumer perspective.


from xkcd.com


My suggestion would be to write a new nice http client library, which can be used anywhere, but it does require a http client to be released in S/4 HANA Cloud Private Edition.

Pull requests welcome, https://github.com/open-abap/cross-http-client

🤠
8 Comments
daniel_gerecht
Advisor
Advisor

Hi ,

thanks for your open feedback. I completely understand that you assumed that logic implemented in SAP BTP ABAP Environment and S/4HANA Cloud Public Edition would automatically be compatible to S/4HANA Cloud Private Edition (assuming its the same quarterly/ bi-yearly release).

Unfortunately this does not hold true in the area of Integration and Access Management. In S/4HANA Private Cloud systems there is no separation between SM59 destinations and PFCG roles, managed by SAP and the customer. In the public cloud there was from the beginning a clear separation between SAP owned and customer owned content to allow for a higher degree of automation.

For this reason, e.g. the development objects Communication Scenarios and Business Catalogs where introduced only in the public cloud delivery and not for private cloud. In the public cloud the administrator has no direct access to SM59 destinations and PFCG roles. See Authorization Basics | SAP Help Portal for details around these concepts.

Of course, we have the aim to provide only one ABAP Cloud development model, both for public and private cloud. I hope it is understandable that a few extra development objects might be needed for content separation in the public cloud, but we all want to have the same ABAP code in both worlds.

This works for nearly all classes that are released for usage in ABAP Cloud, e.g. the HTTP Client instances created by CL_WEB_HTTP_CLIENT_MANAGER or authorization checks. But this becomes very difficult, when SM59-destinations are accessed in a released class. In the public cloud we implemented a strict content separation based on development objects (Communication Scenarios) that do not exist in the private cloud. This is the reason why the class CL_HTTP_DESTINATION_PROVIDER with its method "create_by_comm_arrangement" is not available in the private cloud.

As an intermediate solution we created the class CL_OUTBOUND_PROVIDER (with create_by_destination method). But we cannot release this class for usage in the public cloud because it does not reference any development object that would allow content separation in the public cloud. Thus the developer currently has to write a small wrapper outside ABAP Cloud, as explained in Enable HTTP Communication in Your ABAP Code | SAP Help Portal.

We are working on a new unified concept for content separation of destinations that works both in private and public cloud. With newly introduced development objects we plan to make it possible in the future to use the same ABAP code in both worlds.

Best regards,

Daniel Gerecht

ABAP Integration & Security

larshp
Active Contributor
thanks for clarifying 🙂
AlexanderRother
Advisor
Advisor
Hi Lars,

Just a small addition: we are also working on enhancements of the SAP Business Accelerator Hub to support more objects and local APIs. Moreover it is versioned for the on-premise or private cloud solution (see e.g. example API and then in the upper right the drop down "Select Release").

Best regards,
Alexander

 

 
Tomas_Buryanek
Active Contributor

And why cannot we have CL_HTTP_CLIENT released in HANA Cloup Public edition?

EDIT: Ah I see. SM59, ports etc...

ajith_urimajalu
Participant
0 Kudos
daniel.gerecht - It's 2024 (already !), wondering if you have any update on the "new unified concept for content separation of destinations that works both in private and public cloud"? Is there a roadmap item on https://roadmaps.sap.com/ ?

 

Thanks,

Ajith
daniel_gerecht
Advisor
Advisor
Hi Ajith,

yes this feature is a roadmap item for Q3 2024. More details are on our ABAP Cloud roadmap: Integration Services | SAP Help Portal "Outbound HTTP/RFC: Deployment-Independent Code"

 

Best regards,
Daniel
ajith_urimajalu
Participant
0 Kudos

@daniel_gerecht - Thanks for the roadmap item. I was under the impression that its a roadmap item for On-prem HTTP communication to function similar to BTP and S/4HANA Cloud. However, It looks like BTP and S/4HANA Cloud HTTP communication will change again? 

daniel_gerecht
Advisor
Advisor

Hi @ajith_urimajalu ,

yes we have a separate roadmap item for the 2025 on-Prem Release, see here: Integration Services | SAP Help Portal "Outbound HTTP/RFC: Connectivity Enablement".

The aim of ABAP Cloud is to also have a unified programming model for cloud and On-Prem. The existing programming model for outbound communication in the cloud will stay valid. Due to the different release cycles the feature will be available first in the public cloud, before it is available for On-Prem.

Best regards,
Daniel

Labels in this area