SAP / cloud-sdk-java

Use the SAP Cloud SDK for Java to reduce development effort when building applications on SAP Business Technology Platform that communicate with SAP solutions and services such as SAP S/4HANA Cloud, SAP SuccessFactors, and many others.
Apache License 2.0
22 stars 13 forks source link

Deprecation of RFC and SOAP modules #385

Closed gregorwolf closed 6 months ago

gregorwolf commented 6 months ago

Hello SAP Cloud SDK Java Team,

as RFC and SOAP are still widely used APIs provided by S/4HANA (Cloud) I would have expected that the SAP Cloud SDK would support them until they get deprecated from the S/4HANA (Cloud) side. Is my understanding correct that with the deprecation in v5 the modules for RFC and SOAP will be removed in v6?

Best Regards Gregor

MatKuhr commented 6 months ago

Hi Gregor,

our experience is that the RFC and SOAP APIs are gradually being replaced by OData and OpenAPI (REST) variants. I think REST is generally considered more modern and better suited for Cloud environments. The demand for the RFC and SOAP protocol support has been declining over the past years. Today, only a small fraction of our user base are actually using the features. At the same time we are seeing a disproportionally high support and maintenance effort for these features and they were holding us back from adopting new technologies.

Thus we made the decision to deprecate the functionality. However, since the feature is important for existing users where currently no REST alternative is available, we decided to not remove it with version 5 and instead go for a longer deprecation period. While I can't guarantee that the modules will be removed with the next major version (or when the next major version will release), this definitely is the expectation.

Our advice is to not start using the functionality and instead look for REST based alternatives. There is also a dedicated feedback channel for requesting APIs.

By the way, when establishing the JavaScript counterpart of the Cloud SDK we decided to not add support for SOAP and RFC. As far as I know only very few users asked for this since then in JavaScript. So with the deprecation in the Java SDK we are also aligning the feature scopes between Java and JS a bit more.

Finally, if there is absolutely no REST-based alternative in the mid-term future for a specific API or use case then it's still possible to utilize the underlying libraries (JCo and Axis2) directly. Ultimately, the Cloud SDK "only" provides wrappers around these libraries that make their usage more convenient and streamlined.

I hope this helps with better understanding the reasons for the deprecation and the expectations for the future.

Kind regards, Matthias