Introducing the SAP Cloud Platform SDK for service development
Please note that this blog remains available only for continuity reasons. Further blogs related to the SDK, like those from Carlos Roggan, remain valid also in the context of the new programming model. Also the distribution of the Java portions of the application programming model still takes place via Maven Central.
At SAP TechEd Las Vegas this year Björn Goerke announced, among a lot of other great new things, the new SAP Cloud Platform SDK for service development. Generally speaking, it provides generic development libraries and tools such as OData services provisioning and consumption, business events and so on to enable application developers to easily create extensions on SAP Cloud Platform. In this blog I would like to provide you more insight about what the SDK does, how you can use it to build apps for SAP Cloud Platform and what resources help you to make best use of it.
Let’s first have a closer look at the scope of the SDK. As a “software development kit”, it helps you develop software, in this case apps which will run on SAP Cloud Platform. More specifically the SDK at this point is a Java SDK and the resulting apps will run on SAP Cloud Platform, Cloud Foundry Environment.
Cloud apps are about providing and consuming services. This is where the SDK will help you by simplifying the development significantly. Apps built with the SDK can easily provision RESTful services based on open standard OData (V4) protocol, which is broadly adopted not only in the SAP world. The implementation for the different OData service operations (CRUDQ, actions, functions) can be done with very few lines of code, if it is not already done generically by the service provisioning framework of the SDK. Under the hood unsurprisingly we are using the Apache Olingo library for OData, which was largely contributed by SAP. The following code demonstrates some key attributes of the APIs of the SDK:
For the consumption of services again there are already powerful APIs for the most important datasources: OData (for instance for working with data in SAP S/4HANA) and CDS, which is the metamodel of choice now for business objects in SAP. The following self-explaning line of code shows an sample OData service request for retrieving product data from an S/4HANA system:
As you can easily imagine, as a Java developer you already now have some key ingredients for building what we call Extension Apps: these are apps, which provision services in the cloud (nothing special so far) but at the same time let you re-use all the data and processes, which you have already in place in your organization. Why bother building yet another store for products or business partners if you can simply use the existing one?
Beyond support for service-related development the SDK also offers you a growing number of capabilities which you will need for writing reliable, secure and manageable cloud apps.
So, when and how can you start using the SAP Cloud Platform SDK for service development?
You can start now, the SDK is publicly available on Maven Central under the GroupID com.sap.cloud.servicesdk and you can use it with your IDE of choice. It contains two archetypes: Quickstart (for your own project) and Sample (fully implemented app). We will continue to add functionality and datasources to the SDK and therefore you may want to come back from time to time to get the latest version.
Why would this only be available for Cloud Foundry? It is an SDK, why should it not run in Neo? If this is correct, Is there a plan to release it for neo?
you are right, technically it may even be usable already on Neo. Still, this is mainly a priority decision. We are doing major enhancements to the SDK currently, which will be released very soon and for the time being want to focus on CF. Can you share your reasons for using it on Neo instead?
Our team has been struggling with this one issue, and on verge of giving up on this SDK.
Issue Summary: We are not able to get the $count element in the Service response, and we think this is causing the SAPUI5 application to go into infinite loop when trying to call this service. I have posted my question in detail at the link below, so any help would be much appreciated.